js中實現數學中的排列情況

數學中排列組合相關知識,給一個小夥伴做的

function queue(arr, size) {
	        if (size > arr.length) { return; }
	        var allResult = [];
	 
	        (function (arr, size, result) {
	            if (result.length == size) {
	                allResult.push(result);
	            } else {
	                for (var i = 0, len = arr.length; i < len; i++) {
	                    var newArr = [].concat(arr),
	                        curItem = newArr.splice(i, 1);
	                    arguments.callee(newArr, size, [].concat(result, curItem));
	                }
	            }
	        })(arr, size, []);
	        return allResult;
		}
    var arr = [0,0,3]; //改變這個數組的值
    var newArr=queue(arr, arr.length);
    var s=new Set();
    for(var i=0;i<newArr.length;i++){
    	s.add(newArr[i].toString());
    }
    console.log(Array.from(s),"排列的情況個數:"+s.size);
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章