我創建了一個jquery腳本,用於生成字符串的所有可能組合,其中包含數字和小寫字母。我只想要字符串10個字符長,所以我扔了一個if語句來控制它。所有可能的組合字符串 - 速度
對於那些有興趣,這裏的腳本:
$(document).ready(function(){
var parts = ['a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z','1','2','3','4','5','6','7','8','9','0'];
var url = "";
for (var a = 0; a < parts.length; a++) {
for (var b = 0; b < parts.length; b++) {
for (var c = 0; c < parts.length; c++) {
for (var d = c + 1; d < parts.length; d++) {
for (var e = d + 1; e < parts.length; e++) {
for (var f = e + 1; f < parts.length; f++) {
for (var g = f + 1; g < parts.length; g++) {
for (var h = g + 1; h < parts.length; h++) {
for (var i = h + 1; i < parts.length; i++) {
for (var j = i + 1; j < parts.length; j++) {
url = parts[a]+parts[b]+parts[c]+parts[d]+parts[e]+parts[f]+parts[g]+parts[h]+parts[i]+parts[j];
if (url.length === 10) {
$("#URLs").append(url+', ');
}
}
}
}
}
}
}
}
}
}
}
}
});
有一個爲每個字符現貨循環。如果你只想要3字符長的字符串,只能使用3個嵌套字符串。
它可能不雅,但它的工作原理。我的問題是速度/崩潰。
當然,試圖通過瀏覽器運行這是一個壞主意。什麼是更好的程序/語言/設置速度?我明白,無論如何,我可能受到我的CPU能力的約束,而暴力強制總是很慢。
如果有一個服務可以做到這一點,我想這也可以。
爲什麼你需要使用javascript來做到這一點? – 2012-04-12 19:57:53
對於這些類型的問題,通常遞歸比10 for循環更好。 http://en.wikipedia.org/wiki/Recursion_(computer_science) – 2012-04-12 19:58:01
你爲什麼需要這樣做?我唯一的想法是,這是實現你的目標的錯誤方式。 – Jlange 2012-04-12 20:00:55