生成不重复数字的数字列表
Generating a list of numbers without repeating digits
作为学校计算项目的一部分,我正在尝试生成一个没有重复数字的升序列表(例如 1234)。
我想使用该算法生成遵循 8 位规则的列表,并且一直在使用以下算法:
生成所有数字然后删除重复数字的数字 - 这最终会创建 8^8 个数字,这需要太长时间
生成遵循规则的随机数,然后查看我是否已经生成了它们 - 这要创建的数字要少得多(8!)但是当数量很少时找到新数字的几率左边变得很苗条。
我需要为此使用不同的算法,但我不知道是什么。执行此操作的最佳算法是什么?
我不想说太多,但你不想检查任何东西。如果算法总能给出正确答案就更好了。您是否考虑过从一组未选择的数字中一次取一个数字来生成它们?而且您不必找到所有排列,因为有一个简单的组合函数可以找到它。 (只记得去掉“0”以外的前导零)
作为学校计算项目的一部分,我正在尝试生成一个没有重复数字的升序列表(例如 1234)。
我想使用该算法生成遵循 8 位规则的列表,并且一直在使用以下算法:
生成所有数字然后删除重复数字的数字 - 这最终会创建 8^8 个数字,这需要太长时间
生成遵循规则的随机数,然后查看我是否已经生成了它们 - 这要创建的数字要少得多(8!)但是当数量很少时找到新数字的几率左边变得很苗条。
我需要为此使用不同的算法,但我不知道是什么。执行此操作的最佳算法是什么?
我不想说太多,但你不想检查任何东西。如果算法总能给出正确答案就更好了。您是否考虑过从一组未选择的数字中一次取一个数字来生成它们?而且您不必找到所有排列,因为有一个简单的组合函数可以找到它。 (只记得去掉“0”以外的前导零)