Autor | Zpráva | ||
---|---|---|---|
lifeplus Profil * |
#1 · Zasláno: 3. 11. 2008, 21:56:33
Ahoj,
mám problém s generátorem náhodných seskupeních. mám pole $pole = array(0 => 'neco', 1 => 'nic'); momentálně to dělám takhle: $pole[rand(0,1)]; ale přestalo mi to vyhovovat, potřebola bych, aby když je "neco" tak následně bylo 3x "nic" a pak zase "neco" nebo "nic", maximálně však 9 "nic" vedle sebe. Pomohl by mi s tím někdo? |
||
bohyn Profil |
#2 · Zasláno: 3. 11. 2008, 22:05:02
Generovani nahodnych cisel podle procentalniho zastoupeni se tu nedavno probiralo. viz vyber polozky
kolikrat v rade bylo neco/nic si odhlidas pres pole nebo sessions/cookies |
||
keeehi Profil * |
#3 · Zasláno: 3. 11. 2008, 22:15:17
$nic = 0; $vysledek = 0; cyklus { $nahodny = rand(0,1); if ($nahodny == 0) { $vysledek .= "0111"; $nic += 3; } else { $vysledek .= "1"; $nic++; } if ($nic == 9) { $vysledek .= "0111"; $nic = 0; } } $x = array("0", "1"); $y = array("něco,", "nic,"); echo (str_replace($x, $y, $vysledek)); |
||
keeehi Profil * |
#4 · Zasláno: 3. 11. 2008, 22:20:09
pokaždé, když se objeví něco, přidá se za něco nic. Pokud se objeví 9x nic za sebou, přidá se za poslední nic něco, a protože se tedy v textu objevilo něco, přidá se za to zase nic.
Je to hroznej popis, ale jinak to nešlo. Začínám nenávidět slova nic a něco. |
||
keeehi Profil * |
#5 · Zasláno: 3. 11. 2008, 22:22:03
oprava: pokaždé, když se objeví něco, přidá se za něco 3x nic. Pokud se objeví 9x nic za sebou, přidá se za poslední nic něco, a protože se tedy v textu objevilo něco, přidá se zase za něco 3x nic.
|
||
lifeplus Profil * |
#6 · Zasláno: 3. 11. 2008, 22:48:27
funguje fakt pěkně, díky
|
||
lifeplus Profil * |
#7 · Zasláno: 3. 11. 2008, 23:13:42
bohužel ne, po chvíli se začne opakovat něco # 3x nic # něco
|
||
BetaCam Profil |
#8 · Zasláno: 4. 11. 2008, 01:56:28
lifeplus
třeba : $data = array('neco', 'nic'); $inline = 0; $stack = array(); for($i=0;$i<20;$i++){ if ($inline === 9 OR rand(0,1) === 0) { $inline = ($inline === 9 ? 0 : $inline+3); array_push($stack, $data[0], $data[1], $data[1], $data[1]); }else{ $stack[] = $data[1]; } } pokud sem to dobře pochopil |
||
lifeplus Profil * |
#9 · Zasláno: 4. 11. 2008, 11:44:54
skoro, ale už nebude problém si to upravit, díky
|
||
Časová prodleva: 15 let
|
0