Cで2つの数字をランダムに選択する方法はありますか? rand()のような関数は時間がかかりすぎるようです。彼らは必要ですか?Cでランダムに2つの数字の間で選択する(コインを反転する)
答えて
これを試してみてください:冗談
// 0=heads; 1=tails;
int flipCoin(){
return 1; // Chosen by a fair coin toss.
// Guaranteed to be random.
}
。
とにかく、ここに戻って、本当の問題は、あなたが望む/必要とする品質は何ですか?あなただけの非常に高速なPRNGを必要とするので、品質は、あまりにも重要でない場合は、このような何かを試してみたいことがあります。
static unsigned int g_seed;
//Used to seed the generator.
inline void fast_srand(int seed){
g_seed = seed;
}
//fastrand routine returns one integer, similar output value range as C lib.
inline int fastrand(){
g_seed = (214013*g_seed+2531011);
return (g_seed>>16)&0x7FFF;
}
int flipCoin(){
return fastRand()%2;
}
そして、明らかにあなたは「fastrand」ジェネレータをシードする必要があります。
クレジット:Faster than rand()?:このコードは、この質問にアシスと答えから来ています。
これは[線形合同擬似乱数生成器]です(https://en.wikipedia。org/wiki/Linear_congruential_generator)であり、乱雑性があまり良くありません。私は[線形フィードバックシフトレジスタ疑似乱数生成器](https://en.wikipedia.org/wiki/Linear_feedback_shift_registers)の[Xorshift](https://en.wikipedia.org/wiki/Xorshift)ファミリーを好む。 –
@ NominalAnimal、このデザインで実装されているRNGスキームを識別してくれてありがとうございます。どのような種類のRNGであるかわかりませんでした:Pあなたがリンクしている他のPRNGメソッドを調べなければなりません。 – SpencerD
- 1. Flash ActionScript 3の関数間でランダムに選択する
- 2. Unixの日付を2週間未満で1つのmySQL行をランダムに選択するPHP関数
- 3. (REGEX);選択の反転、
- 4. Scalaを使ってコインを反転する
- 5. 2つの時刻の間で選択するクエリ
- 6. データベースからランダムに行を選択する関数です。
- 7. 2つのドロップリスト間のHTML選択スクリプト
- 8. 1つのドロップダウン選択から2つの値を転送する方法
- 9. 異なる数の列を持つ2つの選択で結合する
- 10. 教義2つのコードの間で選択します
- 11. iOSで文字列を反転する
- 12. jQuery 2つの文字列識別子の間でHTMLを選択
- 13. PHPでは、2つの文字列の間の文字列を選択し、選択した文字列から1つの値を取得します。
- 14. Linuxゼロコピー:vmspliceで2つのプロセス間でメモリページを転送する
- 15. C++ 2つの追加のスタックを使用してスタックを反転する
- 16. 2つの列を比較する大文字小文字を選択する
- 17. 2つの選択中に関数
- 18. Cでスプライトを反転する方法#
- 19. 2つのウェブサイト間でXMLを転送
- 20. PHP - 2文字の間の文字列の一部を選択
- 21. ocamlreの2つの配列の間で関数を構築する反復
- 22. 2つのフラッシュファイルの間でJPGを転送する
- 23. ランダムに1つの列サブセットの値を別の列で選択する
- 24. 2つの数字の間のobj-c線形補間
- 25. システム間で2つの特殊文字の間にキャッシュする
- 26. MYSQL 2行からランダムに選択
- 27. NotifyIconをクリックすると、3つの状態(2ではなく)の間で反転します
- 28. SimpleBeanEditorDriverまたはRequestFactoryEditorDriverの間でフルオブジェクトグラフを転送するコンテキストを選択する
- 29. 2つのベクトルの間で回転するクォータニオンの取得
- 30. 2つのiframe間でデータを転送する
実際には非常に乱数を生成することは困難です。だから、この質問への答えは、どのようにランダムにそれをしたいですか? – user3528438
とどのくらい速いですか? –
'RAND_MAX'が' 32767'(MSVCなど)の場合、 'rand()'を一回呼び出すと15コインのフリップが得られます。 –