我可能正在失明,每當我運行這個控制檯應用程序時,我都會得到相同的結果,儘管使用了隨機數。任何人都可以善意解釋我要去哪裏?下面是代碼:爲什麼我在循環中使用隨機數時會得到相同的結果?
#include "stdafx.h"
#include <iostream>
#include <math.h>
#include <stdio.h>
using namespace std;
bool bacteria(long mut, long chance){
bool result;
if (mut >= chance){
result = true;
}
else{
result = false;
}
return result;
}
int run = 1000000;//Number of iterations
int mutations;
int survival;
void domutation(){
mutations = 0;
survival = 0;
for (int i = 0; i < run; i++){
long x = rand() % 2;
long y = rand() % 1000000;
bool run = bacteria(x, y);
if (run == true){
mutations++;
}
else if (run == false) {
survival++;
}
}
cout << "Mutations: " << mutations << " Survivals: " << survival << endl;
}
int main(){
for (int x = 0; x < 10; x++){
domutation();
}
int wait;
cin >> wait;
}
domutation的每個單獨的迭代()會產生不同的結果對上一次迭代,但每次我運行應用程序時,結果都是一樣的,因爲他們是我最後一次跑它,例如第一次迭代總是產生38個突變,而最後一次總是產生52個突變,並且兩者之間的變化不變。
我敢肯定我正在做一些dopey!
我在Windows 8.1中的VS 2013中工作。
謝謝!
*啓動程序。您正在使用僞隨機數字。 – dyp
您應該使用C++ 11''標題。 –
您不播種隨機數發生器 – user1937198