Mikuláš je tu! Získaj 90 % extra kreditov ZADARMO s promo kódom CERTIK90 pri nákupe od 1 199 kreditov. Len do nedele 7. 12. 2025! Zisti viac:
NOVINKA: Najžiadanejšie rekvalifikačné kurzy teraz s 50% zľavou + kurz AI ZADARMO. Nečakaj, táto ponuka dlho nevydrží! Zisti viac:

Diskusia – 1. diel - Úvod do teórie algoritmov

Späť

Upozorňujeme, že diskusie pod našimi online kurzami sú nemoderované a primárne slúžia na získavanie spätnej väzby pre budúce vylepšenie kurzov. Pre študentov našich rekvalifikačných kurzov ponúkame možnosť priameho kontaktu s lektormi a študijným referentom pre osobné konzultácie a podporu v rámci ich štúdia. Toto je exkluzívna služba, ktorá zaisťuje kvalitnú a cielenú pomoc v prípade akýchkoľvek otázok alebo projektov.

Komentáre
Posledné komentáre sú na spodnej časti poslednej stránky.
Avatar
Jaroslav Polívka:6.3.2016 20:15

Dovedli byste nastínit nebo odkázat na algoritmus? Jak byste řešili? Máme kartézskou soustavu souřadnic, a v něm jeden obdélník, úkolem je vylosovat randomem souřadnice pro nový obdélník, avšak nesmí se vylosovat souřadnice toho obdélníka, který už tam je, ani souřadnice, které by do tohoto obdélníka zasahovali. Random se smí zavolat pouze 1x.

Odpovedať
Velice často si věci žijí svým životem
Avatar
Odpovedá na Jaroslav Polívka
Neaktivní uživatel:6.3.2016 20:47

Co bere ta funkce Random za parametry?

Odpovedať
Neaktivní uživatelský účet
Avatar
Odpovedá na Neaktivní uživatel
Jaroslav Polívka:6.3.2016 21:02

Napsal sem trochu nepřesně, bude se volat samozřejmě dvakrát, protože jednou vezme jako parametr celé číslo souřadnice x a podruhé jako souřadnici y. Nesmí se ale stát, že se vylosuje pozice toho obdélníku, který už tam je, nebo pozice, která by do tohoto obdélníku zasahovala. Oba obdélníky mají konstantní velikost.

Odpovedať
Velice často si věci žijí svým životem
Avatar
Jan Bajer
Člen
Avatar
Jan Bajer:9.6.2016 13:06

Dejme tomu, že třídíme 15 prvků (tedy podle předchozí tabulky třídíme 0,15 sekundy).

Nemělo by tam být 0,015 sekundy? :)

Odpovedať
Svět není takový, jak ho vnímáme, ale jak ho tvoříme.
Avatar
krepsy3
Tvůrce
Avatar
Odpovedá na Luboš Běhounek Satik
krepsy3:6.8.2016 9:30

Já myslel, že když se napíše pouze "log", je považováno za základ e = 2,727272...
Tedy "přirozený logaritmus".

Odpovedať
Programátor je stroj k převodu kávy na kód.
Avatar
Odpovedá na krepsy3
Neaktivní uživatel:6.8.2016 10:25

To by bylo "ln". V případě "log" je základ 10.

Odpovedať
Neaktivní uživatelský účet
Avatar
coells
Tvůrce
Avatar
Odpovedá na krepsy3
coells:6.8.2016 11:07

To záleží na kontextu a oblasti.

V matematické analýze se log obvykle uvažuje o základu 10.
V analýze algoritmů se log obvykle uvažuje o základu 2.
A obecně se log pro změnu uvažuje o základu e, pokud v kontextu můžeme zanedbávat konstanty.

Avatar
krepsy3
Tvůrce
Avatar
Odpovedať
Programátor je stroj k převodu kávy na kód.
Avatar
Odpovedá na relycanx
Pavel Jelínek:29.1.2017 14:46

Ahoj, 10.10.2014 zde byl vznesen dotaz, kde začít při luštění například takovéhoto programu:

začátek
   čti(p);
   i:=3;
   počet := 1;
   součin := 1;
   dokud počet <= p opakuj
           začátek
                součin := součin * i;
                počet := počet + 1;
                i:=i+3;
   konec;
konec.

Na to mám dvě možné odpovědi:

První možnost: Odkrokuj si v hlavě ten program pro p=0, pak p=1, p=2 atd. Lze to dělat i v excelu, kde bude sloupec pro každou proměnnou a také sloupec "číslo řádky kódu" (kde se zrovna program nachází). Ten vyplníš buď po každém příkazu, anebo jednou za několik příkazů (kolik udržíš v hlavě).

Jsem přesvědčen, že programátor by měl umět z hlavy odkrokovat jednoduchý kód (pro známé hodnoty proměnných) a pak v tom růst, aby zvládl i složitější. Jen tak dokáže psát spolehlivé programy, které správně reagují na každou možnou kombinaci stavů.

Odkrokovat kód pro konkrétní hodnoty je snazší, než se podívat na program a formulovat, co dělá pro jakýkoli vstup. Ovšem když si jej odkrokuješ pro několik vstupů, zřejmě přijdeš i na to druhé.

- - - -

Druhá možnost: Všimnu si, že je zde jeden cyklus a jeho ukončením závisí na proměnných p a počet. Přečtu si tedy jen řádky programu, které pracují s těmito dvěma proměnnými. Mám štěstí, není tu žádný příkaz typu např. "počet = i/10" (k jehož porozumění bych musel vědět, co se děje s proměnnou i, tj. analyzovat i jiné řádky programu).

Z toho je již snadné vydedukovat, že proměnné p a počet slouží jen k tomu, aby se cyklus provedl přesně p-krát.

Dále vidím, že obsah proměnné "součin" závisí na "i", ale ne obráceně. Takže si "součin" nechám na konec.

Vidím, že proměnná "i" je nejdřív rovna třem a v každém průchodu cyklem se o tři zvýší. A před každým zvýšení se touto hodnotou násobí "součin".

V tuto chvíli je již zřejmé, že program do proměnné "součin" spočítá součin prvních p násobků čísla 3.

Pokud bys to potřeboval, rád s Tebou rozeberu i jiný cvičný algoritmus.
Pavel

Avatar
Neaktivní uživatel:22.5.2018 17:36

Myslím, že "sundej peřinu, posaŇ se, dej nohy na zem" by se dalo ještě rozepsat.

  • if (přikrytý) {
    • skrč ruce;
    • zmáčni pěsti;
    • if (left.emptyPlace) narovnej pravou ruku;
    • else narovnej levou ruku; }

to by se ještě dalo hodit do cyklu apod.

  • skrč ruce;
  • dávej ruce dozadu pomocí ramen & pokrčuj se v pase;
  • if (left.emptyPlace) otoč se o -90°;
  • else if (right.emptyPlace) otoč se o 90°;
  • else {
    • křič "Pomoc!";
    • return;}
  • pokrč nohy v kolenou;

Psal jsi přece, že to má být elementární. Ale dejme tomu, že je to kus jazyka. Neber to jako kritiku, prostě jsem na to zjednodušení "potřeboval" upozornit. Nebo aspoň na to ň. :-)

Odpovedať
Neaktivní uživatelský účet
Posledné komentáre sú na spodnej časti poslednej stránky.
Robíme čo je v našich silách, aby bola tunajšia diskusia čo najkvalitnejšia. Preto do nej tiež môžu prispievať len registrovaní členovia. Pre zapojenie sa do diskusie sa zaloguj. Ak ešte nemáš účet, zaregistruj sa, je to zadarmo.

Zobrazené 10 správy z 35.