기본적으로 한 쌍의 주사위를 굴리기 위해 난수를 생성하는 프로그램을 작성해야합니다. 이 프로그램은 여러 파일로 구성되어야합니다. main 함수는 하나의 파일에 있어야하고 다른 함수는 두 번째 소스 파일에 있어야하며 프로토 타입은 헤더 파일에 있어야합니다. 첫 번째는 하나의 6면 다이의 롤링을 시뮬레이션하기 위해 1에서 6 사이의 무작위 값을 반환하는 짧은 함수를 작성합니다. 둘째,이 함수를 두 번 호출하여 한 쌍의 주사위를 굴리는 것처럼 보이는 함수를 작성합니다. 내 프로그램은 몇 개의 롤을 만들어야하는지 사용자에게 묻는 것으로 시작됩니다. 그렇다면 몇 번이나 주사위를 굴려서 시뮬레이션하는 함수를 작성하여 정확하게 2,3,4,5,6,7,8,9,10,11,12의 숫자를 몇 번이나 계산했는지 (각 숫자는 한 쌍의 주사위의 합)이 배열에서 발생합니다. 나중에 내가 이상적으로 인쇄 별표의 수는 수에 해당하는 144 롤의 샘플, 아래 같이 보일 것이 카운트 사용하여 작은 막대 차트를 표시하는 함수를 작성 :C++에서 난수를 생성하는 코드
2 3 4 5 6 7 8 9 10 11 12
* * * * * * * * * * *
* * * * * * * * * * *
* * * * * * * * * * *
* * * * * * * * * * *
* * * * * * * * *
다음을 참조합니다 난수 생성기가 얼마나 잘 수행하는지, 롤백 된 평균값을 계산하는 함수를 작성합니다. 이것을 이상적인 평균 인 7과 비교하십시오. 또한, 프로그램에 의해 만들어진 각 롤의 수, 롤의 총 수를 감안할 때 위의 빈도를 기준으로 한 이상적인 수와 개별적인 열. 이것은 지금까지 내 불완전 코드 : "컴파일러 비주얼 스튜디오 2010"
int rolling(){ //Function that returns a random value between 1 and 6
rand(unsigned(time(NULL)));
int dice = 1 + (rand() %6);
return dice;
}
int roll_dice(int num1,int num2){ //it calls 'rolling function' twice
int result1,result2;
num1 = rolling();
num2 = rolling();
result1 = num1;
result2 = num2;
return result1,result2;
}
int main(void){
int times,i,sum,n1,n2;
int c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11;//counters for each sum
printf("Please enter how many times you want to roll the dice.\n")
scanf_s("%i",×);
나는 각각의 합을 계산하고 배열의 수 (개수)를 저장하는 카운터를 사용하는 척. 루프 (for)와 조건문 (if)이 필요하다는 것을 압니다. 그러나 주된 문제는 roll_dice에서 값을 가져 와서 n1과 n2에 저장하는 것입니다. 그래서 그들을 합산하고 합계를 'sum'에 저장할 수 있습니다.
질문은 무엇입니까? – nneonneo
참고 : 모든 통화가 시작되기 전에'rand '를 시드하면 문제가 발생합니다. 호출 간 간격이 1 초 미만이면 동일한 결과를 얻을 수 있습니다 *. – nneonneo
카운터에 배열을 사용해야합니다. 또한 카운터가 11 개 밖에 없으므로 12가 필요합니다. – Jarryd