Autor | Zpráva | ||
---|---|---|---|
donner Profil * |
#1 · Zasláno: 4. 6. 2009, 18:45:42
Potreboval by som surne nejaky script, ktory by vypisal vsetky variacie 12!, je ich skoro 500 milionov. Ak ste nepochopili, potrebujem nieco co mi vypise vsetky mozne kombinacie cisel 1-12.
napriklad 1 2 3 4 5 6 7 8 9 10 11 12 2 1 3 4 5 6 7 8 9 10 11 12 1 3 2 4 5 6 7 8 9 10 11 12 |
||
Senky Profil |
#2 · Zasláno: 4. 6. 2009, 19:14:57
Toto som nasiel na nete, Je to pre slova, ale da sa to vyuzit aj v tvojom pripade:
<? // Factorial function fact($s){ if ($s==0) return 1; else return $fact = $s * fact($s-1); } $phrase=”Your Phrase Comes Here”; // tu daj cisla oddelene medzerou... // Let’s count the number of words by creating an array $words=explode(” “, $phrase); $n=count($words); // Here comes a loop that creates all possible combinations of array positions for ($m=1; $m<=fact($n); $m++) { $ken = $m-1; $f = 1; $a = array(); for($iaz=1; $iaz<=$n; $iaz++) { $a[$iaz] = $iaz; $f = $f*$iaz; } for($iaz=1; $iaz<=$n-1; $iaz++) { $f = $f/($n+1-$iaz); $selnum = $iaz+$ken/$f; $temp = $a[$selnum]; for($jin=$selnum; $jin>=$iaz+1; $jin–) { $a[$jin] = $a[$jin-1]; } $a[$iaz] = $temp; $ken = $ken%$f; } $t=1; // Let’s start creating a word combination: we have all the necessary positions $newphrase=”"; // Here is the while loop that creates the word combination while ($t<=$n) { $newphrase.=$words[$a[$t]-1].” “; $t++; } // Output of the phrase echo $newphrase.”\r\n”; } ?> |
||
bohyn Profil |
#3 · Zasláno: 4. 6. 2009, 19:31:03
Senky
„moze sa tam upiect procesor!“ Ale neupece :) donner Dovedes si predstavit co by prohlizec delal s minimalne 12GB souborem? Ja teda ne :) |
||
AM_ Profil |
#4 · Zasláno: 4. 6. 2009, 20:09:28
„Potreboval by som surne nejaky script, ktory by vypisal vsetky variacie 12!, je ich skoro 500 milionov. Ak ste nepochopili, potrebujem nieco co mi vypise vsetky mozne kombinacie cisel 1-12.“
Kombinace a variace je něco jiného, tak co chceš? 1 2 4 3 je stejná kombinace jako 1 2 3 4, ale jiná variace. |
||
TomášK Profil |
#5 · Zasláno: 4. 6. 2009, 20:11:03
donner
Ujasni si terminologii :) V první větě píšeš variace, pak to upřesníš na kombinace a ve skutečnosti chceš permutace - jsou to tři různé pojmy. A zvaž, jestli je php ten pravý jazyk - kompilované jazyky jako java, C nebo Pascal budou podstatně rychlejší (třeba 10x). |
||
panther Profil |
#6 · Zasláno: 4. 6. 2009, 20:12:16
AM_
„Kombinace a variace je něco jiného, tak co chceš? “ to máš sice pravdu, ale chce „vsetky variacie 12!“ - ten faktoriál na kombinace moc neukazuje ;-) |
||
AM_ Profil |
#7 · Zasláno: 4. 6. 2009, 20:54:39
„to máš sice pravdu, ale chce „vsetky variacie 12!“ - ten faktoriál na kombinace moc neukazuje ;-)“
taky jsem si to myslel, ale jak praví TomášK, ve skutečnosti chce permutaci, takže asi tak, nepůsobí moc dobře, když se na fóru o programování motají dohromady základní pojmy středoškolské matiky :) Jinak vážně by mě zajímalo, na co chce výpis řad o 479 001 600 řádcích, jestli je to domácí úkol tak aby si na dovoz výtisku do školy pořídil kamión... |
||
donner Profil * |
#8 · Zasláno: 4. 6. 2009, 21:25:32
Ja to potrebujem pdostate do skoly, donesem to v Notebooku
|
||
AM_ Profil |
#9 · Zasláno: 4. 6. 2009, 21:44:06
donner
Mohu se optat, ve které škole vám dávají za úkol vytvořit třináctigigový výpis? :) |
||
donner Profil * |
#10 · Zasláno: 4. 6. 2009, 21:45:55
:D no to teraz nie je dolezite...robi to chybu, dal som tam len 1 2 3 a stane sa http://www.playradio.warke.sk/faktorial.php
|
||
AM_ Profil |
#11 · Zasláno: 4. 6. 2009, 21:46:57
Použij klasické uvozovky " místo 66 a 99
|
||
donner Profil * |
#12 · Zasláno: 4. 6. 2009, 21:50:37
miesto coho?
|
||
donner Profil * |
#13 · Zasláno: 4. 6. 2009, 21:52:45
no skusil som zmenit toto
$phrase=”1 2 3”; na $phrase="1 2 3"; |
||
AM_ Profil |
#14 · Zasláno: 4. 6. 2009, 21:58:34
donner
ano, ale musíš to udělat všude. |
||
donner Profil * |
#15 · Zasláno: 4. 6. 2009, 22:02:30
bolo tam tych chyb ovela viac, ale s touto si z neviem rady...vytera teraz ten subor asi takto:
<? // Factorial function fact($s){ if ($s==0) return 1; else return $fact = $s * fact($s-1); } $phrase="1 2 3"; // Let’s count the number of words by creating an array $words=explode(" ", $phrase); $n=count($words); // Here comes a loop that creates all possible combinations of array positions for ($m=1; $m<=fact($n); $m++) { $ken = $m-1; $f = 1; $a = array(); for($iaz=1; $iaz<=$n; $iaz++) { $a[$iaz] = $iaz; $f = $f*$iaz; } for($iaz=1; $iaz<=$n-1; $iaz++) { $f = $f/($n+1-$iaz); $selnum = $iaz+$ken/$f; $temp = $a[$selnum]; for($jin=$selnum; $jin>=$iaz+1; $jin–) { $a[$jin] = $a[$jin-1]; } $a[$iaz] = $temp; $ken = $ken%$f; } $t=1; // Let’s start creating a word combination: we have all the necessary positions $newphrase=""; // Here is the while loop that creates the word combination while ($t<=$n) { $newphrase.=$words[$a[$t]-1]." "; $t++; } // Output of the phrase echo $newphrase."\r\n"; } ?> a stale nejak chyba |
||
bohyn Profil |
#16 · Zasláno: 4. 6. 2009, 22:16:35
donner
vsim jsem si chybky for($jin=$selnum; $jin>=$iaz+1; $jin-–) Mimochodem nepouzivej echo, ale vypisuj to vsechno rovnou do souboru - prohlizec by se z 12GB souboru zbaznil. Jinak pocitej s behem scriptu v radu hodin, kdybys to napsal v C nebo jinem kompilovanem jazyce tak by to bylo mnohem rychlejsi. PS: ucitel je blb. |
||
AM_ Profil |
#17 · Zasláno: 4. 6. 2009, 22:16:45
„a stale nejak chyba“
tuto větu ti tímto virtuálně omlacuji o hlavu. Buď té lásky a napiš sem, jaká chyba. Fakt je,že ten kód je napsaný dost hrozně, ten co to psal zřejmě neměl moc fantazii na názvy proměnných. |
||
donner Profil * |
#18 · Zasláno: 4. 6. 2009, 22:18:37
ved mate link kde je ten subor, tak sa na chybu pozries, akto by mi to anpisal v C? a ako to mam dat rovno do suboru?
|
||
donner Profil * |
#19 · Zasláno: 4. 6. 2009, 22:20:43
stale ta ista chyba
http://www.playradio.warke.sk/faktorial.php |
||
bohyn Profil |
#20 · Zasláno: 4. 6. 2009, 22:38:32
|
||
donner Profil * |
#21 · Zasláno: 4. 6. 2009, 22:44:15
A ako to vyriesit?
|
||
bohyn Profil |
#22 · Zasláno: 4. 6. 2009, 22:45:21
donner
Opravil jsi tu chybu co jsem nasel v [#16]? |
||
donner Profil * |
#23 · Zasláno: 4. 6. 2009, 22:50:02
jj
|
||
Visitor Profil * |
#24 · Zasláno: 4. 6. 2009, 23:07:48
Tam se faktorial vubec pocitat nema ne? Podle toho co pises vsetky mozne kombinacie cisel 1-12 a nasledujici priklady tak se jedna o permutace jak uz bylo psano.
http://php.vrana.cz/permutace.php |
||
Časová prodleva: 15 let
|
0