gpt4 book ai didi

Java:对象为双 "hash"函数,在 [0,1) 上均匀分布

转载 作者:太空宇宙 更新时间:2023-11-04 14:31:12 25 4
gpt4 key购买 nike

我正在尝试构建或查找一个函数,该函数将 java 对象作为输入并返回 [0,1) 区间内的 double 值。 “散列”函数的密码安全性(单向函数,无冲突)不是我主要关心的问题。我只是想要 0 到 1 之间均匀分布的 double 值。

我无法使用 Math.random 或 Random 等函数或类,因为这会对相同的输入返回不同的结果。

到目前为止,我最好的方法是使用 Object.hashCode() 方法,并将返回的 int 值分解为 0 到 1 之间的 double 值。不幸的是,结果值的分布不是很均匀。许多值都在 0.1 到 0.3 之间。我猜 hashCode() 方法不是均匀分布的。

关于如何改进我的方法或总体上更好的方法有什么想法吗?

最佳答案

你实际上可以使用随机数,如果

  • 它们与 map 中的对象一起存储,该 map 可全局访问或传递给需要生成双“哈希”值的每个人,并且
  • 确保在映射中查找每个对象,并且仅针对尚未存在的对象生成新值。

(您可能希望将该映射和查找/生成逻辑包装在其自己的类中。)

关于Java:对象为双 "hash"函数,在 [0,1) 上均匀分布,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26120657/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com