我们如何使用rand()函数自定义代码以生成n位数字,其中n <8,其中没有数字重复? 假设我想生成一个从1000到9999的4位数字,这个数字不应该包含数字重复:例如1023 4798等。 顺便说一下,我们可能不会概括n。
我在解决的问题中略过了答案。老实说,我认为生成一系列数字但没有一个重复的问题是在我看来更容易生成没有重复数字的数字。还在寻找答案。
我的代码是一个真正的混乱,如实地不包含单一的尝试来解决所述的问题。我有一个论文草稿,但它仍然基于为一个数字中的每个数字分配一个整数变量和一个小循环,它检查它们中的一些是否相等并增加/减少其中一个。即使对我来说这听起来也是一个坏主意,但这就是我能来的全部。
答案 0 :(得分:3)
您有几个明显的选择:
选择一个随机数,如果它包含任何重复数字,请再次选择。如果n
很高,这可能会变慢。
随机抽取数字0到9,取前n位数。
保留其余数字的数组。从数组中随机选取一个元素并将其从数组中删除。重复所需的位数。
如果零不是合法的第一个数字,您将不得不解决这个问题。在每种情况下都应该明白如何做到这一点。如果结果数字太低,您可以随时再次选择。