根据unsigned int生成介于0和1之间的均匀分布的随机数

时间:2012-09-25 16:02:21

标签: random

我可以使用统一随机数生成器例程生成的32位无符号整数。我想将此数字转换为[0,1]范围内的浮点数。 显然,通过将unsigned int除以UINT_MAX,将两者都转换为在除法之前浮动,这是最容易实现的。除非我错了,否则我认为这样的划分将花费我很多精力,因此并不理想。

由于此操作将在openCL中执行,我假设没有可以在中间使用的双重变量。

我有什么想法可以更好地生成浮动?

提前致谢!

汤姆

1 个答案:

答案 0 :(得分:0)

我不这么认为。

无论如何,你只有32位的精度可用,所以投射到(大概是32位)浮动和返回应该没问题。

您将获得32位量化“错误”,但这是基于原始的32位数据类型,而不是浮点数。