【问题标题】:choose random block of numbers without repetition选择不重复的随机数字块
【发布时间】:2021-04-05 15:46:11
【问题描述】:

我有一个从 1 到 100 的数字列表。我需要选择一个随机大小的数字块。 例如,第一次选择数字 5 到 21 第二次选择数字 50 到 66 继续选择一个数字块,直到选择了所有数字,即我覆盖了整个范围(即 100)。数字不应在任何块中重复,这意味着范围应该是唯一的。

我需要一个与特定编程语言无关的通用算法。

【问题讨论】:

    标签: random unique


    【解决方案1】:
    • 将您的列表切成随机大小的块(选择一个随机大小;将其切掉;重复直到列表为空)。
    • 随机打乱块(Fisher-Yates)
    • 按打乱顺序返回块

    任何“随机但非重复”算法的答案总是“随机播放”。

    【讨论】:

    • 好主意。谢谢提示
    猜你喜欢
    • 2023-01-11
    • 2013-04-23
    • 1970-01-01
    • 1970-01-01
    • 2017-10-25
    • 2012-10-22
    • 2021-03-18
    • 1970-01-01
    • 2019-05-05
    相关资源
    最近更新 更多