問題タブ [r-future]
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.
r - withr::with_seed と R.utils::withSeed を非同期コードで使用すると、異なる結果が生成されるのはなぜですか?
指定されたシード (常に指定されたシード) を持つ乱数の生成を必要とするアプリを実装できるように、R を使用して非同期プログラミングを学習しようとしています。私はこれを使ってきましたがR.utils::withSeed、それも存在することを知っているwithr::with_seedので、それをチェックしようと思いました.
乱数の生成が難しいことはわかっているので、簡単な例を実行して、物事がどのように機能するかを理解しようとしました。私は欲しい:
- ...同じシードを使用する場合、常に同じ乱数を取得する
- ...非同期フレームワークを使用しているかどうかに関係なく、同じシードで同じ乱数を取得するため (したがって、約束の外でコードを実行して同じ答えを得ることができるはずです)
以下のコードでは、乱数を生成する 2 つの関数を定義し、シードをwithr::with_seedまたはで設定しますR.utils::withSeed。
- これら 2 つの関数は、promise の外で実行すると同じ答えが得られます。
- これら 2 つの関数は、promise 内で実行すると異なる答えを返します。
- バージョンは、約束の
withr::with_seed内外で同じ答えを出します。 - バージョンは、約束の
R.utils::withSeed内外で異なる答えを出します。
ただし、答えは複数回の実行で一貫しているようです。
私の質問は:なぜですか?これは のバグR.utils::withSeedですか、それとも何か誤解していますか?