C++ 生成器,用于带有扭曲的排列减少每个位置

问题描述

我不是数学家,所以我不知道是否有相关术语(我找不到)。

我正在寻找的是 C++ 代码来生成所有排列,重复,但有一点:第一个位置可以有 n-1 作为最高值,第二个位置可以有 n-2 作为最高值等 n-(n...0)。例如。给定 n=3 并允许重复,结果应为:

[0,0]   ✓
[0,1] ✗
[0,2] ✗
[0,1,2,0] ✗
[0,2] ✗
[1,0]   ✓
[1,1] ✗
[1,0] ✗
[1,2] ✗
[2,0]   ✓
[2,1] ✗
[2,0] ✗
[2,2] ✗

所以它就像一个 N 长度的排列列表,重复 ,除了加上每个位置的限制 。这种序列是否有现有的名称或描述?

我可以制作类似递归模式的东西,但我想要一个生成器。仅用于速度目的。这可能比函数更快吗?你会如何处理这个问题?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)