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ž
Stav:
Offline

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
Elite Level 12.5
Elite Level 12.5
Příspěvky: 19325
Registrován: květen 07
Pohlaví: Muž
Stav:
Offline
Kontakt:

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ů
Guru Level 13.5
Guru Level 13.5
Příspěvky: 23591
Registrován: březen 10
Pohlaví: Muž
Stav:
Offline

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 Vybíráme router

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

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ů
Guru Level 13.5
Guru Level 13.5
Příspěvky: 23591
Registrován: březen 10
Pohlaví: Muž
Stav:
Offline

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 Vybíráme router

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

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 6
Level 6
Příspěvky: 3509
Registrován: leden 15
Bydliště: Krkonoše
Pohlaví: Muž
Stav:
Offline
Kontakt:

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.
PC: MSI RTX 4090 Suprim X, AMD Ryzen 9 7950x3D, ASUS Crosshair HERO X6670E, 64GB RAM@6000CL30, Fractal Define Torrent, Seasonic PRIME TX 1600W, SSD Seagate Firecuda 530 M2 2TB +
4TB + 4TB SATA Micron 5200 ECO
Periferie: Samsung Odyssey G9 Neo + 2x AOC AG271QG, Razer Deathadder, Ducky Shine7, Steelseries QcK+, Beyerdynamic MMX300, Valve Index

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

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ž
Stav:
Offline

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 6
Level 6
Příspěvky: 3509
Registrován: leden 15
Bydliště: Krkonoše
Pohlaví: Muž
Stav:
Offline
Kontakt:

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á.
PC: MSI RTX 4090 Suprim X, AMD Ryzen 9 7950x3D, ASUS Crosshair HERO X6670E, 64GB RAM@6000CL30, Fractal Define Torrent, Seasonic PRIME TX 1600W, SSD Seagate Firecuda 530 M2 2TB +
4TB + 4TB SATA Micron 5200 ECO
Periferie: Samsung Odyssey G9 Neo + 2x AOC AG271QG, Razer Deathadder, Ducky Shine7, Steelseries QcK+, Beyerdynamic MMX300, Valve Index

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

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 6
Level 6
Příspěvky: 3509
Registrován: leden 15
Bydliště: Krkonoše
Pohlaví: Muž
Stav:
Offline
Kontakt:

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 ...
PC: MSI RTX 4090 Suprim X, AMD Ryzen 9 7950x3D, ASUS Crosshair HERO X6670E, 64GB RAM@6000CL30, Fractal Define Torrent, Seasonic PRIME TX 1600W, SSD Seagate Firecuda 530 M2 2TB +
4TB + 4TB SATA Micron 5200 ECO
Periferie: Samsung Odyssey G9 Neo + 2x AOC AG271QG, Razer Deathadder, Ducky Shine7, Steelseries QcK+, Beyerdynamic MMX300, Valve Index


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

Kdo je online

Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 1 host