-
正確にk個のエッジを持つソースから宛先までの可能なウォーク
有向グラフが表示されます。別の2つの頂点uとvも指定され、uは開始頂点、vは終了頂点です。私たちのタスクは、頂点uからvまでの正確にk個のエッジを持つウォークの数を見つけることです。 kの値もアルゴリズムで提供されます。 動的計画法を使用して、3Dテーブルを作成する必要があります。行はuの値を指し、列は値vを指し、深さは最初から最後までエッジの数を追跡するために使用されます。 入力と出力 Input: The adjacency matrix of the graph: The destination vertex is 3. K = 2 0 1 1 1 0 0 0 1 0 0 0 1 0
-
2つの数を掛ける最速の方法
2つの数値は2進文字列として指定されます。私たちのタスクは、これらの数値の乗算の結果をより高速かつ効率的に見つけることです。 分割統治法を使用すると、非常に効率的な方法で問題を解決できます。数字を2つに分割します。 XleftとXrightが最初の数Xの2つの部分であり、Yleft、Yrightが2番目の数Yの2つの部分であるとします。したがって、製品; 簡単にするために、この操作を実行できます 入力と出力 Input: Two binary numbers: 1101 and 0111 Output: The result is: 91 アルゴリズム addBi
-
数値から単語への変換
このアルゴリズムは、指定された数値を英語の単語に変換します。 564のように五百六十四になります。 このアルゴリズムでは、いくつかの事前定義された文字列が与えられ、そのリストから、適切な単語を取得して単語にします。 リストは次のようなものです 単位: ゼロ、ワン…ナインなどの(0から9)のすべての単語を保持します twoDigits: 10、11…19など、(10〜19)のすべての数値を保持します tenMul: 10の倍数の場合、(20-90)、たとえば20、30、…90。 tenPower: これは、10の2と3のパワーとして数百と数千のためのものです 入力と出力
-
フラッドフィルアルゴリズム
1つの行列が与えられます。マトリックスは1つの画面を表しています。画面の各要素(i、j)はピクセルとして示され、そのピクセルの色は異なる番号でマークされます。このアルゴリズムでは、ピクセルがすでに選択された前の色になっている場合、ピクセルは新しい色で塗りつぶされます。前の色が前の色でない場合、そのピクセルは塗りつぶされません。ピクセルを埋めた後、同じことを行うために、上、下、左、右のピクセルをチェックします。 アイデアは本当に単純です。まず、選択した位置が前の色で色付けされているかどうかを確認します。そうでない場合、アルゴリズムは機能しません。それ以外の場合は、そのピクセルを新しい色で塗りつ
-
素数の偶数
4からのすべての偶数は、2つの素数の合計として表すことができます。場合によっては、1つの数に素数の組み合わせの合計が複数含まれることがあります。 たとえば、数値10 =(5 + 5)および(7 + 3) このアルゴリズムは、指定された数の素数のすべての組み合わせを検索します。 1つの数xが素数の場合、(数-x)が素数であるかどうかを確認します。素数の場合、xと(数-x)の合計は偶数を表します。 入力と出力 Input: Even number: 70 Output: Prime sums 70 = 3 + 67 70 = 11 + 59 70 = 17 + 53 70 = 23 + 47
-
グラハムスキャンアルゴリズム
凸包は、指定されたすべてのデータポイントをカバーできる最小の閉じた領域です。 グラハムのスキャンアルゴリズムは、凸包のコーナーポイントを見つけます。このアルゴリズムでは、最初に最低点が選択されます。その点が凸包の始点です。残りのn-1個の頂点は、始点から反時計回りの方向に基づいて並べ替えられます。 2つ以上の点が同じ角度を形成している場合は、開始点から最も遠い点を除いて、同じ角度のすべての点を削除します。 残りのポイントから、それらをスタックにプッシュします。そして、スタックのトップポイント、2番目のトップポイント、および新しく選択されたポイントポイント[i]の方向が反時計回りでない場合は
-
ジャービスマーチアルゴリズム
ジャービスマーチアルゴリズムは、特定のデータポイントのセットから凸包のコーナーポイントを検出するために使用されます。 データセットの左端のポイントから開始して、反時計回りの回転によって凸包内のポイントを保持します。現在のポイントから、現在のポイントからのそれらのポイントの方向を確認することにより、次のポイントを選択できます。角度が最大の場合、ポイントが選択されます。すべてのポイントを完了した後、次のポイントが開始ポイントになったら、アルゴリズムを停止します。 入力と出力 Input: Set of points: {(-7,8), (-4,6), (2,6), (6,4), (8,6), (
-
配列内のK番目に大きい要素
このアルゴリズムは、一連のデータから、配列の最大の要素からk番目に大きい要素を見つけます。 この問題は、配列を並べ替えることで簡単に解決できます。昇順または降順で並べ替えることができます。降順で解くと、最初のk個の要素を取得して結果を見つけることができます。 入力と出力 Input: The elements of an array: {1, 23, 12, 9, 30, 2, 50, 63, 87, 12, 45, 21}, K = 4 Output: 4 largest elements are 87 63 50 45 アルゴリズム kthLargestElement(array, n,
-
DFAベースの部門
決定性有限オートマトン(DFA)は、ある数値が別の数値kで割り切れるかどうかを確認するために使用されます。除算できない場合、このアルゴリズムは余りも検出します。 DFAベースの部門では、最初にDFAの遷移表を見つける必要があり、その表を使用して、簡単に答えを見つけることができます。 DFAでは、各状態には2つの遷移0と1しかありません。 入力と出力 Input: The number: 50 and the divisor 3 Output: 50 is not divisible by 3 and remainder is: 2 アルゴリズム dfaDivision(num, k) 入力
-
基数nの数を追加する
この問題では、2つの数字が与えられます。それらの数の底はnです。基数nにも加算した後、それらの数の結果を見つける必要があります。 最初に、数値は10進数に変換されます。 10進数の値から、簡単に追加できます。最後に、数値は再び基数nの数値に変換されます。 n個の基数は文字列として指定されます。これは、基数が9より大きい数の場合、16進数のように、6文字(A〜F)のように、数字を表すアルファベットが含まれている場合があるためです。 入力と出力 Input: The base of a number system: 16 First number 2C Second number
-
平方根を見つけるためのバビロニア法
平方根を見つけるバビロニア法は、非線形方程式を解くためのニュートンラプソン法に基づく数値法の1つに基づいています。 考え方は単純で、xの任意の値から開始し、yを1として、xとyの平均を見つけることにより、ルートの次の近似を簡単に取得できます。次に、y値が数値/xで更新されます。 入力と出力 Input: A number: 65 Output: The square root of 65 is: 8.06226 アルゴリズム sqRoot(number) 入力: 実際の数。 出力: 与えられた数の平方根。 Begin x := number &nb
-
多数の階乗
コンピューターでは、変数はメモリ位置に格納されます。ただし、メモリ位置のサイズは固定されているため、15などのより大きな値の階乗を見つけようとすると!または20!階乗の値がメモリ範囲を超え、間違った結果を返します。 大きな数を計算するには、配列を使用して結果を格納する必要があります。配列の各要素に、結果の異なる桁を格納しています。ただし、ここでは、ある数値を配列で直接乗算することはできません。結果の配列のすべての桁に対して手動の乗算プロセスを実行する必要があります。 入力と出力 Input: A big number: 50 Output: Factorial of given number
-
特定のポイントがポリゴンの内側にあるかどうかを確認します
この問題では、1つのポリゴンが指定され、点Pも指定されます。ポイントがポリゴンの内側にあるか、ポリゴンの外側にあるかを確認する必要があります。 それを解くために、点Pから直線を描きます。それは無限大まで伸びています。線は水平、またはx軸に平行です。 その線から、線がポリゴンの辺と交差する回数を数えます。ポイントがポリゴンの内側にある場合、ポイントは辺と奇数回交差します。Pがポリゴンのいずれかの側に配置されている場合、ポイントは偶数回カットされます。いずれの条件も当てはまらない場合は、ポリゴンの外側にあります。 入力と出力 Input: Points of a polygon {(0, 0)
-
パーフェクトスクエアをチェックするかどうか
数値の平方根が整数の場合、その数値は完全な平方数であると言われます。つまり、平方根が整数の場合、その数は完全な平方数と呼ばれます。 その数の平方根を見つけてiと何度も一致させることで完全な平方根をチェックし、正確な平方根を取得できます。平方根が値と交差する場合、それは完全な平方数ではありません。 しかし、ここでは労力を減らすために、平方根を何度もチェックしていません。完全な平方数の平方根は整数であることがわかっているので、平方根を1つ増やして、完全な平方根が一致するかどうかを確認できます。 入力と出力 Input: A number to check: 1032 Output: 1032
-
与えられた4つのポイントが正方形を形成するかどうかを確認します
2次元平面では、4つの点が与えられます。このアルゴリズムは、4つのポイントが正方形を形成しているかどうかをチェックします。 正方形をチェックするには、これらの条件を一致させる必要があります- 与えられた点によって形成される4つの辺はすべて同じです。 接続する2つの側面はすべて直角です。 入力と出力 Input: Four points {(20, 10), (10, 20), (20, 20), (10, 10)} Output: Points are forming a square. アルゴリズム isFormingSquare(p1, p2, p3, p4) この手順では、メソッ
-
与えられた2つのセットが互いに素であるかどうかを確認しますか?
2つのセットは、共通の要素がない場合、互いに素なセットです。つまり、2つのセットの共通部分を取得すると、ヌルセットを取得します。 方法は簡単です。このアルゴリズムでは、2つのセットが与えられます。両方のセットがすでにソートされていると想定し、アイテムは2つのセット間で比較されます。一致する場合は互いに素なセットではなく、一致するアイテムがない場合は互いに素なセットです。 入力と出力 Input: Two sets: set1: {15, 12, 36, 21, 14} set2: {7, 89, 56, 32} Output: Both sets are disjoint アルゴリズム is
-
2つの線分が交差しているかどうかを確認します
2つの線分を指定します。最初の線分からの点p1、p2、および2番目の線分からのq1、q2。両方の線分が交差しているかどうかを確認する必要があります。 これらのケースが満たされると、両方の線分が交差していると言えます。 (p1、p2、q1)と(p1、p2、q2)の向きが異なる場合 (q1、q2、p1)と(q1、q2、p2)の向きは異なります。 別の条件は、(p1、p2、q1)、(p1、p2、q2)、(q1、q2、p1)、(q1、q2、p2)が同一線上にある場合です。 入力と出力 Input: Points of two line-segments Line-segment 1: (0,
-
特定の点が三角形の内側にあるかどうかを確認します
三角形の3つのポイントが与えられます。点Pが三角形の内側にあるかどうかを確認するために、別の点Pも与えられます。 この問題を解決するために、三角形の点がA、B、Cであると考えてみましょう。三角形の面積Δ𝐴𝐵𝐶=Δ𝐴𝐵𝑃+Δ𝑃𝐵𝐶+Δ𝐴𝑃𝐶の場合、点Pは三角形の内側にあります。 入力と出力 Input: Points of the triangle {(0, 0), (20, 0), (10, 30)} and point p (10, 15) to check. Output: Point is inside the triangle. アルゴリズム isInside
-
非線形方程式を解くための割線法
割線法は、非線形方程式を解くためにも使用されます。この方法はニュートンラプソン法に似ていますが、ここでは関数f(x)の微分を見つける必要はありません。 f(x)を使用するだけで、ニュートンの差商式を使用してf’(x)を数値的に見つけることができます。ニュートン-ラフソン法から 私たちはそれを知っています、 ここで、差商の公式を使用すると、次のようになります。 ニュートンラプソン公式のf’(x)を新しいf’(x)に置き換えることにより、非線形方程式を解くための割線公式を見つけることができます。 注: この方法では、非線形方程式の根を見つけ始めるために、任意の2つの初
-
定積分の台形公式
この台形公式を使用して、定積分を解くことができます。関数f(x)を範囲aからbの間で統合することは、基本的に、点x=aからx=bまでの曲線の下の領域を見つけることです。 その領域を見つけるために、領域をn個の台形に分割でき、各台形の幅はhなので、(b --a)=nhと言うことができます。台形の数が増えると、面積計算の結果がより正確になります。積分を解くために、この公式に従います。 ここで、hは間隔の幅、nは間隔の数です。 を使用してhを見つけることができます 入力と出力 Input: The function f(x): 1-exp(-x/2.0) and limits of t