草庐IT

usedNumbers

全部标签

java - 用 0-(N-1) 中的唯一数字替换重复数字

背景:我有一个长度为N的正随机数数组,其中肯定包含重复项。例如10,4,5,7,10,9,10,9,8,10,5编辑:N可能是32,或者其他一些与该大小差不多的2的幂。问题:我正在尝试找到用0-(N-1)中缺失的数字替换重复项的最快方法。使用上面的例子,我想要一个看起来像这样的结果:10,4,5,7,0,9,1,2,8,3,6目标是让每个数字从0到N-1都有一个,而不仅仅是用0-(N-1)替换所有数字(随机顺序很重要)。编辑:确定性替换也很重要,即相同的输入将有相同的输出(不是随机的)。我的解决方案:目前在Java中实现,使用2个boolean数组来跟踪已使用/未使用的数字([0,N)

swift - 通过数字范围随机化

如果用户点击一个按钮并且标签打印一个随机生成的1-12数字,我正在尝试让应用程序的这一部分正常工作。我已经能够成功地做到这一点,但我也希望它不要重复任何已经打印的随机数。我尝试做的是将任何打印的数字放入一个数组中,然后在每次生成新数字时检查该数组。我已经让它在Playground中工作,但无法让它在真实项目中工作。这是我的项目的代码。varusedNumbers=[Int]()varrandomConv=0funcrandomize(){lblRandom.text="\(arc4random_uniform(12)+1)"randomConv=Int(lblRandom.text!)