मुझे एक एल्गोरिदम चाहिए जो एक स्ट्रिंग में सभी वर्णों के सभी संभावित संयोजन को वापस कर देता है।PHP में स्ट्रिंग के सभी क्रमपरिवर्तन कैसे उत्पन्न करें?
मैं कोशिश की है:
$langd = strlen($input);
for($i = 0;$i < $langd; $i++){
$tempStrang = NULL;
$tempStrang .= substr($input, $i, 1);
for($j = $i+1, $k=0; $k < $langd; $k++, $j++){
if($j > $langd) $j = 0;
$tempStrang .= substr($input, $j, 1);
}
$myarray[] = $tempStrang;
}
लेकिन वह केवल स्ट्रिंग की लंबाई के रूप में एक ही राशि के संयोजन देता है।
$input = "hey"
कहें, परिणाम होगा: hey, hye, eyh, ehy, yhe, yeh
।
क्या आप "क्रमपरिवर्तन", नहीं "संयोजन" कहा जाता है करना चाहते हैं। – Thomas
@ थॉमस मुझे नहीं लगता कि जोहान का अर्थ गणितीय अर्थ में * संयोजन * था। लेकिन हाँ, आप सही हैं। – Felix
यह भी विचार करें कि आपको 'n!' परिणाम मिलेंगे। लंबाई 12 (कोई डुप्लिकेट वर्ण) की इनपुट स्ट्रिंग के लिए, लगभग 480 मिलियन परिणाम हैं, जिसके बारे में 5 जीबी मेमोरी की आवश्यकता है। –