我是靠谱客的博主 积极过客,最近开发中收集的这篇文章主要介绍如何用c语言产生100随机样本点,关于C语言的随机函数的一点思考,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

今天在看书的过程遇到一个问题,大致描述如下:

编写一个函数,通过返回范围1至6的随机整数来模拟掷筛子。同时,这个题目要求这个6个数字出现的概率是相等的。

首先,对于这个问题的基本思路如下:

首先,用srand函数对随机数发生器进行初始化。

其次,循环调用rand函数六次,对每一次调用的结果与6取模,然后再加1,就可以得到我们想要的六个随机数。

由于rand函数返回的是一个范围在0到RAND_MAX的伪随机数。在我所使用的机器上,RAND_MAX的取值是32767.

任何一个整数在与6取模之后的余数有六种的可能的值:0、1、2、3、4、5.

在范围0到RAND_MAX内,上述六种余数出现的次数分别为:

0:5462

1:5462

2:5461

3:5461

4:5461

5:5461

很显然,这个六个余数在该范围内出现的概率必然不想等。因而,掷出的六个整数也不是等概率的。

但是,当把范围限定在0到32765之间的时候,上述六个余数出现的次数均为5461。因此,只有在这个范围内得到的六个随机数才是等概率的。

到此,我的问题基本是解决了。

但是,这种问题有没有什么规律呢?

那么,如果下次我想产生范围在1到30000之间的随机数,那么每个数出现的概率是否相等。

如果不相等,那么我该怎么限定范围,来让每个整数出现的概率相等呢?

最后

以上就是积极过客为你收集整理的如何用c语言产生100随机样本点,关于C语言的随机函数的一点思考的全部内容,希望文章能够帮你解决如何用c语言产生100随机样本点,关于C语言的随机函数的一点思考所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(49)

评论列表共有 0 条评论

立即
投稿
返回
顶部