안녕하세요 저는 여기에 초보자이며 여기에서 올바르게 휴식 할 수 있기를 희망합니다. 우리는 난수 발생기 처리 마지막 학기는 나와 내 친구 우리는 일 (아래) 간단한 프로그램을 마련 할 수 있었다 : 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();
}
}
이제 우리는 그것으로 많이 이동하지 않고이 주어있어 이번 학기. 기본적으로 그는 우리에게 FNC 함수를 여러 번 호출하는 main.cpp로 난수 생성기를 구현하기 위해 프로그램을 테스트하기 위해 state = 1을 초기 값으로 사용해야합니다. 주 프로그램에서 FNC에 전화하십시오. 10000 개 통화 후 : 상태가 399,268,537 같아야한다 아래
우리의 출발점이 될 것입니다 (그가 여기 무슨 뜻인지하지 않음) :
우리가 완전히 무엇을해야하는지에 손실 MAIN.CPP에 대한
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);
}
, 우리 우리가 어떻게 함수 을 호출하고 처음 1-10 통화 및 9991-10000 FNG 호출에 대해 프로그램 출력에서 테이블을 만들지에 대해서는 잘 모른다. 우리는 더 이상 움직일 수 없다. 우리와 같은 2 학년의 경우 이것은 완전히 혼란입니다. 모든 도움을 주실 수 있습니다
아래에서 도와주세요. 내 코드는 아래에 있습니다. 그러나 아직도 여기에 실종 된 내용이 없습니다.
#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);
}
는 다시 교수로 돌아가서 그의 도전은 아무 의미 말해. –
당신은 당신이 생각하는 것을 말하지 않고 "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); }. (벡터는 실제로 테이블입니다.) –
예 FNC는 단지 이름입니다 : "rand"함수라고 가정하십시오. [FNG가 오타되었습니다] 입력 해 주셔서 감사합니다. 지금 제게 의미가 있습니다. –