我试图生成一个没有重复数字的数字的升序列表(例如,1234)作为学校计算项目的一部分。
我想使用该算法生成遵循该规则8个数字的列表并使用以下算法:
生成所有数字,然后删除重复数字的数字 - 最终创建8 ^ 8个数字,这需要太长时间
生成遵循规则的随机数,然后查看我是否已经生成它们 - 这个数字要少得多(8!)但是当剩下很少时找到新数字的几率变得非常渺茫
我需要为此使用不同的算法,但我无法弄清楚是什么。这样做的最佳算法是什么?
答案 0 :(得分:1)
我不想说太多,但你不想检查任何东西。如果算法总能产生正确的答案会更好。您是否考虑过从未选择的数字组中一次取一位数来生成它们?而且你不必找到所有的安排,因为有一个简单的组合函数可以找到它。 (只需记住消除前导零,除了" 0")