Programátorský víceboj 0. díl - Šifrujeme

Místo pro dotazy a rady ohledně programovacích jazyků (C++, C#, PHP, ASP, Javascript, VBS..) a tvorby webových stránek

Moderátor: Mods_senior

cpp
nováček
Příspěvky: 41
Registrován: červen 17
Pohlaví: Muž

Re: Programátorský víceboj 0. díl - Šifrujeme

Příspěvekod cpp » 06 čer 2017 20:57

Do zadání jsem přidat text vzorového souboru s klíčem pro Vernamovu šifru (256 hodnot posuvů).



Reklama
Uživatelský avatar
X
Tvůrce článků
Elite Level 12.5
Elite Level 12.5
Příspěvky: 18939
Registrován: květen 07
Pohlaví: Muž

Re: Programátorský víceboj 0. díl - Šifrujeme

Příspěvekod X » 06 čer 2017 22:57

Osobně mi přijde sympatičtější asijský způsob myšlení ohledně copyrightu než pitomý americký / západní. Asiati něco vymyslí a jsou tím hrdější na svoji myšlenku, když ji ostatní od nich kopírují, protože to dokazuje, že je úspěšná a dobrá!

Uživatelský avatar
ITCrowd
Tvůrce článků
Elite Level 11.5
Elite Level 11.5
Příspěvky: 14657
Registrován: březen 10
Pohlaví: Muž

Re: Programátorský víceboj 0. díl - Šifrujeme

Příspěvekod ITCrowd » 08 čer 2017 11:59

faraon píše:10 : 5 * ( 1 + 1 ) = ?

Z matematického hlediska žádný problém.
Nejprve se spočte závorka, čímž se dostane 10:5x2. Nyní jsou si operace rovny, takže výpočet probíhá zleva doprava (jako čtení), tedy správný výsledek je 4.
Zkusili jste to vypnout a zapnout? Problémy řeším pouze v tématech. Do SZ mi proto píšete zbytečně.
Základní diagnostika WiFi Jak na diagnostiku sítě Router jako switch Proč je nesmysl chtít router s velkým dosahem

Farsky
Level 1
Level 1
Příspěvky: 98
Registrován: květen 17
Pohlaví: Muž

Re: Programátorský víceboj 0. díl - Šifrujeme

Příspěvekod Farsky » 08 čer 2017 12:03

Vzhledem k tomu že násobení má přednost, pak 10/10 = 1 ty matematiku.

Uživatelský avatar
ITCrowd
Tvůrce článků
Elite Level 11.5
Elite Level 11.5
Příspěvky: 14657
Registrován: březen 10
Pohlaví: Muž

Re: Programátorský víceboj 0. díl - Šifrujeme

Příspěvekod ITCrowd » 08 čer 2017 12:10

Farsky píše:Vzhledem k tomu že násobení má přednost, pak 10/10 = 1 ty matematiku.
Myslím, že ty jsi tu psal něco o tom dělat ze sebe blbce. Tak si klikni třeba sem: http://www.diktatyapriklady.cz/ktera-ma ... -prednost/
Prohledej si internet, zeptej se na matematické katedře libovolné vysoké školy.
A prosím, když už musíš něco někam psát, zjisti jak to je doopravdy. To co děláš opravdu fóru neprospěje.
Zkusili jste to vypnout a zapnout? Problémy řeším pouze v tématech. Do SZ mi proto píšete zbytečně.
Základní diagnostika WiFi Jak na diagnostiku sítě Router jako switch Proč je nesmysl chtít router s velkým dosahem

Farsky
Level 1
Level 1
Příspěvky: 98
Registrován: květen 17
Pohlaví: Muž

Re: Programátorský víceboj 0. díl - Šifrujeme

Příspěvekod Farsky » 08 čer 2017 12:15

Dej sem prosím nějaký fundovaný odkaz na řešení konkrétně tohoto případu. Divím se že postuješ takové blbiny, navíc asi v pracovní době jako hasič. Tečka

Nejprve si sečteš závorku, tady ale na pořadí nezáleží. Pak násobíš a nakonec dělíš.

Uživatelský avatar
satik
Level 5.5
Level 5.5
Příspěvky: 2979
Registrován: leden 15
Bydliště: Praha / Krkonoše
Pohlaví: Muž

Re: Programátorský víceboj 0. díl - Šifrujeme

Příspěvekod satik » 08 čer 2017 12:20

Farsky píše:Vzhledem k tomu že násobení má přednost, pak 10/10 = 1 ty matematiku.

Ještě prosím tu o Červený Karkulce.
Matematický výrazy se vyhodnocujou zleva doprava, nejvyšší přednost maj závorky, pak násobení a dělení mají nižší prioritu a sčítání/odčítání nejnižší.
Pokud kdokoliv tvrdí výsledek příkladu

Kód: Vybrat vše

10 : 5 * ( 1 + 1 ) =

jiný než 4, měl by se vrátit do školy.

Dělení a násobení mají stejnou prioritu -> vyhodnocuješ zleva.
https://www.facebook.com/peasantsandcastles/
https://www.twitch.tv/satikcz/
https://www.youtube.com/c/SatikCZE
PC: Intel Core i7 8700K@5GHz+EK KIT L360, ASUS Maximus X HERO, 32GB RAM@3466, MSI GTX 1080Ti Gaming, Fractal Define S, Seasonic P860, SSD 2TB celkem
Periferie: 3x AOC AG271QG (1440p 165Hz IPS), Razer Deathadder+Blackadder Chroma, Steelseries QcK+, Sennheiser PC360, DXRACER OH/KF06/NB

Farsky
Level 1
Level 1
Příspěvky: 98
Registrován: květen 17
Pohlaví: Muž

Re: Programátorský víceboj 0. díl - Šifrujeme

Příspěvekod Farsky » 08 čer 2017 12:23

Uznávám a omlouvám se, jsou to 4.

cpp
nováček
Příspěvky: 41
Registrován: červen 17
Pohlaví: Muž

Re: Programátorský víceboj 0. díl - Šifrujeme

Příspěvekod cpp » 08 čer 2017 13:25

ITCrowd píše:Z matematického hlediska žádný problém.


6 ÷ 2(1 + 2) = ?
Řešení příkladu je v jádru jednoduché: stačí následovat základní pravidla. Jako první vyřešíme výraz v závorce, tedy 1 + 2 je 3, a přepíšeme příklad jako 6 ÷ 2(3).
"Dál začíná drobet zmatek," vysvětluje Petr Habala, profesor matematiky na FEL ČVUT v Praze. "Dělení a násobení mají z matematického hlediska stejnou prioritu, takže matematik by vždy napsal buď 6/[2*3], nebo [6/2]*3. Nejlepší odpověď tedy zní, že je nejasné zadání," zdůrazňuje Habala. "Z mého pohledu matematika je tím problém vyřešen."
Zdroj: https://technet.idnes.cz/matematicky-hl ... 6_veda_pka

ITCrowd píše:Nyní jsou si operace rovny, takže výpočet probíhá zleva doprava (jako čtení)


To ale neznamená, že by nešlo najít řešení, které dá alespoň částečně podloženou odpověď. "Existuje pravidlo, které sice není všeobecně přijímané, ale je poměrně rozšířené. Stanoví, že operace o stejné prioritě se provádějí zleva doprava."
Zdroj: https://technet.idnes.cz/matematicky-hl ... 6_veda_pka

Dodatečně přidáno po 14 minutách 36 vteřinách:
satik píše:jiný než 4, měl by se vrátit do školy.

Dělení a násobení mají stejnou prioritu -> vyhodnocuješ zleva.


Zadání je chybné, tudíž nemůže mít správné řešení. Respektive správným řešením je konstatování, že zadání je nejednoznačné.

Žádné všeobecně přijmané pravidlo, že by se měl výraz vyhodnocovat zleva neexistuje. Pravidlo, co říká, že se výraz musí vyhodnocovat zleva je nesmyslné.

Uživatelský avatar
satik
Level 5.5
Level 5.5
Příspěvky: 2979
Registrován: leden 15
Bydliště: Praha / Krkonoše
Pohlaví: Muž

Re: Programátorský víceboj 0. díl - Šifrujeme

Příspěvekod satik » 08 čer 2017 14:07

Co by na tom mělo bejt nesmyslnýho? To pravidlo dává perfektní smysl, protože píšeme zleva doprava. :)

Je to úplně běžně používaný a přijímaný pravidlo skoro všude, kde se matematika používá, včetně všech počítačových aplikací, ve kterých se nějaký počítání používá.
https://www.facebook.com/peasantsandcastles/
https://www.twitch.tv/satikcz/
https://www.youtube.com/c/SatikCZE
PC: Intel Core i7 8700K@5GHz+EK KIT L360, ASUS Maximus X HERO, 32GB RAM@3466, MSI GTX 1080Ti Gaming, Fractal Define S, Seasonic P860, SSD 2TB celkem
Periferie: 3x AOC AG271QG (1440p 165Hz IPS), Razer Deathadder+Blackadder Chroma, Steelseries QcK+, Sennheiser PC360, DXRACER OH/KF06/NB

cpp
nováček
Příspěvky: 41
Registrován: červen 17
Pohlaví: Muž

Re: Programátorský víceboj 0. díl - Šifrujeme

Příspěvekod cpp » 08 čer 2017 14:32

Existuje vlastnost operací zvaná komutativita. Komutativní jsou například operace souštu a součinu. Tato vlastnost říká, že na pořadí operandů nezáleží, že výsledek musí být stejný.

Kód: Vybrat vše

x * y = y * x
x + y = y + x

Jelikož by mohl být pravidlem počítání pořadě zleva porušen komutativní zákon, je toto pravidlo obecně platné.

Jelikož ve výrazu

Kód: Vybrat vše

10 : 5 * 2

není upravena priorita závorkami, lze podle komutativního zákona výraz upravit na tvar

Kód: Vybrat vše

10 : 2 * 5

Což při aplikaci pravidla počítání zleva dá jiný výsledek než u původního výrazu. Mimo jiné to také dokazuje, že takový zápis je chybný kvůli své nejednoznačnosti.

To, jak čteme a píšeme s matematikou vůbec nesouvisí.

Jak už jsem jednou citoval:
"Existuje pravidlo, které sice není všeobecně přijímané, ale je poměrně rozšířené. Stanoví, že operace o stejné prioritě se provádějí zleva doprava."
Zdroj: https://technet.idnes.cz/matematicky-hl ... 6_veda_pka
Toto pravidlo není všeobecně přijímané!

Když počítáš

Kód: Vybrat vše

10 : 5 * ( 1 + 1 ) =

tak vlastně nehledáš správné řešení, ale to nejméně blbé. Zadání je prostě nejednoznačné, tudíž nemá smysl se s ním zabývat. Co řekneš člověku, který se tě zeptá, "proč je úterý fialové"?

Uživatelský avatar
satik
Level 5.5
Level 5.5
Příspěvky: 2979
Registrován: leden 15
Bydliště: Praha / Krkonoše
Pohlaví: Muž

Re: Programátorský víceboj 0. díl - Šifrujeme

Příspěvekod satik » 08 čer 2017 14:48

To s komutativitou ale prece nijak nesouvisi, resp. ji tam michas spatne.

Kdyz mas pravidlo o priorite, ze provadis vypocet zleva doprava, tak komutovat tam prvky musis stejne opatrne, jako bys tam mel tu prioritu urcenou zavorkama.

Tudiz pro ty komutace je to jako bys misto 10 : 5 * 2 mel zapsano (10 : 5) * 2 - komutovat muzes leda celou tu zavorku, ne jen jeji cast.

Dodatečně přidáno po 51 vteřinách:
cpp píše:"Existuje pravidlo, které sice není všeobecně přijímané, ale je poměrně rozšířené.

Pomerne rozsirene v tomhle pripade znamena, ze temer kazdy system ho pouziva, od programovacich jazyku po treba Wolfram, Mathematicu, Google, MS/Open Office ...
https://www.facebook.com/peasantsandcastles/
https://www.twitch.tv/satikcz/
https://www.youtube.com/c/SatikCZE
PC: Intel Core i7 8700K@5GHz+EK KIT L360, ASUS Maximus X HERO, 32GB RAM@3466, MSI GTX 1080Ti Gaming, Fractal Define S, Seasonic P860, SSD 2TB celkem
Periferie: 3x AOC AG271QG (1440p 165Hz IPS), Razer Deathadder+Blackadder Chroma, Steelseries QcK+, Sennheiser PC360, DXRACER OH/KF06/NB


  • Mohlo by vás zajímat
    Odpovědi
    Zobrazení
    Poslední příspěvek
  • Jak se jmenuje díl - The Simpsons
    od HelFix » 17 čer 2018 11:21 » v Multimédia (filmy, hudba, CDs/DVDs)
    4
    306
    od HelFix
    17 čer 2018 12:10
  • Týdenní herní novinky - 24. díl
    od beather » 28 srp 2017 08:14 » v Hry
    1
    652
    od Ltb
    28 srp 2017 09:42
  • Týdenní herní novinky - 23. díl
    od beather » 21 srp 2017 08:29 » v Hry
    1
    735
    od Ltb
    21 srp 2017 11:06
  • Týdenní herní novinky - 25. díl
    od beather » 04 zář 2017 08:02 » v Hry
    1
    786
    od Ltb
    04 zář 2017 14:11

Zpět na “Programování a tvorba webu”

Kdo je online

Uživatelé prohlížející si toto fórum: CommonCrawl [Bot] a 0 hostů