Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在c中设置rand()函数的结果频率_C_Random - Fatal编程技术网

如何在c中设置rand()函数的结果频率

如何在c中设置rand()函数的结果频率,c,random,C,Random,我需要编写一个程序来模拟两个骰子的滚动,并将它们的总和存储在一个数组中。给出了总和=2和12的频率应为最小值,总和=7的频率应为最大值。 这是我写的代码。我需要2到12之间的随机数和所说的频率 #include <stdio.h> #include <stdlib.h> #include<time.h> int main() { int i, n; n = 5; srand ( time(NULL) ); for

我需要编写一个程序来模拟两个骰子的滚动,并将它们的总和存储在一个数组中。给出了总和=2和12的频率应为最小值,总和=7的频率应为最大值。 这是我写的代码。我需要2到12之间的随机数和所说的频率

#include <stdio.h>
#include <stdlib.h>
#include<time.h>

int main()
{
   int i, n;


   n = 5;
          srand ( time(NULL) );


   for( i = 0 ; i < n ; i++ ) 
   {

      printf("%d\n", rand() % 12);
   }

   return(0);
}
#包括
#包括
#包括
int main()
{
inti,n;
n=5;
srand(时间(空));
对于(i=0;i
调用
rand()
为36对中的每一对生成一个数字,然后返回总和

int dice2sum(void) {
  int r = rand()%36;
  int die1 = r%6 + 1;
  int die2 = r/6 + 1;
  return die1 + die2;
}

调用rand()%6+1两次并对结果求和不是更容易吗?你可以用更简单的数学来模拟完全相同的行为。