Celočíselné dělení se záporným číslem v Pythonu

Kolemjdoucí

Re:Celočíselné dělení se záporným číslem v Pythonu
« Odpověď #15 kdy: 27. 07. 2015, 18:32:29 »

Pro úplnost to tady napíšu všechno.

11/2=5 a zbytek 11-(2*5)=1
11/-2=-5 zbytek 11-(-2*-5)=1
-11/2=-5 zbytek -11-(2*-5)=-1
-11/-2=5 zbytek -11-(-2*5)=-1

Jestli tam někdo vidí šestku, tak s ním nechci mít vůbec nic společného.


Jann

Re:Celočíselné dělení se záporným číslem v Pythonu
« Odpověď #16 kdy: 27. 07. 2015, 18:36:24 »

Pro úplnost to tady napíšu všechno.

11/2=5 a zbytek 11-(2*5)=1
11/-2=-5 zbytek 11-(-2*-5)=1
-11/2=-5 zbytek -11-(2*-5)=-1
-11/-2=5 zbytek -11-(-2*5)=-1

Jestli tam někdo vidí šestku, tak s ním nechci mít vůbec nic společného.

No, to spíš naopak. Očividně jsi velmi hloupý člověk. To není urážka, to je prostě fakt.

frk

Re:Celočíselné dělení se záporným číslem v Pythonu
« Odpověď #17 kdy: 27. 07. 2015, 18:46:36 »
... tak s ním nechci mít vůbec nic společného.

Jé, pane kolemjdoucí, vy jste ale chytrej. Spočítejte nám prosím ještě 00 a 0! ..

modulo

Re:[OT] Re:Celočíselné dělení se záporným číslem v Pythonu
« Odpověď #18 kdy: 27. 07. 2015, 19:21:02 »
Pan modulo tedy řeší celočíselné dělení, ale s modulo záporného čísla, např. -11 % 10 == 9, je už psychicky srovnán? :)

A co je zase tohle? :O  ;D

modulo

Re:Celočíselné dělení se záporným číslem v Pythonu
« Odpověď #19 kdy: 27. 07. 2015, 19:25:25 »
Napadá mě ještě jedna věc, když je Python tak "pragmatický", proč vymýšlí hovadiny? A nenechá takové celočíselné dělení, na které jsou všichni zvyklí?


Kolemjdoucí

Re:[OT] Re:Celočíselné dělení se záporným číslem v Pythonu
« Odpověď #20 kdy: 27. 07. 2015, 19:34:34 »
modulo záporného čísla, např. -11 % 10 == 9

-11/10=-1 zbytek -11-(10*-1)=-1

proč vymýšlí hovadiny

Již jsem to uvedl, protože je to práce navíc a tvůrci byli líní.

mxlbzn

Re:Celočíselné dělení se záporným číslem v Pythonu
« Odpověď #21 kdy: 27. 07. 2015, 19:43:04 »
-11 % 10, respektive -11 (mod 10) je opravdu 9. Pro pochopení je ale potřeba trochu víc zabrousit do modulární aritmetiky a tu operaci brát ne jako zbytek po dělení záporného čísla, ale jako aditivní doplněk (opačné číslo) v daném modulu.

modulo

Re:Celočíselné dělení se záporným číslem v Pythonu
« Odpověď #22 kdy: 27. 07. 2015, 19:50:57 »
Ok, tak jsem si myslel, že je Python pro programátory a ne pro puntičkářské matematiky, škoda, líbil se mi.

Radek Miček

Re:[OT] Re:Celočíselné dělení se záporným číslem v Pythonu
« Odpověď #23 kdy: 27. 07. 2015, 19:52:16 »
Pan modulo tedy řeší celočíselné dělení, ale s modulo záporného čísla, např. -11 % 10 == 9, je už psychicky srovnán? :)

A co je zase tohle? :O  ;D

Viz třeba euklidovské dělení.

Jelikož -11 = (-2)*10 + 9.

modulo

Re:Celočíselné dělení se záporným číslem v Pythonu
« Odpověď #24 kdy: 27. 07. 2015, 20:01:07 »
Nějaký tip na multiplatformní skriptovací jazyk,ve kterém si rychle napíšu nejrůznější utility/blbiny, aniž by obsahoval nějakou zradu?

Re:Celočíselné dělení se záporným číslem v Pythonu
« Odpověď #25 kdy: 27. 07. 2015, 20:10:31 »
Nějaký tip na multiplatformní skriptovací jazyk,ve kterém si rychle napíšu nejrůznější utility/blbiny, aniž by obsahoval nějakou zradu?

To, že zbytek po celočíselném dělení dvěma bude vždy 0 nebo 1, tě opravdu vyděsilo natolik, že hned hledáš jiný jazyk?

modulo

Re:Celočíselné dělení se záporným číslem v Pythonu
« Odpověď #26 kdy: 27. 07. 2015, 20:24:07 »
Ani ne, jak často budu provádět modulo nad záporným číslem? Málokdy.
Co se týče toho dělení, tak místo // budu používat int(a / b) a je to  8)

A stejně je dělení v Céčku to jediné správné, howgh.


Pavel Tisnovsky

Re:Celočíselné dělení se záporným číslem v Pythonu
« Odpověď #27 kdy: 27. 07. 2015, 21:29:53 »
Ani ne, jak často budu provádět modulo nad záporným číslem? Málokdy.
Co se týče toho dělení, tak místo // budu používat int(a / b) a je to  8)

A stejně je dělení v Céčku to jediné správné, howgh.

To jo, to totiz v C89 nejde rozporovat: "If either operand is negative, whether the result of the / operator is the largest integer less than the algebraic quotient or the smallest integer greater than the algebraic quotient is implementation-defined, as is the sign of the result of the % operator."

(C99 to uz ma mnohem lepsi, zaokrouhluje k nule, coz je sice docela diskutabilni, ale oni to podle vseho okopirovali od Fortranu :-p)

Kiwi

Re:Celočíselné dělení se záporným číslem v Pythonu
« Odpověď #28 kdy: 27. 07. 2015, 21:49:59 »
Ani ne, jak často budu provádět modulo nad záporným číslem? Málokdy.
Co se týče toho dělení, tak místo // budu používat int(a / b) a je to  8)

A stejně je dělení v Céčku to jediné správné, howgh.

Lidi a jazyky matematičtěji orientovaní dávají přednost buď euklidovskému dělení (např. Maple, Pascal) nebo znaménku zbytku podle dělitele (např. APL, J, Clojure, Lua, MathCad, Mathematica, MS Excel, Perl), některé jazyky dávají přednost symetrické variantě, tj. znaménko zbytku podle dělence (např. C podle ISO 1999, C#, JavaScript, PHP, Visual Basic), mnohé jazyky obsahují obě předešlé varianty (např. Ada, Fortran, Haskell, Java, Matlab, Prolog, Python, Ruby, Scheme, Smalltalk), některé jazyky to vůbec nedefinují (např. C před ISO 1999, Forth, BASIC), některé dávají na výběr mezi Euklidem a min |rem| (Scheme R6RS)...

mxlbzn

Re:Celočíselné dělení se záporným číslem v Pythonu
« Odpověď #29 kdy: 27. 07. 2015, 21:52:40 »
Nějaký tip na multiplatformní skriptovací jazyk,ve kterém si rychle napíšu nejrůznější utility/blbiny, aniž by obsahoval nějakou zradu?

Neříkám, že Haskell je na to úplně vhodný, ale pro dělení podle tvých představ má funkci quot. A taky má samostatné funkce pro zbytek po dělení (rem - remainder) a modulem (mod):
Kód: [Vybrat]
> quot (-11) 2
-5
> rem (-11) 10
-1
> mod (-11) 10
9
Navíc narozdíl od Pythonu (a % b) srávně odmítne spočítat mod a b (matematicky: a (mod b)) pro b < 0.