C++でNがポイントNから移動した後にすべてのポイントに到達する確率を求めます
したがって、入力がn =2、l =0.5の場合、出力は[0.25、0、0.5、0、0.25]
になります。これを解決するには、次の手順に従います-
-
高:=1-低
-
サイズがn+1 x 2 * n + 1の配列Aを定義し、0で埋めます
-
A [1、n + 1] =高、A [1、n-1]=低
-
初期化i:=2の場合、i <=nの場合、更新(iを1増やします)、実行-
-
初期化j:=1の場合、j − =2 * nの場合、更新(jを1増やします)、do −
-
A [i、j]:=A [i、j] +(A [i-1、j-1] *高)
-
-
初期化j:=2 * n --1の場合、j> =0の場合、更新(jを1つ減らす)、実行-
-
A [i、j]:=A [i、j] +(A [i-1、j + 1] *低)
-
-
-
初期化i:=0の場合、i − 2 * n + 1の場合、更新(iを1増やします)、実行-
-
A [n、i]
を表示します
-
理解を深めるために、次の実装を見てみましょう-
#include <bits/stdc++.h> using namespace std; void find_prob(int n, double low) { double high = 1 - low; double A[n + 1][2 * n + 1] = {{0}}; A[1][n + 1] = high; A[1][n - 1] = low; for (int i = 2; i <= n; i++) { for (int j = 1; j <= 2 * n; j++) A[i][j] += (A[i - 1][j - 1] * high); for (int j = 2 * n - 1; j >= 0; j--) A[i][j] += (A[i - 1][j + 1] * low); } for (int i = 0; i < 2*n+1; i++) cout << A[n][i] << endl; } int main() { int n = 2; double low = 0.6; find_prob(n, low); }
入力
2, 0.6
出力
0.36 0 0.48 0 0.16
-
C ++を使用して、指定されたポイントから可能な四辺形の数を見つけます
四辺形は、ユークリッド平面幾何学で4つの頂点と4つのエッジを持つポリゴンを形成します。名前4-gonなど。四辺形の他の名前に含まれ、正方形、表示スタイルなどとしても知られています。 この記事では、与えられた点から可能な四辺形の数を見つけるためのアプローチを説明します。この問題では、デカルト平面に提供された4つの点(x、y)を使用して作成できる四辺形の数を調べる必要があります。だからここに与えられた問題の例があります- Input : A( -2, 8 ), B( -2, 0 ), C( 6, -1 ), D( 0, 8 ) Output : 1 Explanation : One quadr
-
C++で原点に最も近いK点を見つける
一連のポイントがあるとします。私たちの仕事は、原点に最も近いK点を見つけることです。ポイントが(3、3)、(5、-1)、(-2、4)であるとします。次に、最も近い2つの(K =2)ポイントは(3、3)、(-2、4)です。 この問題を解決するために、ユークリッド距離に基づいてポイントのリストを並べ替えます。その後、並べ替えられたリストから最上位のK要素を取得します。これらはK最近傍点です。 例 #include<iostream> #include<algorithm> using namespace std; class Point{ pri