Ahoj, ve verzi 1.73.1 na windows mi zkopírování řádku pomocí CTRL+SHIFT+D nefunguje. Funguje mi ale: ALT+SHIFT+Šipka dolů. Snad to někomu pomůže... ;-)
Zde moje vysvětlení k tomu intervalu, tedy dejme tomu: let min = 15; let max = 20; console.log(Math.floor(Math.random() * (max - min + 1)) + min); Jednoduše řečeno, trik spočívá v tom, že se nejdříve vygeneruje číslo od 0 do 5: Math.floor(Math.random() * (max - min + 1)) a k výsledku se připoče 15: + min Pokud se týká toho Math.floor(Math.random() * (max - min + 1)): Tady se vygeneruje číslo mezi 0 a 5.9 a výsledek se zaokrouhlí tím floor dolů na celé číslo. Kdyby tam nebylo to + 1, tak by to generovalo jen čísla do od 0 do 4.9, takže by to nikdy nevyplyvlo 5, což by neplnilo zadání.
Pro pochopeni muze pomoci rozepsat si postupne ty predchozi operace po jedne a pak si to v consoli zkontrolovat na kalkulacce🙂 let min = 15 let max = 20 let cislo = Math.random() console.log(cislo); console.log(cislo * (max - min + 1)); console.log((cislo * (max - min + 1) + min)); console.log(Math.floor(cislo * (max - min + 1) + min));
Dobry den Davide, prosim Vas, aku pouzivate farebnu temu v programe VSD (napr. ta, kt. je vo videu) ? kt. viditelne odlisi farebnost zatvoriek atd. dakujem
Bracket Pair Colorizer je teď jako nativní rozšíření VSka. Dá se nastavit v settings.json přidáním "editor.bracketPairColorization.enabled": true. Akorát bacha na čárky, je to json. Já jsem snad půl hodiny dumala, proč mi to furt hází error 😁
Ano, můžeš, ale kdyby jsi to vylepšil a to min a max jsi odněkud čerpal, tak může být pokaždé jiné. Závorka by již nemusela být 6. Ve videu je to univerzální, ať už budou mix a max jakékoliv
Ahoj. Pro méně chápavé, jako jsem třeba já, bych trochu rozvedl to (max - min + 1). V podstatě jde o to, abychom mohli získat hodnotu max(20) z daného intervalu. Nejvyšší náhodné číslo z funkce random() může být 0.9999. Tedy 0.9999.... * (max(20) - min(15)) = 4.99.... a z toho vyplývá, že nikdy nemůžeme dosáhnout intervalu 0-5, ale pouze 0-4 respektive 15-19. V podstatě by nějakým způsobem fungovalo 0.9999 * (max(20) - min(15) + 0.1), ale pravděpodobnost, že trefíme maximální hodnotu intervalu by byla příliš nízká (pravděpodobnost, že trefíme random číslo 0,981 nebo vyšší) Davide, děkuji za podrobné tutoriály. Je úžasné, že tomu věnujete tolik času a ještě bez nárokování nějaké odměny.
Akorát ten vzorec bude fungovat jen v intervalu kladných čísel. Musela být v tom odečtu absolutní hodnota nebo jiné ošetření. Ale to je nepodstatné. Určitě nebylo záměrem Davida udělat tu z toho fórum matematických mozgů :D Jinak Dejve díky za obecný vzorec, je to chytrý, to takhle udělat, nikdy mě to nenapadlo :)
Nebylo by možné udělat to víc jednoduše takhle? console.log(min + Math.floor(Math.random() * (max - min)) NEBO ještě jednodušeji: console.log(15 + Math.floor(Math.random() * 5)) Vychází mi to, když to zkouším a přijde mi to lépe pochopitelné.
Ahoj Davide. Nemůžu přijít na to, proč když použiješ dvě metody na čísla tak to běží jak má. Ale když použiju dvě metody na Stringu tak to nefunguje. Jmenovitě trim() a toUppercase()
@@martinsima4404 Než použiješ druhou metodu, uzávorkuj použití té první: let string = " ZelenEj palouček "; console.log((string.toUpperCase()).trim());
pokud to někomu pomůže udělal jsem to z ceil aby to bylo lépe pochopitelné console.log(Math.ceil(Math.random() * (numberMax-numberMin+1)+ numberMin-1))
toFixed zaokrouhluje oproti klasické matematice čistou pětku dolů. Tedy: let number = 3.135 console.log(number.toFixed(2)) ... 3.13 let number = 3.135001 console.log(number.toFixed(2)) ... 3.14
Ahoj, ve verzi 1.73.1 na windows mi zkopírování řádku pomocí CTRL+SHIFT+D nefunguje. Funguje mi ale: ALT+SHIFT+Šipka dolů. Snad to někomu pomůže... ;-)
Zde moje vysvětlení k tomu intervalu, tedy dejme tomu:
let min = 15;
let max = 20;
console.log(Math.floor(Math.random() * (max - min + 1)) + min);
Jednoduše řečeno, trik spočívá v tom, že se nejdříve vygeneruje číslo od 0 do 5:
Math.floor(Math.random() * (max - min + 1))
a k výsledku se připoče 15:
+ min
Pokud se týká toho Math.floor(Math.random() * (max - min + 1)):
Tady se vygeneruje číslo mezi 0 a 5.9 a výsledek se zaokrouhlí tím floor dolů na celé číslo. Kdyby tam nebylo to + 1, tak by to generovalo jen čísla do od 0 do 4.9, takže by to nikdy nevyplyvlo 5, což by neplnilo zadání.
Děkuji moc za vysvětlení
Pro pochopeni muze pomoci rozepsat si postupne ty predchozi operace po jedne a pak si to v consoli zkontrolovat na kalkulacce🙂
let min = 15
let max = 20
let cislo = Math.random()
console.log(cislo);
console.log(cislo * (max - min + 1));
console.log((cislo * (max - min + 1) + min));
console.log(Math.floor(cislo * (max - min + 1) + min));
Dobry den Davide, prosim Vas, aku pouzivate farebnu temu v programe VSD (napr. ta, kt. je vo videu) ? kt. viditelne odlisi farebnost zatvoriek atd. dakujem
Dobrý den, mám Dark+ (defaul dark) a jako rozšíření mám Bracket Pair Colorizer a ještě Prettier - code formatter
Bracket Pair Colorizer je teď jako nativní rozšíření VSka. Dá se nastavit v settings.json přidáním "editor.bracketPairColorization.enabled": true. Akorát bacha na čárky, je to json. Já jsem snad půl hodiny dumala, proč mi to furt hází error 😁
trosku nechápu tak ze závorku ( max - min +1) můžeme nahradit 6 a je to bude stejně fungovat?
Ano, můžeš, ale kdyby jsi to vylepšil a to min a max jsi odněkud čerpal, tak může být pokaždé jiné. Závorka by již nemusela být 6. Ve videu je to univerzální, ať už budou mix a max jakékoliv
Ahoj. Pro méně chápavé, jako jsem třeba já, bych trochu rozvedl to (max - min + 1). V podstatě jde o to, abychom mohli získat hodnotu max(20) z daného intervalu. Nejvyšší náhodné číslo z funkce random() může být 0.9999. Tedy 0.9999.... * (max(20) - min(15)) = 4.99.... a z toho vyplývá, že nikdy nemůžeme dosáhnout intervalu 0-5, ale pouze 0-4 respektive 15-19. V podstatě by nějakým způsobem fungovalo 0.9999 * (max(20) - min(15) + 0.1), ale pravděpodobnost, že trefíme maximální hodnotu intervalu by byla příliš nízká (pravděpodobnost, že trefíme random číslo 0,981 nebo vyšší)
Davide, děkuji za podrobné tutoriály. Je úžasné, že tomu věnujete tolik času a ještě bez nárokování nějaké odměny.
Ahoj, díky za komentář.
Jsem rád, že se videa líbí :-)
Akorát ten vzorec bude fungovat jen v intervalu kladných čísel. Musela být v tom odečtu absolutní hodnota nebo jiné ošetření. Ale to je nepodstatné. Určitě nebylo záměrem Davida udělat tu z toho fórum matematických mozgů :D Jinak Dejve díky za obecný vzorec, je to chytrý, to takhle udělat, nikdy mě to nenapadlo :)
Nebylo by možné udělat to víc jednoduše takhle?
console.log(min + Math.floor(Math.random() * (max - min))
NEBO ještě jednodušeji:
console.log(15 + Math.floor(Math.random() * 5))
Vychází mi to, když to zkouším a přijde mi to lépe pochopitelné.
Možností je vždy více. Zvol tu, která ti vyhovuje
@@hacknisvoubudoucnost Jinak skvělá videa!!
@@robertradla4755 Díky
Ahoj Davide. Nemůžu přijít na to, proč když použiješ dvě metody na čísla tak to běží jak má. Ale když použiju dvě metody na Stringu tak to nefunguje. Jmenovitě trim() a toUppercase()
Ahoj, tak to jsem nezkoušel, ale myslím, že by to mělo jít. Zkus vyměnit pořadí funkcí
@@hacknisvoubudoucnost Bohužel ani tak to nejde. Vezme to vždy jen tu vnější metodu a tu vnitřní ignoruje
@@martinsima4404
Než použiješ druhou metodu, uzávorkuj použití té první:
let string = " ZelenEj palouček ";
console.log((string.toUpperCase()).trim());
pokud to někomu pomůže udělal jsem to z ceil aby to bylo lépe pochopitelné
console.log(Math.ceil(Math.random() * (numberMax-numberMin+1)+ numberMin-1))
toFixed zaokrouhluje oproti klasické matematice čistou pětku dolů. Tedy:
let number = 3.135
console.log(number.toFixed(2)) ... 3.13
let number = 3.135001
console.log(number.toFixed(2)) ... 3.14
Dík