可能重复:使用rand
在C
中生成随机数以生成随机数
我正在尝试生成随机数,但我不断得到数字41.这样一个简单的片段可能会出错?
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
int a = rand();
printf("%d",a);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
感谢帮助.
我有一个非常简单的iPhone应用程序,需要1-100的随机整数.
我有一个调用随机数函数的按钮然后显示它.
-(IBAction)buttonReleased;
{
srandom(time(NULL));
int theNum = random() % 100 + 1;
numberDisplay.text = [NSString stringWithFormat:@"%d", theNum];
}
Run Code Online (Sandbox Code Playgroud)
问题是,如果我快速按下按钮,有时它将不会显示新的随机数.
我创建了这个用c ++生成随机数的方法,当我在循环中调用它时,我总是得到相同的随机值,有什么问题?因为我希望在每次循环迭代后都有不同的值.我用标志-std = c ++ 11编译它.
float CDevice::gaussNoise(float mean, float stddev)
{
std::default_random_engine generator(time(NULL));
std::normal_distribution<float> distribution(mean, stddev);
return distribution(generator);
}
Run Code Online (Sandbox Code Playgroud)
主要看起来像这样:
int main
{
class CDevice *device;
device = new CDevice();
std::vector<float> vec;
for(uint32_t i = 0; i< 10; ++i)
vec.push_back(device->gaussNoise(1,5));
for(uint32_t i = 0; i < vec.size(); ++i)
std::cout << vec[i] << std::endl;
}
Run Code Online (Sandbox Code Playgroud)
和输出是(例如):
3.71254
3.71254
3.71254
3.71254
3.71254
3.71254
3.71254
3.71254
3.71254
3.71254
Run Code Online (Sandbox Code Playgroud)