【发布时间】:2009-06-05 13:56:35
【问题描述】:
如何以难以预测的顺序循环固定范围的整数(例如 100000-999999)?
- 假设范围可能足够大,以至于将所有可能的整数存储在一个数组中或保留一个包含您目前找到的每个元素的数组是不切实际的。
- 您必须点击范围内的每个数字一次且仅一次,并且能够判断您何时完成,即没有剩余数字
即我想要更优雅的东西,而不仅仅是 A)选择一个随机数,然后 B)检查它是否已被使用,如果是,则返回步骤 A,原因如下(除非你能说服我否则):
- 当你开始用完数字时,这真的很糟糕
- 判断您是否用完了未使用的号码可能会非常昂贵
- 如果您有很多客户端或线程尝试在同一范围之外同时执行此操作,那么这种方法也可能会出现并发问题
【问题讨论】:
-
可以存储位掩码吗? 100.000 个整数可能太大而无法存储,但 100.000 位可能会少 32 倍。
-
可以是双链表吗?
-
可以存入数据库表吗?
-
我详细阐述了一点,希望它更清楚
标签: algorithm language-agnostic