【发布时间】:2015-10-21 04:46:29
【问题描述】:
我有一个像[0,2,3,0,1] 这样的数组作为输入,我需要找到{0}x{0,1,2}x{0,1,2,3}x{0}x{0,1} 的笛卡尔积,更准确地说我需要输出如下。
输入:
[0, 2, 3, 0, 1]
输出:
[0, 0, 0, 0, 0]
[0, 0, 0, 0, 1]
[0, 0, 1, 0, 0]
[0, 0, 1, 0, 1]
[0, 0, 2, 0, 0]
[0, 0, 2, 0, 1]
[0, 0, 3, 0, 0]
[0, 0, 3, 0, 1]
[0, 1, 0, 0, 0]
[0, 1, 0, 0, 1]
[0, 1, 1, 0, 0]
[0, 1, 1, 0, 1]
[0, 1, 2, 0, 0]
[0, 1, 2, 0, 1]
[0, 1, 3, 0, 0]
[0, 1, 3, 0, 1]
[0, 2, 0, 0, 0]
[0, 2, 0, 0, 1]
[0, 2, 1, 0, 0]
[0, 2, 1, 0, 1]
[0, 2, 2, 0, 0]
[0, 2, 2, 0, 1]
[0, 2, 3, 0, 0]
[0, 2, 3, 0, 1]
我需要一个通用算法。任何想法 ?我想用 C++ 编写它。 谢谢
【问题讨论】:
-
所以你想从0开始计数到每个位置的输入值?
-
[0, 0, 0, 1, 0]不在输出列表中的任何原因? -
据我所知,这个问题并不是真正的排列,实际上要简单得多。您使用什么算法根据输入得出预期的输出?
标签: c++ arrays algorithm cartesian-product