我必须生成所有不重复的数字 0 - 9 的变体。
它们的长度可能从1到10。我真的不知道如何解决它,特别是如何避免重复。
例子:
变化长度:4
随机变化:9856、8753、1243、1234 等(但不是 9985 - 包含重复)
你能帮我么?或者你能给我代码吗?
要寻找的关键字是排列。有大量免费的源代码可以执行它们。
至于保持其不重复,我建议一种简单的递归方法:对于每个数字,您可以选择是否将其纳入您的变体中,因此您的递归会计算数字并分叉成两个递归调用,其中一个包含该数字,其中它被排除在外。然后,在到达最后一个数字后,每次递归本质上都会为您提供一个(唯一的、已排序的)无重复数字的列表。然后,您可以创建此列表的所有可能的排列,并将所有这些排列组合起来以获得最终结果。
(正如达菲莫所说:我不会为此提供代码)
高级说明:递归基于 0/1(排除、包含),可以直接转换为位,即整数。因此,为了获得所有可能的数字组合而不实际执行递归本身,您可以简单地使用所有 10 位整数并迭代它们。然后解释这些数字,使得设置的位对应于将需要排列的数字包含在列表中。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)