相关疑难解决方法(0)

JavaScript中的排列?

我正在尝试编写一个执行以下操作的函数:

  • 将整数数组作为参数(例如[1,2,3,4])
  • 创建一个包含[1,2,3,4]所有可能排列的数组,每个排列的长度为4

下面的函数(我在网上找到)通过将一个字符串作为参数,然后返回该字符串的所有排列来完成此操作

我无法弄清楚如何修改它以使其与整数数组一起使用(我认为这与某些方法在字符串上的工作方式不同于它们在整数上的工作方式有关,但我不确定. ..)

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中找到了如何做到这一点

javascript permutation

127
推荐指数
14
解决办法
11万
查看次数

为什么我不能在另一个函数中定义一个函数?

这不是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++ functor function-declaration

78
推荐指数
5
解决办法
3万
查看次数

用c ++生成组合

我一直在搜索使用c ++生成组合的源代码.我找到了一些高级代码,但这仅适用于特定数量的预定义数据.任何人都可以给我一些提示,或者也许是一些想法来产生组合.例如,假设集合S = {1,2,3,....,n},我们选择r = 2.输入将是nr.在这种情况下,程序将生成长度为2的数组,如5 2输出1 2,1 3等.我很难构建算法.我花了一个月的时间思考这个问题.

c++ algorithm combinations

56
推荐指数
4
解决办法
8万
查看次数

没有递归的置换算法?Java的

我想得到一个数字的所有组合,没有任何重复.如0.1.2,0.2.1,1.2.0,1.0.2,2.0.1,2.1.0.我试图找到一个简单的方案,但不能.我为它绘制了一个图形/树,这尖叫使用递归.但是如果可能的话,我想在没有递归的情况下这样做.

有人可以帮我这么做吗?

java recursion permutation sequence

37
推荐指数
6
解决办法
4万
查看次数

在C++中创建n个项目的所有可能k组合

有n个人编号从.1n.我必须编写一个代码,用于生成和打印k这些人的所有不同组合n.请解释用于此的算法.

c++ algorithm math combinations combinatorics

37
推荐指数
5
解决办法
11万
查看次数

查找集合的所有子集

我需要一个算法来查找集合中元素数量的所有子集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++ algorithm math subset

33
推荐指数
5
解决办法
11万
查看次数

值列表的所有可能组合

我的C#程序中有一个整数列表.但是,我只在运行时知道列表中的项目数.

让我们说,为了简单起见,我的列表是{1,2,3}现在我需要生成所有可能的组合,如下所示.{1,2,3} {1,2} {1,3} {2,3} {1} {2} {3}

有人可以帮忙吗?

c# combinations

32
推荐指数
6
解决办法
7万
查看次数

计算n的值选择k

评估n选择k值的最有效方法是什么?我认为蛮力方式是找到n阶乘/ k阶乘/(nk)阶乘.

更好的策略可能是根据这个递归公式使用dp .有没有其他更好的方法来评估n选择k?

language-agnostic algorithm combinations

32
推荐指数
4
解决办法
5万
查看次数

在数组中查找长度为k的所有子集

给定一组{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中的算法和实现.

arrays algorithm permutation set

30
推荐指数
1
解决办法
4万
查看次数

PHP数组组合

我有一个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个插槽中,无视顺序

php arrays combinations

25
推荐指数
3
解决办法
3万
查看次数