我已经看到了几个关于如何在数组中生成所有可能的元素组合的类似问题.但是我很难弄清楚如何编写一个只输出组合对的算法.任何建议都将超级赞赏!
从以下数组开始(带有N个元素):
var array = ["apple", "banana", "lemon", "mango"];
Run Code Online (Sandbox Code Playgroud)
得到以下结果:
var result = [
"apple banana"
"apple lemon"
"apple mango"
"banana lemon"
"banana mango"
"lemon mango"
];
Run Code Online (Sandbox Code Playgroud)
我正在尝试以下方法,但这导致所有可能的组合,而不是组合对.
var letters = splSentences;
var combi = [];
var temp= "";
var letLen = Math.pow(2, letters.length);
for (var i = 0; i < letLen ; i++){
temp= "";
for (var j=0;j<letters.length;j++) {
if ((i & Math.pow(2,j))){
temp += letters[j]+ " "
}
}
if (temp !== "") {
combi.push(temp);
} …Run Code Online (Sandbox Code Playgroud) 我正在寻找一种算法,它将采用数字或单词并找到它们的所有可能变体,并让我定义要一起查找的值.
示例假设字符串或数组是:
cat
dog
fish
Run Code Online (Sandbox Code Playgroud)
那么值为2的结果可能是:
cat dog
cat fish
dog cat
dog fish
fish cat
fish dog
Run Code Online (Sandbox Code Playgroud)
因此,3个项目的结果是6个可能的变化,2个结果匹配
3个结果匹配它将是:
cat dog fish
cat fish dog
dog cat fish
dog fish cat
fish cat dog
fish dog cat
Run Code Online (Sandbox Code Playgroud)
...甚至可能有更多的选择
我在这个例子的Stackoverflow上找到了一个链接来做这个,但它是在javascript中,我想知道是否有人知道如何在PHP中执行此操作可能已经构建了一些东西?
我整天都在看PHP数组排列/组合问题..但仍然无法弄明白:/
如果我有一个像这样的数组:
20 //key being 0
20 //key being 1
22 //key being 2
24 //key being 3
Run Code Online (Sandbox Code Playgroud)
我需要组合如:
20, 20, 22 //keys being 0 1 2
20, 20, 24 //keys being 0 1 3
20, 22, 24 //keys being 0 2 3
20, 22, 24 //keys being 1 2 3
Run Code Online (Sandbox Code Playgroud)
我目前的代码给了我:
20, 22, 24
Run Code Online (Sandbox Code Playgroud)
因为它不想重复20 ...但这就是我需要的!
这是我的代码.它直接来自Php递归以获得字符串的所有可能性
function getCombinations($base,$n){
$baselen = count($base);
if($baselen == 0){
return;
}
if($n == 1){
$return = array();
foreach($base as $b){
$return[] = …Run Code Online (Sandbox Code Playgroud) 在PHP中生成数组的所有组合,配置和排列的最有效方法是什么?
我开始学习,我正在制作一个家用fifa18杯的项目.我有一个问题,我不知道如何配对我所说的所有球员:Player1,Player2,Player3,Player4
=> P1 vs P2, P1 vs P3, P1 vs P4
=> P2 vs P3, P2 vs P4
=> P3 vs P4
Run Code Online (Sandbox Code Playgroud)
我使用牛顿公式n!/k!(n-k)!计算没有报复的比赛数量,并让所有球员进入$tab.
所以,现在,我的问题,我怎么配这个?
像这样,它不会重复和P1与P1的例子.
<?php
require("server/baza.php");
$przelacznik = 1;//$_POST['losuj'];
$zapytanie = "select nick from mecze";
if($przelacznik == 1){
$wynik = mysqli_query($polaczenie,$zapytanie);
$tab = array();
$n=0;
while($wiersz = mysqli_fetch_assoc($wynik)){
array_push($tab,$wiersz['nick']);
//$tab[] = $wiersz;
$n++;
}
$Nsilnia = 1;
$NKsilnia =1;
for ($i=1; $i<=$n; $i++) {
$Nsilnia *= $i;
}
for($j=1;$j<=($n-2);$j++){
$NKsilnia *= $j;
}
$ilosc_rozgrywek …Run Code Online (Sandbox Code Playgroud) algorithm ×4
php ×4
arrays ×2
combinations ×2
permutation ×2
javascript ×1
math ×1
recursion ×1