js實現n個元素的排列組合及存在相同元素的處理方法
不能有相同的元素,相同號碼替換成對應字母處理
方法一:
var zhixuan = newarray();
//不能有相同的元素,相同號碼替換成對應字母處理
function
arrange(arr,s)
continue
; }
if(s.indexof(arr[i]) < 0)
}}
方法二:
//var arr1 = [1,2,3,3,4]; 不能有相同的,相同號碼替換成對應字母處理
function
permute(temarr,testarr)
continue
; }
if(temarr.indexof(arr[i]) < 0) }}
innerpermute(temarr);
return
permutearr;
}
相同號碼替換對應字母處理方法:
string.prototype.myreplace=function(f,e)
var nlist = ["0","1","2","3","4","5","6","7","8","9"];
var clist = ["a","b","c","d","e","f","g","h","i","j"];
function
replacecode(number)
}}
使用方法示例:
var arr = [1,2,3,3,4];//替換相同的數字為對應字母
arr[3] = replacecode(arr[3]);
//呼叫方法一
arrange(arr,'');
//使用方法一的全域性變數
var outstr = zhixuan.join(",");
//替換對應的字串為數字
for(var i=0; i<10; i++)
//輸出內容
$("#showdiv").html(outstr);
n個陣列實現排列組合
命題場景 現在有一批手機,其中顏色有 白色 黑色 金色 記憶體大小有 16g 32g 64g 版本有 移動 聯通 電信 要求寫乙個演算法,實現 白色 16g 移動 白色 16g 聯通 這樣的組合 陣列排列組合方法 doexchange arr var len arr.length 當陣列大於等於2個...
排列組合的實現
實現排列a n,m c461 include int m,n,a 30 long s 0 void main 排列遞迴函式p k int p intk else p k 1 若沒到m個數,則探索下乙個數 p k 1 returns 遞迴實現組合c n,m c462 include int m,n,a...
perl實現元素排列組合演算法
網上搜了半天,沒找到寫的較好的利用perl實現元素排列組合的演算法,自己寫了乙個,請大家拍磚。注 該方法實現的是無冗餘的排列組合,例如 a b 和 b a 只保留a b乙個,每種可能的組合結果都是以乙個陣列的形式儲存的,方便後期對變數組合資料進行進一步的處理。這個排列組合是個二維陣列。1.下面是我寫...