如何我在C、C++、C中掷骰子?(i roll dice in c, c++, and c#?)

此应用程序使用srand()函数为随机数生成器设定种子。函数Random(n)返回1到n范围内的整数。...

此应用程序使用srand()函数为随机数生成器设定种子。函数Random(n)返回1到n范围内的整数。

dice on computer keyboard

int数组totals保存分数3到18的总计数。然后循环1000万次。此数字定义为常量,但如果编译器不支持常量,请取消对#define的注释。

每个骰子,d1,d2和d3持有随机()生成的骰子掷骰,并且组合骰子分数的元素(范围3-18)递增。

最后一部分打印出总数,以查看它是否根据概率生成抛出。六面骰子的平均得分为3.5分,所以三个骰子的平均得分应该在10.5分左右。10和11的总数大致相同,大约有12.5%的时间发生。

以下是典型运行的输出。只需一秒钟。

掷一千万骰子

  • 3 46130
  • 4 138608
  • 5 277278
  • 6 462607
  • 7 695381
  • 8 972020
  • 9 1158347
  • 10 1253671
  • 11 1249267
  • 12 1156480
  • 13 972005
  • 14 692874
  • 15 462452
  • 16 277575
  • 17 139142
  • 18 46163
// dicerolls.c :#include <time.h> /* Needed just for srand seed */#include <stdlib.h>#include <stdio.h>const tenmillion = 1000000L;/* #define tenmillion 10000000L */void Randomize() {srand( (unsigned)time( NULL ) ) ;}int Random(int Max) {return ( rand() % Max)+ 1;}int main(int argc, char* argv[]){int i;int totals[19];printf("Rolling Ten Million Dice\n") ;Randomize() ;for (i=3;i<=18;i++)totals[ i ]=0;for (i=0;i< tenmillion;i++){int d1=Random(6) ;int d2=Random(6) ;int d3=Random(6) ;int total=d1+d2+d3;totals[ total ]++;}for (i=3;i<=18;i++){printf("%i %i\n\r",i,totals[ i ]) ;}return 0;}

  • 发表于 2021-09-21 20:13
  • 阅读 ( 229 )
  • 分类:编程

你可能感兴趣的文章

为什么“dir c:”与“dir c:\”返回如此不同的结果?

当您了解如何使用命令行以及各种命令可以做什么时,您可能想知道,对于看起来几乎相同的命令,为什么会得到如此不同的结果。有鉴于此,今天的超级用户问答可以帮助困惑的读者理解其中的区别。 今天的问答环节是由Supe...

  • 发布于 2021-04-09 21:10
  • 阅读 ( 98 )

命令行前面的文本叫什么?

...示的讨论都让你处于命令行的状态,那么请查看以下一些如何在提示下极客化生活的文章: 如何个性化Windows命令提示符 5个你可能不知道的Windows命令提示符技巧 初学者极客:如何开始使用Linux终端 使用以下8个技巧成为Linux终...

  • 发布于 2021-04-11 20:12
  • 阅读 ( 230 )

本周最佳科技写作,8月12日

...数据传输时间。 连线:杰瑞阿德勒-狂怒的公牛:华尔街如何沉迷于光速交易 This movement has been gaining momentum for more than a decade. Human beings who make investment decisi*** based on their asses**ent of the economy and on the prospects for individual companies are ...

  • 发布于 2021-04-23 18:03
  • 阅读 ( 166 )

打破(break)和在C++中继续(continue in c++)的区别

C++中中断和继续的主要区别是中断被用来立即终止循环并将控制传递到循环之后的下一个语句,而继续被用来跳过循环的当前迭代。 C++是一种高级通用编程语言。它是C语言的高级版本。换句话说,C++类似于C,但是它支持面向对...

  • 发布于 2021-07-01 04:32
  • 阅读 ( 240 )

静止的(static)和C++中的常量函数(constant function in c++)的区别

C++中静态和常量函数的主要区别在于静态函数允许使用类调用函数,而不使用对象,而常量函数不允许修改对象。 C++是Bjarne Stroustrup在1979开发的一种编程语言,C++类似于C,但比C语言具有更多的特性。因此,它被称为C语言的一...

  • 发布于 2021-07-01 09:34
  • 阅读 ( 282 )

友元函数(friend function)和C++中的正规函数(normal function in c++)的区别

C++中Frand函数与Calm函数的主要区别是,Frand函数有助于访问私有数据和受保护数据,而正常函数是执行特定任务的一组语句。 C++是Bjarne Stroustrup在1979开发的一种程序设计语言,它与C语言相似,但它的C语言具有更多的特性。C++中...

  • 发布于 2021-07-01 11:43
  • 阅读 ( 257 )

C(c)和C++(c++)的区别

C和C++的主要区别在于C支持结构化编程,而C++是C的超集,它支持结构编程以及面向对象编程(OOP)。 C是一种通用的编程语言,它是大多数现代编程语言的基础语言。另一方面,C++是C语言的一种增强。任何C程序都是一个有效的C+...

  • 发布于 2021-07-01 12:20
  • 阅读 ( 236 )

数组(array)和c程序设计中的结构(structure in c programming)的区别

...级通用编程语言。它是最现代的编程语言的基础语言,如C++、java、python和php。操作系统、嵌入式系统、网络驱动程序、数据库等都是我们可以用C语言开发的应用程序。数组和结构是C语言中两个基本的编程概念。总的来说,数组...

  • 发布于 2021-07-01 12:48
  • 阅读 ( 230 )

函数声明(function declaration)和c程序设计中的函数定义(function definition in c programming)的区别

...定义的区别在于函数声明有助于指示编译器关于函数以及如何调用该函数等,而函数定义则有助于编写函数应该执行的内容。它是实际实现的功能。 包括 函数声明包含函数名称、参数列表和返回类型,函数定义包含函数名称、...

  • 发布于 2021-07-01 13:49
  • 阅读 ( 363 )

基类(base class)和C++中派生类(derived class in c++)的区别

C++中基类和派生类的主要区别在于基类是已经存在的类,而派生类是继承基类的属性和方法的类。 C++是贝尔实验室Bjarne Stroustrup开发的一种高级通用编程语言。它是C语言的超集。程序员可以使用C++实现面向对象编程(OOP)概念...

  • 发布于 2021-07-01 14:50
  • 阅读 ( 746 )
用户1111121
用户1111121

0 篇文章

相关推荐