嗨,我是一個新手在這裏,我希望能夠在這裏休息。 上學期,我們處理的隨機數發生器我和我的朋友,我們能夠拿出一個簡單的程序(如下),它的工作:Main.cpp和隨機數發生器的函數C++
using namespace std;
int randomG() {
int GER(0);
GER=rand();
GER %= 10;
GER++;
return(GER);
}
int main() {
srand((unsigned)time(NULL));
for(int i = 0; i != 100; i++) {
cout << randomG();
}
}
現在,這學期我們得到了這個給沒有去太多了進去。基本上他希望我們用main.cpp實現隨機數生成器,它多次調用函數FNC來測試我們需要使用state = 1作爲初始值的程序。從主程序調用FNC。經過10000個電話:國家應該等於399268537(不明白什麼意思,他在這裏)
下面是我們的出發點:
double rand (void) {
const long a=48271 //multiplier
const long b=2147483647 //modulus
const long c=b/a //questient
const long r=b % a //remainder
static long state =1;
long t = a* (state % c) - r * (state/c);
if(t >0)
state=t;
else
state = t+b;
return ((double) state/b);
}
的main.cpp中,我們該怎麼做完全喪失,我們我們不知道如何調用功能 ,併爲程序輸出中的第1到第10個呼叫和9991到10000個FNG呼叫提供一個表格。我們不能再進一步。對於像我們這樣的大二學生來說,這是完全混亂的。任何幫助將被apprecaited
int main() {
srand((unsigned)time(NULL));
int // we lost on what we should put in our main
經過你們的幫助下面是我的代碼,但它仍然不編譯我在這裏錯過什麼?
#include "stdafx.h"
#include <iostream>
#include <vector>
using namespace std;
double seed(long state) {
g_state = state;
}
double rand(void) {
const long a = 48271;
const long b = 2147483647;
const long c = b/a;
const long r = b % a;
long t = a* (g_state % c) - r * (g_state/c);
if (t > 0)
g_state = t;
else
g_state = t + b;
return ((double)g_state/b);
}
int main() {
std::vector<double> results;
for (int i = 1; i <= 10000; ++i) {
double number = rand();
if (i <= 10 || i >= 9991)
results.push_back(number);
}
回到你的教授,告訴他他的挑戰是沒有意義的。 – 2014-10-03 07:19:57
你在「FNC」和「FNG」中喋喋不休,沒有說你認爲他們是什麼...對我來說並不意味着什麼。也許檢查你的講義或教科書......?無論如何,如果你的「rand」函數碰巧是「FNC」函數,那麼你要求的只是std :: vector結果; for(int i = 1; i <= 10000; ++ i){double sample = rand(); if(i <= 10 or i > = 9991)results.push_back(sample); }。 (一個矢量實際上是一個表格)。 –
2014-10-03 07:33:33
是FNC只是名稱:假設是「rand」函數。 [FNG是拼寫錯誤]感謝您的意見,現在開始對我有意義 – 2014-10-03 08:26:38