【发布时间】:2014-05-25 19:05:38
【问题描述】:
我没有任何代码,主要是因为我还没有开始解决这个特定问题。这是我的 C 编程课的作业。
我的教授希望我们创建一个可以抛硬币(正面或反面)10,000 次的程序。但是,头部元素有 55% 的几率出现。我们必须使用具有用户提供的seed 值的随机数生成器。
从概念上讲,我知道如何处理这个问题;编码方面,我不知道。我知道如何制作抛硬币程序,但没有偏见。
我们将不胜感激。
我附上了我的投币机程序的代码。我原本打算以此为基础来制定这个新的bias抛硬币计划。
// CoinTosser_Homework4.cpp : Coin tossing program
// nxt3
#include "stdafx.h"
#include <stdio.h>
#include <stdlib.h>
#define HEADS 0
#define TAILS 1
int rand_int(int a, int b) {
return rand() % ((b - a + 1) + a);
}
int main() {
int tosses = 0, min = 0, heads = 0, tails = 0; //init tosses and number of user defined tosses
/*users input for number of tosses*/
printf("Enter number of coin tosses: ");
scanf("%i", &min);
while (tosses < min) {
tosses++;
if (rand_int(HEADS, TAILS) == HEADS)
heads++;
else
tails++;
}
//prints results of tosses
printf("Number of heads: %i\n", heads);
printf("Number of tails: %i\n", tails);
return 0;
}
【问题讨论】:
-
生成一个介于 0..99 而不是 0..1 之间的随机数
-
显示主编码 oops 是
rand() % ((b - a + 1) + a)。认为你想要rand() % (b - a + 1) + a;