我正在尝试编写一个执行以下操作的函数:
下面的函数(我在网上找到)通过将一个字符串作为参数,然后返回该字符串的所有排列来完成此操作
我无法弄清楚如何修改它以使其与整数数组一起使用(我认为这与某些方法在字符串上的工作方式不同于它们在整数上的工作方式有关,但我不确定. ..)
var permArr = [], usedChars = [];
function permute(input) {
var i, ch, chars = input.split("");
for (i = 0; i < chars.length; i++) {
ch = chars.splice(i, 1);
usedChars.push(ch);
if (chars.length == 0)
permArr[permArr.length] = usedChars.join("");
permute(chars.join(""));
chars.splice(i, 0, ch);
usedChars.pop();
}
return permArr
};
Run Code Online (Sandbox Code Playgroud)
注意:我希望使函数返回整数数组,而不是字符串数组.
我真的需要使用JavaScript的解决方案.我已经在python中找到了如何做到这一点
这不是lambda函数问题,我知道我可以将lambda赋给变量.
允许我们声明,但不在代码中定义函数是什么意思?
例如:
#include <iostream>
int main()
{
// This is illegal
// int one(int bar) { return 13 + bar; }
// This is legal, but why would I want this?
int two(int bar);
// This gets the job done but man it's complicated
class three{
int m_iBar;
public:
three(int bar):m_iBar(13 + bar){}
operator int(){return m_iBar;}
};
std::cout << three(42) << '\n';
return 0;
}
Run Code Online (Sandbox Code Playgroud)
所以我想知道的是为什么C++会允许two哪些看似无用,three哪个看起来更复杂,但却不允许one?
编辑:
从答案中可以看出,代码内声明可能能够防止命名空间污染,我希望听到的是为什么声明函数的能力已被允许,但是不允许定义函数的能力.
我一直在搜索使用c ++生成组合的源代码.我找到了一些高级代码,但这仅适用于特定数量的预定义数据.任何人都可以给我一些提示,或者也许是一些想法来产生组合.例如,假设集合S = {1,2,3,....,n},我们选择r = 2.输入将是n和r.在这种情况下,程序将生成长度为2的数组,如5 2输出1 2,1 3等.我很难构建算法.我花了一个月的时间思考这个问题.
我想得到一个数字的所有组合,没有任何重复.如0.1.2,0.2.1,1.2.0,1.0.2,2.0.1,2.1.0.我试图找到一个简单的方案,但不能.我为它绘制了一个图形/树,这尖叫使用递归.但是如果可能的话,我想在没有递归的情况下这样做.
有人可以帮我这么做吗?
有n个人编号从.1到n.我必须编写一个代码,用于生成和打印k这些人的所有不同组合n.请解释用于此的算法.
我需要一个算法来查找集合中元素数量的所有子集n.
S={1,2,3,4...n}
Run Code Online (Sandbox Code Playgroud)
编辑:我无法理解到目前为止提供的答案.我想逐步说明答案如何找到子集.
例如,
S={1,2,3,4,5}
Run Code Online (Sandbox Code Playgroud)
你怎么知道{1}并且{1,2}是子集?
有人可以帮我用c ++中的一个简单函数来查找{1,2,3,4,5}的子集
我的C#程序中有一个整数列表.但是,我只在运行时知道列表中的项目数.
让我们说,为了简单起见,我的列表是{1,2,3}现在我需要生成所有可能的组合,如下所示.{1,2,3} {1,2} {1,3} {2,3} {1} {2} {3}
有人可以帮忙吗?
给定一组{1,2,3,4,5...n}n个元素,我们需要找到长度为k的所有子集.
例如,如果n = 4且k = 2,output将是{1, 2}, {1, 3}, {1, 4}, {2, 3}, {2, 4}, {3, 4}.
我甚至无法弄清楚如何开始.我们不必使用内置的库函数,如next_permutation等.
需要C/C++或Java中的算法和实现.
我有一个7个数字(1,2,3,4,5,6,7)的数组,我想要成对的5个数字,如(1,2,3,4,5),(1,2,3) ,4,6,),(1,2,3,4,7).(1,2,3,4,5)等于(4,5,3,1,2)
我想知道PHP或任何算法中是否有函数可以执行此操作?我不知道从哪里开始.你能帮助我吗 ?
我希望将7个给定数字(它们从一个数组中取出)的所有组合放入5个插槽中,无视顺序
algorithm ×5
combinations ×5
c++ ×4
permutation ×3
arrays ×2
math ×2
c# ×1
functor ×1
java ×1
javascript ×1
php ×1
recursion ×1
sequence ×1
set ×1
subset ×1