簡體   English   中英

使用javascript進行重復(組合)變化的代碼?

[英]Code for Variations with repetition (combinatorics) using javascript?

有沒有人有用於生成所有重復變體的 Javascript 代碼?

重復變化的例子:

(size=3, input=A,B)
AAA, AAB, ABA, BAA, ABB, BAB, BBA, BBB

我需要做的是對 0-9 的數字作為輸入和 6 位長度作為大小(根據我的例子)做一些類似的事情。

只是想知道,我使用 Java 中的代碼以及基於此項目的 .NET 代碼進行了此工作(檢查鏈接)。 我需要的所有重復變化都會產生 1000000 個值。

http://www.codeproject.com/KB/recipes/Combinatorics.aspx

是否可以在 Javascript 中做到這一點?

提前致謝。

你從組合學中選擇了最簡單的情況...

var i, n = 1000000;
for (i = 0; i < n; i++)
  console.log(('' + (i + n)).substring(1));

將為您提供 6 個點中 0-9 的所有組合(1000000 === Math.pow(10, 6) )。

我現在剛剛寫了它,它需要更多的測試和優化,但這應該會讓你開始:

​var input = "ABCD";
var size = 3;
var results = [];

function solve(i, elt) {
    if(elt.length == size) { 
       results.push(elt);
       return;        
    }
    for(var j = 0; j < input.length; j++) {
       solve(j, elt+input[j]);
    }        
}​​​​​​

solve(0, "");
​console​.log(results);​

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM