Tekinthetjük a negatív számokat másnak a negált számoktól?
#11: Sajnos vannak történelmileg beragadt dolgok, amiket csak vasmarkú diktátorok tudnak eltűntetni. Ilyen pl. az ékezetes, windowsos fájlnév, ami unicode, de nem UTF-8, így krikszkrakszos sokfelé más rendszereken. Pedig 20 év alatt csak átírhatták volna a fopen()-t, de mégsem tették. Sajnos a MS ma is a fix széles karakterkódolású fájlneveket erőlteti.
Elég nagy baj az, ha azok az informatikusok a "-a^b" - t "(-a)^b"-nek tartják.
> -5^2
Az az igazság, hogy ez a matematikában sem teljesen tiszta ügy.
Az egyik megközelítésben az előjel a szám elválaszthatatlan része. Van egy szám, aminek az a !jelölése!, hogy -5. Ha innen közelítjük meg, akkor a „-5²” kifejezésnél a „-5” az a szám, aminek a négyzetét kell venni, és így nyilván +25-öt kapunk.
De valóban a szám része az előjel? Hiszen változókra, komplett kifejezésekre is alkalmazzuk, pl.:
-x
-(x²+3x-8)
Ha innen közelítjük meg, akkor az előjel egy művelet. Csakhogy a műveletek precedenciájának leírásaiban én még soha nem találkoztam vele. De tekinthető ez egyfajta rövidítésnek, a nulla elhagyásának egy kivonás műveleténél:
0-x ⇒ -x
Ha így nézzük, akkor a -5² az tulajdonképpen a 0-5² egy rövidebb alakja, és így felírva a hatványozás az előbb elvégzendő művelet.
~ ~ ~
A kettő közül melyik a helyes értelmezés? Nincs mi alapján eldönteni ezt a vitát. A matematikai jelölésrendszerünk nincs jól összerakva, az infix jelölés eleve nem szerencsés. De erre még használunk postfix jelölést is, pl. faktoriális, használunk index jelölést is, pl. hatványozás, meg itt ez a negáció, mint prefix jelölésmód.
Pont ezért ilyen esetben érdemes egyértelműsíteni a jelölést:
(-5)² vs. -(5²)
~ ~ ~
> A felhozott példa nem jó szerintem, ott csak egyszerűen rosszul programozták be az operátorok precedenciáját.
Ez sem feltétlenül hiba. Egy számológép úgy számol, ahol az a dokumentációjában szerepel. Ha úgy van megoldva, hogy a műveleteket balról-jobbra végzi el, precedencia nélkül, akkor úgy van megoldva, ennek megfelelően kell átalakítani a kiszámolandó kifejezést. Pl. a régi számológépeknél nem volt közbenső memória, egy 2+3*3 műveletnél 18-at adott. Ez nem hiba, hanem a számológép működésének egy jól dokumentált jellemzője, nem a számológép számol tulajdonképpen rosszul, hanem a felhasználó használja rosszul a számológépet.
"úgy számol, ahol az a dokumentációjában szerepel"
Ez egyetlen számológép dokumentációjában se szerepel. Mondhatni természetesnek veszik hogy a negatív előjel a 'tudományos' számológépeken nem a szám része hanem csak egy műveleti jel amire érvényes a műveleti sorrend. Mivel a windows is 'tudományos' nak nevezi a számológépet ezért kissé megtévesztő..
A másik a 'piaci kofa' számológép.
Persze vannak jelölésbeli különbségek a gyártók közt pl casio tesz zárójelet sin után, sharp nem, stb
De igazából azért hoztam ezt fel mert a kérdésre a válasz: pl a négy bit közül három a szám abszolut értéke és negyedik az előjel, vagy mind a négy a szám abszolut értéke..
A 'negál' szó jelentése: ellenez, ellentétjére vált.
Egy (dec) számnak nincs ellentetje. Ez csak bineáris számnak lehet. Innen jött hogy dec-ről bin-re váltunk és ott negálunk.. A bin viszont a már leírt többféle módon írható le ha negatív számok is képbe jöhetnek.
De ha az értelmezési tartomány a természetes számok halmaza akkor mi az 1010 negáltja?
(zseb-)Számológépeknél ott fix 10 bit van (BIN módban) tizedespont nélkül ahol a baloldali nullák általában meg sem jelennek. Így érdekes eredmények jöhetnek ki.
NEG(x) = NOT(x)+1 ha nemcsak a természetes számokkal van dolgunk.
De pl egy négy bites regiszterben a NOT = NEG és ekkor a 1010 negáltja NOT1010=0101
Amikor egy új fogalmat vezetünk be, akkor alapvetés, hogy illeszkednie kell ( korábban kialakított szabályrendszer értelmében) a korábbiakhoz. Ha ez a feltétel nem teljesül, akkor az a fogalom nem ahhoz a rendszerhez tartozik, az ott használ fogalmakkal való használata tehát bárhová vezethet.
Amikor az informatikában bevezették a negálás fogalmát, akkor sem a számfogalomhoz, sem a halmazelméleti értelmezéséhez nem illesztették. Nem is kellett, mert nem ez volt a cél. Ebben az esetben már volt a természetes számoknak egy fixpontos ábrázolása, és ehhez illeszkedően kellett egy, a kivonáshoz hasonló (számító)gépi, könnyen kezelhető (programozható) művelet, aminek jó megfeleltetést lehet adni. Ez megtörtént, bevezették a negálás fogalmát (és hozzá műveletet), de a kutya se akarta ezt a számelmélet addigi eredményei közé illeszteni. Mindössze egy hasznos számítógépes tevékenység volt a cél.
Ezek után formális (de egyáltalán nem valóságos, egzakt) analógiákra hivatkozva valamiféle azonosságot vagy ellentmondást keresni teljesen értelmetlen.
A körte és az alma egy gyümölcs. Számos azonos és eltérő tulajdonságuk van. Abból értekezést kreálni, hogy az alma körte-e vagy fordítva, vagy pedig annak valamiféle "ellentéte" pusztán játék a szavakkal. Értelem nélkül.
A válasz tehát: nem tekinthetjük, mert két különböző dologról van szó, azaz ilyen mesterkélt összehasonlítás értelmetlen. Ezért persze hosszan lehet vitázni róla.
18. 15:28. "Amikor az informatikában bevezették a negálás fogalmát, akkor sem a számfogalomhoz, sem a halmazelméleti értelmezéséhez nem illesztették."
A negálás fogalma a Boole algebrával jelent meg aminek az alapjai az 1850-es 1860-as években születtek (igen közel 100 évvel vagyunk az első digitális /bináris/ számítógépek előtt). Még közel sem léteztek informatikusok. Ők a logika illetve a halmazelmélet törvényszerűségeit vizsgálták (matematikailag), érdemes elolvasni pár ezzel foglalkozó könyvet. Gyakorlatilag mire oda jutott a "modern" világ, hogy számítógépeket építettek őseink már ez a fogalom régen létezett. Nagyjából mire megjelentek az első "informatikusok" akik ezt a fogalmat létre tudták volna hozni (ahogy te írod) ez a fogalom már régen létezett.
Részletesen ld.: [link]
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!