我在我的書中以下問題:隨機數生成機制
#include<iostream.h>
#include<conio.h>
#include<stdlib.h>
void main()
{
clrscr();
randomize();
int Game[]={10,16},P;
int Turn=random(2)+5;
for(int T=0;T<20;T++)
{
P=random(2);
cout<<Game[P]+Turn<<"#";
}
getch();
}
輸出來像16#22#16#16#16#22#.... 20倍... 爲什麼這個輸出總是來自16#或22#?爲什麼不15#或21#?我想這個程序的機制。謝謝。 turn = random(2)+5; 如果random(2)給出0,那麼turn變成turn = 0 + 5 = 5這意味着我應該得到10 + 5 = 15和16 + 5 = 21以及16和22,但是我沒有得到它們。
我們在我們的計算機科學理論考試中得到了上述問題,我們選擇了正確的答案(即它產生了16和22),但我將如何知道它將只產生16和22。上述15和21解釋也是可以的..
'randomize()'做了什麼? – Kevin 2013-03-21 14:06:59
此代碼不會在現代C++編譯器上編譯(並且從來沒有有效的C++代碼!),這導致我認爲您確實需要升級您的工作環境。 – 2013-03-21 14:08:30
我使用turbo C++進行快速編譯 – Smatik 2013-03-21 14:14:06