大家好,今天小编关注到一个比较有意思的话题,就是关于十选五c语言的问题,于是小编就整理了1个相关介绍十选五c语言的解答,让我们一起看看吧。
怎么用c语言编写一个程序,可以在A和B两个选项中随机出现一个结果,概率为50%?
这个问题涉及到伪随机算法,为什么说伪呢?因为计算机里面没有真正随机的东西,依靠一颗随机***来模拟随机,那么你说随机两个能不能到50%概率,这个要看随机数算法的实现和***。现在伪随机算法有很多,就c自带的标准库基本可以控制在50%左右,但不完全准确,可能随机两次都是A。题主可以查查伪随机算法相关知识。希望可以帮到你。
取几个模拟量(浮空)通道的数据二进制最后一位,因为这一位因噪声的影响是更容易改变。然后将这几个通道的这一位想加得到的结果是偶数就是选A,否则选B。当然最好进行更多阶的随机。另外有的单片机有真随机数功能,不过应该都要用到模拟量的机制吧。
随机出现概率?而且必须是50%?那么感觉就不是概率了,而是控制了。既然是概率了,那就肯定有个分布了,理论上是50,但是那是要几乎无限无限次的选择了。计算机语言里都有一个随机函数,能不能达到50就非常难说了。
呵呵,感谢楼主提问这个问题,这是在考我智商呢!咱能不能不出这些脑筋急转弯行不!呵呵开个玩笑非常感谢楼主给我这个机会,我的答案是:用c语言启动两个线程一个选择a选项,一个线程选b选项,并且选择是随机的,但可以保障概率肯定是50%的!那为啥是随机的呢?是因为线程是被操作系统调度的,那么调度有一定的算法给我们的表象是选择答案是随机的,但两个线程输出选项肯定是50%,为什么呢?这原理很简单如果我给两个线程加把锁那么他们肯定是先A后B,那么我如果不加是不是操作系统调度他们的几率是一样的只不过是出现的是随机的,因为线程的优先级和调度权重是一样的!看似是一个简单的问题,但却要你有很扎实的c语言编程能力和丰富的操作系统知识!好的!问题就回答到这里如果喜欢我的回答请关注”嘿咪编程专家”,后续会有更多精彩的回答与大家分享!有疑问随时可私信或留言我会第一时间回复大家谢谢!
到此,以上就是小编对于十选五c语言的问题就介绍到这了,希望介绍关于十选五c语言的1点解答对大家有用。