如何从C函数兰特较大的随机数() [英] How to get a larger random number from the c function rand()

查看:204
本文介绍了如何从C函数兰特较大的随机数()的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在一个编码环境,我只使用一些最基本的C函数。 #include'ing其他的lib是行不通的。

I am in a coding environment where I only have access to some most basic c functions. #include'ing other lib is not feasible.

在这种环境下,我可以调用rand(),这也是我之间0〜32767(含)(我认为)在我的环境的随机数。在下面的code正确的逻辑来得到均匀分布就像一个更大的随机数/作为RAND()?

In this environment, I can call rand() which gives me a random number between 0 to 32767 inclusively(I think) in my environment. Is the following code the right logic to get a larger random number that is evenly distributed like/as rand()?

RNUM = RAND()*(32767 + 1)+兰特();

推荐答案

RNUM =(RAND()<< 15)| RAND()可能会更快,但如果你需要高质量的随机数字,你应该寻找一个外部的库。内置的随机函数是通常足够仅在最简单的应用程序。

rnum = (rand() << 15) | rand() might be faster, but if you need good quality random numbers you should look for an external library. Built-in random functions are generally adequate only for the simplest applications.

这篇关于如何从C函数兰特较大的随机数()的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆