gpt4 book ai didi

math - 给定范围内的所有数字但顺序随机

转载 作者:行者123 更新时间:2023-12-05 00:51:03 25 4
gpt4 key购买 nike

关闭。这个问题需要更多focused .它目前不接受答案。












想改善这个问题吗?更新问题,使其仅关注一个问题 editing this post .

4年前关闭。




Improve this question




假设我想以随机顺序生成 1-1000 之间的所有整数。但...

  • 不会生成超过一次的数字
  • 不存储所有可能数字的数组、列表...
  • 不存储已经生成的数字。
  • 最后没有遗漏任何数字。

  • 我认为这应该是不可能的,但也许我只是没有考虑正确的解决方案。

    我想在 C# 中使用它,但我对方法比实际实现更感兴趣。

    最佳答案

    加密。加密是两个集合之间的一对一映射。如果这两个集合相同,那么它是由加密 key 指定的排列。编写/查找将 {0, 1000} 映射到自身的加密。阅读 Format Preserving Encryption (FPE) 在这里为您提供帮助。

    要生成随机顺序,只需按顺序加密数字 0, 1, 2, ...。您不需要存储它们,只需跟踪您通过列表获得了多远。

    从实用的角度来看,{0, 1023} 中的数字更容易处理,因为它是一个具有 10 位块大小的块密码,您可以编写一个简单的 Feistel cipher生成您的数字。无论如何,您可能想要这样做,只需重新加密 1000 以上的数字——FPE 的循环行走方法。

    关于math - 给定范围内的所有数字但顺序随机,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44818884/

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