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. 2つの数字の間でランダムに選択する方法は?
- 2. コイン反転のためのcのランダムint値の作成方法
- 3. Flash ActionScript 3の関数間でランダムに選択する
- 4. Rubyで2つの変数をランダムに選択する方法は?
- 5. PowerShellで2つの文字セットの間の文字列を選択する
- 6. C++で文字列を反転する
- 7. Unixの日付を2週間未満で1つのmySQL行をランダムに選択するPHP関数
- 8. Cで2次元配列の非反復ランダム要素を選択
- 9. SQLクエリで2つの定数文字列間の変数を選択
- 10. 2リストからランダムに選択 - C#
- 11. 配列内の数字をランダムに選択する
- 12. 2つの文字列の間でテキストを選択する方法javascript?
- 13. (REGEX);選択の反転、
- 14. 文字列補間で小数点の数を選択する
- 15. オプションの間でランダムに選択するコードが必要
- 16. 2つのテーブル間で珍しいレコードを選択する - mysql
- 17. 2つの時刻の間で選択するクエリ
- 18. Scalaを使ってコインを反転する
- 19. ランダムな選択肢を2つのリストで使用する方法
- 20. 関数間で文字列を転送するC++
- 21. C++ランダムに文字列を選択します
- 22. Cで2つの文字列をランダムに結合する方法は?
- 23. データベースからランダムに行を選択する関数です。
- 24. ランダムに選択するユーザーボタン
- 25. 複数選択の選択肢に反応する
- 26. いくつかの数字をグレイコードで選択する
- 27. "反転" STARTSWITHのデータフレームの選択
- 28. C#でWiFiアダプタを2つ選択する方法は?
- 29. テーブルビューセルで2つのビューを反転する方法
- 30. 正規表現で2つの "*"文字の間の文字列を選択する
実際には非常に乱数を生成することは困難です。だから、この質問への答えは、どのようにランダムにそれをしたいですか? – user3528438
とどのくらい速いですか? –
'RAND_MAX'が' 32767'(MSVCなど)の場合、 'rand()'を一回呼び出すと15コインのフリップが得られます。 –