java – 生成唯一的随机数
发布时间:2020-12-15 04:43:36 所属栏目:Java 来源:网络整理
导读:参见英文答案 Creating random numbers with no duplicates????????????????????????????????????15个 如何在1到9之间生成9个随机数,不重复,一个接一个.就像是: 假设生成的第一个随机数是4,那么下一个随机数必须在[1,9] – {4}中. 我的第一种方法是将每个随
参见英文答案 >
Creating random numbers with no duplicates????????????????????????????????????15个
如何在1到9之间生成9个随机数,不重复,一个接一个.就像是: 假设生成的第一个随机数是4,那么下一个随机数必须在[1,9] – {4}中. 我的第一种方法是将每个随机生成的数字添加到一个集合中,从而避免重复.但是在更糟糕的情况下,就像我们已经生成6并且我们必须再生成3个数字一样,这个过程有点慢.当范围从[1,9]变为[1,1000]时,这种方法听起来不正确. 任何人都可以建议替代方法. 解决方法
以下是两种可能的方法: –
方法1: –
时间复杂度:O(N) 空间复杂度:O(N) 方法2: –
时间复杂度:O(N) 空间复杂度:O(K) 专业版缺点: – 方法1:将此方法用于小整数范围,因为它需要更大的空间,但速度非常快且随机. 方法2:将此方法用于更大的范围,因为它需要您选择的内存O(K). k越高,生成的数字的随机性越高.因此,您可以在空间和随机性之间实现良好的折衷,同时保持良好的速度. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |