| | |
| Stránka: 1 z 1
| [ Príspevkov: 6 ] | |
Autor | Správa |
---|
Registrovaný: 30.05.06 Prihlásený: 08.10.14 Príspevky: 1756 Témy: 35 Bydlisko: BA - WESTSIDE | Napísal p360t: 17.04.2007 17:43 | |
|
Toto je príklad štvrtý (nie všetky príklady majú takéto zadanie, väčšinou ide o riešenie konkrétneho problému a to sem dávať je trochu odveci).
Citácia: Napíšte program, ktorý vypíše všetky slová (postupnosti znakov) dĺžky 6, ktoré sú zložené len z písmen {a, b}. Vypisujte len slová, v ktorých nie je viac písmen b ako písmen a. Program napíšte v ľubovoľnom programovacom jazyku, ktorý ste používali na strednej škole. Takýmito slovami sú napr. abbaba, baabaa, aaaaaa.
Tak, začínam to riešiť, ak máte náladu, skúste aj vy. Ja použijem PHP (už som doma a Pascal, aj keď je na toto vhodnejší, nedisponuje tak komfortným textovým editorom akým je PSPad ). Keď budem hotový, linknem riešenie, porovnáme... Dovtedy sa trápte , možno sem časom pridám ďalšie príklady.
_________________
A. S. Tanenbaum píše: The terms LF, MF, and HF refer to low, medium, and high frequency, respectively. Clearly, when the names were assigned, nobody expected to go above 10 MHz, so the higher bands were later named the Very, Ultra, Super, Extremely, and Tremendously High Frequency bands. Beyond that there are no names, but Incredibly, Astonishingly, and Prodigiously high frequency (IHF, AHF, and PHF) would sound nice. |
|
Registrovaný: 17.11.06 Prihlásený: 31.12.07 Príspevky: 677 Témy: 9 |
že trápte sa hneď ma napadli dve riešenia...
|
|
Registrovaný: 30.05.06 Prihlásený: 08.10.14 Príspevky: 1756 Témy: 35 Bydlisko: BA - WESTSIDE | Napísal autor témy p360t: 17.04.2007 19:05 | |
|
audiotrack píše: že trápte sa hneď ma napadli dve riešenia...
No veď ich sem šupni (aspoň slovne opíš, ak sa ti nechce písať kód) Ja mám jedno, ale asi nie je ideálne, žerie dosť systémových prostriedkov.
_________________
A. S. Tanenbaum píše: The terms LF, MF, and HF refer to low, medium, and high frequency, respectively. Clearly, when the names were assigned, nobody expected to go above 10 MHz, so the higher bands were later named the Very, Ultra, Super, Extremely, and Tremendously High Frequency bands. Beyond that there are no names, but Incredibly, Astonishingly, and Prodigiously high frequency (IHF, AHF, and PHF) would sound nice. |
|
Registrovaný: 17.11.06 Prihlásený: 31.12.07 Príspevky: 677 Témy: 9 |
fúú slovne opísať je niekedy ešte zložitejšie ako napísať kod. No proste rekurziou pre jedno b, backtrackingom pre dve a tri béčka
A teraz ma napadlo úúúplne niečo iné, čo je asi najefektívnejšie, ale to si musím ešte ovoriť či to pôjde
|
|
Registrovaný: 30.05.06 Prihlásený: 08.10.14 Príspevky: 1756 Témy: 35 Bydlisko: BA - WESTSIDE | Napísal autor témy p360t: 17.04.2007 19:35 | |
|
Ok, moje riešenie (mal by som ho aj skôr, ale viete, prišla frajerka, večera, pivo atď ):
Kód: <?php $p['1']="a"; $p['2']="b"; // dlzka 6, pismena A a B, nesmie byt viac B ako A // mame viacero moznosti: 3a + 3b, 4a + 2b, 5a + 1b, 6a + 0b // je tu postupne zanorenych 6 cyklov - aby sme mali istotu, ze sa vystriedaju vsetky // kombinacie (bude ich dokopy 64 - aj tych, kde je viac pismen B ako povoluje zadanie) for ($l['1'] = 1; $l['1'] <= 2; $l['1']++) { for ($l['2'] = 1; $l['2'] <= 2; $l['2']++) { for ($l['3'] = 1; $l['3'] <= 2; $l['3']++) { for ($l['4'] = 1; $l['4'] <= 2; $l['4']++) { for ($l['5'] = 1; $l['5'] <= 2; $l['5']++) { for ($l['6'] = 1; $l['6'] <= 2; $l['6']++) { // aby sme odfiltrovali slova s B viac ako 3krat, zratame vyskyt Acok a Bcok // v slove - aby to bolo jednoduchsie, zvolil som prechadzanie polom $l, v // ktorom su ulozene vsetky pismena slova $poc = ""; foreach ($l as $key=>$value) { switch ($p[$l[$key]]) { case "a": $poc['0']++; break; case "b": $poc['1']++; break; } } // tu je uz len jednoducha podmienka, ktora spravi odfiltrovanie podla zadania if ($poc['0'] >= $poc['1']) { // zostavime slovo z jednotlivych pismen a ulozime do pola $slova[]=$p[$l['1']].$p[$l['2']].$p[$l['3']].$p[$l['4']].$p[$l['5']].$p[$l['6']]; } } } } } } } // vystup - vypiseme obsah pola so slovami echo "<pre>\n"; print_r($slova); echo "</pre>"; ?>
Je možné, že sa to tu nezobrazí pekne, každopádne, tu je link na výsledok: http://vs.fotopriestor.sk/matfyz-04.phpA ešte niečo - tu je jedno z riešení podľa tej knižky (Pascal, alebo čo to je): Kód: const z: array[0..1] of char = 'ab'; var i, j, n, k: integer; s: string; begin for i := 0 to 63 do begin s:= ''; n:= i; k:= 0; for j := 1 to 6 do begin s:= s+z[n mod 2]; if n mod 2 = 0 then inc(k); n:= n div 2; end; if k >= 3 then writeln(s); end; end;
_________________
A. S. Tanenbaum píše: The terms LF, MF, and HF refer to low, medium, and high frequency, respectively. Clearly, when the names were assigned, nobody expected to go above 10 MHz, so the higher bands were later named the Very, Ultra, Super, Extremely, and Tremendously High Frequency bands. Beyond that there are no names, but Incredibly, Astonishingly, and Prodigiously high frequency (IHF, AHF, and PHF) would sound nice. |
|
Registrovaný: 08.11.06 Prihlásený: 06.12.10 Príspevky: 15721 Témy: 7 Bydlisko: Bratislava | Napísal Jaro: 17.04.2007 19:43 | |
|
no trvalo mi to ale na to ze som o php dost dlho nezakopol tak dufam ze aspon trochu dobre
Kód: <?php $ab = create_function('$a',' $i=0; $b=0; $arr1 = str_split($a); for(;$i<=6;$i++) { if($arr1[$i]==1) $b++; }; return "$b";');
$a=0; for(;$a<63;$a++) { $c=0; $d=decbin($a); $c=$ab($d); if($c<=3) { $trans = array(0 => "a", 1 => "b"); if($a<2) echo "aaaaa"; elseif($a<4) echo "aaaa"; elseif($a<8) echo "aaa"; elseif($a<16) echo "aa"; elseif($a<32) echo "a"; echo strtr($d, $trans); echo "<br>"; }; } ?>
_________________ CPU Core i5 2400 cooler: CM Hyper 212+ | MB GB PH67-UD3-B3 | RAM 4GB DDR3 1600 | VGA Gainward 9600GT 512MB | monitor Samsung LE37A559 | HDD HITACHI 250GB + WD 640GB | PSU Fortron FSP400-60GLN | Case TT Soprano VB1000 BWS black | Mouse Razer DeathAdder NB HP ProBook 6450b |
|
| Stránka: 1 z 1
| [ Príspevkov: 6 ] | |
Podobné témy | Témy | Odpovede | Zobrazenia | Posledný príspevok |
---|
| Tlačiareň na letáky, brožúrky, vizitky atd v Externé zariadenia | 11 | 2103 | 05.08.2012 14:41 eMp | | Príklad v PHP, ASP | 22 | 1207 | 08.11.2007 15:33 pitrik1 | | Príklad [ Choď na stránku: 1, 2 ] v Vzdelanie, štúdium, škola | 50 | 2999 | 20.11.2007 16:28 nZL | | Priklad v Assembler, C, C++, Pascal, Java | 1 | 1252 | 17.03.2008 16:27 HT | | Java Príklad v Assembler, C, C++, Pascal, Java | 9 | 695 | 21.04.2012 15:51 nBXXL | | Delphi - príklad v Delphi, Visual Basic | 2 | 714 | 07.11.2010 23:16 majso | | Priklad Delphi v Delphi, Visual Basic | 3 | 506 | 25.01.2017 8:46 focko | | Theveninova veta - priklad v Elektronika | 2 | 3722 | 03.01.2008 18:42 sike9 | | Priklad pre hlavicky v Vzdelanie, štúdium, škola | 17 | 841 | 09.05.2010 18:08 eXistenZ | | Príklad z fyziky v Vzdelanie, štúdium, škola | 4 | 319 | 14.05.2013 22:10 InVader | | priklad z fyziky v Vzdelanie, štúdium, škola | 8 | 1257 | 15.03.2008 15:19 petos | | Priklad z fyziky v Vzdelanie, štúdium, škola | 18 | 1727 | 06.05.2008 22:07 molotow | | priklad v C++ v Assembler, C, C++, Pascal, Java | 4 | 369 | 06.12.2020 14:26 Jur_3 | | Príklad z Fyziky v Vzdelanie, štúdium, škola | 3 | 427 | 13.12.2014 19:29 Daron | | Banalny priklad-char. tranzistora v Elektronika | 10 | 1122 | 07.03.2007 12:43 Taomas | | Príklad v Matlab-e v Ostatné programy | 0 | 399 | 02.12.2011 11:51 the_pivo |
| Nemôžete zakladať nové témy v tomto fóre Nemôžete odpovedať na témy v tomto fóre Nemôžete upravovať svoje príspevky v tomto fóre Nemôžete mazať svoje príspevky v tomto fóre
|
|