Pythonで乱数の与えられた方程式の期待値を見つけるプログラム
数nがあるとします。 x =rand()mod nについて考えてみます。ここで、rand()関数は、0〜10 ^ 100(両方を含む)の整数をランダムに均一に生成します。そして
$$ Y =\ sqrt {x + \ sqrt {x + \ sqrt {x + \ sqrt {x + ...}}}} $$
Yの期待値を見つける必要があります。nの値は1から5*10^6の範囲になります。
したがって、入力がn =5の場合、出力は1.696
になります。これを解決するには、次の手順に従います-
- エラー:=2235.023971557617
- max_n:=5 * 10 ^ 6
- pref:=リストには最初は1つの0が含まれています
- 1〜5 * 10 ^ 6の範囲のiの場合は、
- 挿入(設定の最後の項目+(1 +(4 * i + 1)^ 0.5)*設定の最後に0.5
- n
- return pref [n-1] / n
- 合計:=(4 *(n-1)+ 5)^ 1.5 / 6-5 ^ 1.5/6-エラー
- ans:=0.5 +合計/(2 * n)
- 回答を返す
例
理解を深めるために、次の実装を見てみましょう-
def solve(n): err = 2235.023971557617 max_n = 5 * 10**6 pref = [0] for i in range(1, 5 * 10**6): pref.append(pref[-1] + (1 + (4 * i + 1)**0.5) * 0.5) if n < max_n: return pref[n - 1] / n else: total = (4 * (n - 1) + 5)**1.5 / 6 - 5**1.5 / 6 - err ans = 0.5 + total / (2 * n) return ans n = 5 print(solve(n))
入力
5
出力
1.69647248786
-
フィボナッチ数のPythonプログラム
この記事では、特定の問題ステートメントを解決するための解決策とアプローチについて学習します。 問題の説明 −n番目のフィボナッチ数を計算するタスク。 フィボナッチ数のシーケンスFnは、以下に示す漸化式によって与えられます。 Fn =Fn-1 + Fn-2 シード値付き(標準) F0=0およびF1=1。 この問題には2つの解決策があります 再帰的アプローチ 動的アプローチ アプローチ1-再帰的アプローチ 例 #recursive approach def Fibonacci(n): if n<0: pri
-
複素数用のPythonプログラム
正の数の実数の根は常に2つあります。たとえば、x2が25の場合、xは±5です。ただし、x2が-25の場合、実際のルートは存在しません。負の数の平方根は、絶対値の平方根に虚数単位j=√-1を掛けたものです。 したがって、√−25 =√25𝑋−1 =√25×√−1 =5j 複素数は、実数と虚数の成分で構成されます。 x+yjとして表されます。 xとyはどちらも実数です。 Yに虚数単位を掛けると、複素数の虚数部が形成されます。 例:3 + 2j、10-5.5J、9.55 + 2.3j、5.11e-6 + 4j Pythonには、組み込みの複雑なデータ型があります。複素数オブジェクトは、