给定一个离散均匀分布D~U([0:2^N-1]
,一个样本从中产生一个整数范围 [ 0
, 2^N-1
] 中的整数N
,我需要一个函数convert
,这样对于一个样本d~D
,convert(d, m)
将有一个整数均匀包含分布Dc~U([0:m])
。
想法:
- 如果分布是连续的,这很容易。只需截断数字的无限表示,就可以保持一致性。
- 我想不出一种方法来为所有数字做到这一点并保持一致性。
- 我可以针对平局条件重新滚动,但无法制定算法。
我最终想要的是自定义范围 ( ) 上的杂音散列m
,而不是精确的 32 位数字。