gpt4 book ai didi

android随机数问题

转载 作者:太空狗 更新时间:2023-10-29 16:25:08 26 4
gpt4 key购买 nike

尝试创建一个随机方法来查询数据库,获取数据库中的行数,然后获取 1 和总行数之间的随机数以获取数据库中的特定项目。它工作正常,但不是很好,如果数据库中的条目少于十个,它将重复相同的条目大约十分之四。我想我需要一个更好的方法。

 number = mDbHelper.getCount(mDbHelper.mDb);
Random generator = new Random();
n = generator.nextInt((int) number);
if(n <= 1){
n = 1;
}

有什么想法吗?

最佳答案

根据您的描述,您的数据库查询是基于 1 的。 Java nextInt 是从 0 开始的,也就是说,.nextInt(10) 会生成一个 0 到 9 之间的随机数。所以你的正确解决方案是将第 3 行更改为

n = generator.nextInt((int) number) + 1;

这将为您提供所需的内容。

因为目前您在第 4 行和第 5 行将 [0] 和 [1] 都转换为 1,所以您歪曲了概率分布。您的第一个条目将被计算两次。如果您的 数据库 中平均有 5 个条目,这将为您提供您所看到的 2/5 = 40% 命中率。

关于android随机数问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3848226/

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