Q
2つの範囲の乱数
5
A
答えて
8
あなたはfloat
へのランダムint
を生成し、このように、RAND_MAX
ことによってそれを分割することができます
float a = rand(); // you can use qrand here
a /= RAND_MAX;
結果は、0から1までの範囲に包括的であることになります。
2
#include <iostream>
#include <ctime>
using namespace std;
//
// Generate a random number between 0 and 1
// return a uniform number in [0,1].
inline double unifRand()
{
return rand()/double(RAND_MAX);
}
// Reset the random number generator with the system clock.
inline void seed()
{
srand(time(0));
}
int main()
{
seed();
for (int i = 0; i < 20; ++i)
{
cout << unifRand() << endl;
}
return 0;
}
2
チェックthisポスト、それは)私の知る限りでのrand(周りにスレッドセーフラッパーであるあなたの目的のためにqrand使用する方法を示しています。あなたは次の操作を行うことができますC++ 11を使用して
#include <QGlobal.h>
#include <QTime>
int QMyClass::randInt(int low, int high)
{
// Random number between low and high
return qrand() % ((high + 1) - low) + low;
}
6
:
はランダムヘッダーを含める:
#include<random>
はPRNGと配布を定義します。
std::default_random_engine generator;
std::uniform_real_distribution<double> distribution(0.0,1.0);
をゲット乱数
double number = distribution(generator);
this pageおよびには、uniform_real_distribution
に関する参考情報があります。
1
精度を定義する乱数からモジュールを取り出します。その後、モジュールで浮動小数点型に分割します。
float randNum(){
int random = rand() % 1000;
float result = ((float) random)/1000;
return result;
}
+0
シンプルで実用的なソリューション。ちょうど1つの問題:モジュール(この場合は1000)が 'RAND_MAX'で均等に割り切れない場合、これによって生成された乱数は、範囲内の大きな乱数に比べて小さな数値を生成するように少し偏っています。 – Jakob
関連する問題
- 1. 範囲内の乱数
- 2. 4つの異なる範囲から2つの異なる乱数Python
- 3. 配列内の範囲内の乱数
- 4. JAVAで数字のランダムな範囲に乱数をつける
- 5. C++、乱数1から6の範囲
- 6. 範囲内の乱数 - sql oracle
- 7. VBA:範囲構文混乱
- 8. 2つの数字の間の数字の範囲を生成
- 9. 試合2数のファイルが実行範囲外と範囲
- 10. 16ビットデータ型の範囲での混乱
- 11. Postgresql - 範囲の制約 - 2つのテーブル
- 12. C++:2つの範囲の交差
- 13. 2つの範囲でVBAを検索
- 14. Goテンプレート:2つ以上のスライス範囲
- 15. Javascript/html:2つの入力範囲フィールドバランススケール
- 16. xとyの間の乱数xの範囲を除いて
- 17. 1つの変数に対して2つの範囲の範囲にサブセットdata.frameを設定します
- 18. ActionScript 2の範囲
- 19. 2つの異なる範囲の数値ファイル名の生成
- 20. 2つの数値範囲の間のスケーリング
- 21. 2つの範囲の結合から別の範囲の行へのVBAコピー
- 22. 1から10の範囲の乱数を生成する
- 23. 特定の範囲内の乱数を生成する
- 24. 2つの乱数0-100
- 25. 日付範囲の累積数範囲
- 26. ダガー2:範囲
- 27. Bashの範囲に一致する乱数を生成する
- 28. 確率分布で範囲内の乱数を生成する
- 29. Fortran 77で指定された範囲の乱数を生成
- 30. 範囲内の乱数を作成しますか?
'RAND_MAX'は、ジェネレータが返す最大値であるため、範囲は1になります。 –
@PeteBeckerそうです、両端に包括的です。ありがとう! – dasblinkenlight