問題タブ [pi]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
14220 参照

algorithm - Pi を並列に計算するための高速アルゴリズム

私は CUDA を学び始めており、円周率の長い数字を計算することは、素晴らしい入門プロジェクトになると思います。

簡単に並列化できる単純なモンテカルロ法を既に実装しています。各スレッドに単位正方形上でランダムに点を生成させ、単位円内にいくつあるかを計算し、リダクション操作を使用して結果を集計するだけです。

しかし、それは確かに定数を計算するための最速のアルゴリズムではありません。以前、シングル スレッドの CPU でこの演習を行ったとき、Machin のような数式を使用して計算を行い、収束を大幅に高速化しました。興味のある人のために、これには逆正接の和として pi を表現し、式を評価するためにテイラー級数を使用することが含まれます。

そのような式の例:

ここに画像の説明を入力

残念ながら、この手法を何千もの GPU スレッドに並列化するのは簡単ではないことがわかりました。問題は、データの長いベクトルに対して浮動小数点演算を行うのではなく、大部分の演算が単純に高精度の計算を行うことです。

GPUで任意の長い円周率を計算する最も効率的な方法は何ですか?

0 投票する
2 に答える
85 参照

asynchronous - 円周率の桁を計算するためのIObservableの実装

これはアカデミックな演習です。私はReactiveExtensionsを初めて使用し、テクノロジーに頭を悩ませようとしています。私は、円周率の連続する桁を返すIObservableを作成するという目標を設定しました(関係のない理由で、現時点で円周率に本当に興味があります)。Reactive Extensionsには、オブザーバブルを作成するための演算子が含まれています。それらが提供するガイダンスは、「独自のIObsevableを作成する必要はほとんどない」というものです。しかし、既成の演算子とメソッドを使用してこれを行う方法がわかりません。もう少し詳しく説明させてください。

Arctanのテイラー級数の展開を含むアルゴリズムを使用することを計画していました。円周率の次の桁を取得するために、シリーズのさらにいくつかの用語を拡張します。

したがって、級数展開を非同期で実行する必要があり、次の計算された桁をIObserverにスローすることがあります。明らかに、新しい桁ごとに計算を最初からやり直したくありません。

RXの組み込み演算子を使用してこの動作を実装する方法はありますか、それともIObservableを最初からコーディングする必要がありますか?どのような戦略がそれ自体を示唆していますか?

0 投票する
5 に答える
3803 参照

algorithm - 適切な時間内に pi で有限のビット列を見つけることができますか?

それで、しばらく前に、次のようなジョークを読みました。

「絶対にバイナリで pi を計算しないでください。パイは無限に続き、ランダムであるため、理論的にはすべての有限ビット文字列が含まれます。そのため、存在するすべての著作物を所有し、深刻な罰金を科されることになります。」

これは明らかにユーモアを意図したものですが、考えさせられました。すべての有限ビット列が pi のバイナリ表現に存在する場合、これをデータ送信の方法として使用することは可能でしょうか?

たとえば、jpeg 画像として解釈できるビット文字列を送信したいとします。情報を直接送信する代わりに、pi の桁内でその位置を見つけ、pi の桁内の最初のビットの位置と文字列の長さを送信します。

これは私には非常に簡単なことのように思えますが、ここでの明らかな困難は、この文字列が最初の数兆桁でさえ見つかる可能性が非常に小さいことです。そのため、検索に膨大な時間がかかる可能性があります。

私の考えでは、複数のマシンを pi 内の大きなファイルの検索専用にして、すべての開始位置のインデックスを作成することができます。したがって、各計算は一度だけ行う必要があり、その情報はそれ以降非常に迅速に送信できます。

それで、あなたはどう思いますか?これは本当に実現可能ですか、それともこれらの計算に時間がかかりすぎますか?

読んでくれてありがとう!投稿ガイドラインを見落としていた場合はお詫び申し上げます。これがこのフォーラムでの最初の質問です。

編集:

迅速なご回答ありがとうございます。自分の推理に誤りがあると思ったのですが、その理由がわかってよかったです!

0 投票する
4 に答える
1843 参照

c# - C#で1000桁を取得するにはどうすればよいですか?

C#で最大1000桁まで取得できますか?

プログラムの pi の値の小数点以下 1000 桁が必要です。

0 投票する
5 に答える
1853 参照

python - トピック 5

estimatePi()インドの数学者 Srinivasa Ramanujan によって発見された式に基づいて、Pi の値を推定して返す関数を作成します。最後の項が 1e-15 よりも小さくなるまで、while ループを使用して合計の項を計算する必要があります。Pi を推定する式は以下のとおりです。 ラマヌジャムの推定によると

(すみません、画像がアップできません)

そして、私の問題はこれです:予想される答えは= 3.14159265359でした私の答えは= 3.14159273001です

私は自分のせいを見つけることができませんでした:(.誰かが私のためにこれを手伝ってくれますか?

0 投票する
1 に答える
1113 参照

objective-c - 常に回転するUIImageViewを作成する

私は次のようなコアアニメーションを使用してみました:

これにより、outerと呼ばれるUIImageViewが回転しますが、360度の回転はスムーズに完了しません。3/4くらいでジャンプします。PIでローテーションするべきではありませんか?

回転方向を変更したい場合、どうすればよいですか?分で時計回りに回転します。

ありがとう

0 投票する
5 に答える
523 参照

java - 割ったときに Pi が小数点以下 4 桁になる最小の素数を見つけますか? ジャワ

私は、私がやろうと思った興味深い質問を見つけました。ほとんどすぐに、修正できないように見える問題を見つけました。

コードを実行すると、エラーは発生しませんが、何も返さずに実行されるだけです。私のループは問題ないようで、素数を見つけるためのアルゴリズムが機能することはわかっているので、何が問題なのかわかりません。

多くの編集を行った後も、まだ同じ問題がありますが、実質的に同じコードを Python で実行すると、Python コードが実行され、実際に結果が返されます。変更されたコードは次のとおりです。

0 投票する
2 に答える
169 参照

python - 選択的な python 文字列の置換

次の Python 関数piを使用して を置き換えようとしています。math.pi

次の文字列があります。

の出力cleanup(a)は次のとおりです。 2*math.pi-- これはうまくいきます。

出力は次のとおりcleanup(b)ですthe math.pink elephant-- 問題: 「テキスト」を変更したくありません。

誰かが私を助けることができますか?

0 投票する
3 に答える
3033 参照

c++ - Pi の C++ Chudnovsky 式

C++ アプリケーションに pi を計算させようとしています。チュドノフスキーの公式を実装しようとしましたが、うまくいきませんでした。

これが私のコードです:

これの目標は、プログラムが Chudnovsky 公式の 10 回の反復を出力するようにすることでした。代わりに、私はこれを得ました:

0 投票する
2 に答える
3140 参照

c++ - C++ Pi 近似プログラム

私はちょうどC++を学んでいるので、シリーズを使ってpiの値を概算する簡単なプログラムを作り始めました:Pi ^ 6 / 960 = 1 + 1 / 3 ^ 6 + 1 / 5 ^ 6 ...そして奇数の分母を 6 乗して続行します。これが私のコードです。

コードは次の行まで正常に動作しているようです (変数 'sum' と 'iteration' の両方が正しく増加します)。

何らかの理由で「pi_approximation」の値は 1 のままで、「cout」に出力されるテキストは「1」です。