Hatvány negálása táblázatkezelőben

Fórumok

Ha egy táblázatkezelőben beírom ezt: =-6^2, miért 36 az eredmény?

(A műveleti sorrend értelmében a hatványozás előbb végzendő el, mint a -1-gyel való szorzás, márpedig itt a '-' jel azt jelenti. A kérdésem csak annyi, hogy mi a ráció ugyan ebben, hogy nem a matematikának megfelelő módon értik, hanem mintha (-6)^2-t írnék.)

Néztem MS Office-szal, LibreOffice-szal, Gnumeric-kel is.

(Teljesen mellékes a kérdés szempontjából, de aki szerint -6^2=-36 (nem Excelben, programnyelvben, hanem a matematikában), az az egyszerűség kedvéért itt reagáljon, mert fárasztó hat helyen leírni ugyanazt.)

Hozzászólások

Visszakérdezek:
A képletben szereplő -6 ugye nem (-1)*6, hanem csak egy negatív szám?

Annak a négyzete viszont -- ha jól számolok -- 36. Mi ebben probléma?

Akkor nézzük részletesen:

1. -6 az bizony (-1)*6 különben baj van.
2. (-1)*6 négyzete valóban: úgy van ahogy mondod
3. De akkor lássuk részletesen:
-6^2 = 0 - 6^2 = 0 - 36 = -36
vagy
-6^2 = (-1)*6^2 = (-1)*36 = -36
vagy sokkal rövidebben
-6^2 = -(6^2) <> (-6)^2

Szerinted mi nem stimmel itt?

Stimmelni stimmel, a tévedés jogát fenntartom magamnak.

Az nem lehet viszont, hogy az általad említett program -- valamilyen okból -- ezt a kifejezést balról-jobbra értékeli ki, azaz előbb negálja a numerikus értéket, s csak ez után végzi el a hatványozást?

Más javaslat -- a zárójelezésen kívül, ami korábban felmerült --: nem lenne célszerűbb a beépített függvényeket használni, s azok egymásba ágyazásával kiértékeltetni a kifejezést? (Nem biztos, hogy hatékonyabb, viszont talán egyértelműbb.)

Az Excel (és gondolom ennek nyomán a többi táblázatkezelő) szándékosan működik így, a '-' előjelet veszi előre a műveleti sorrendben, minden másban megfelel a matematikai konvencióknak, nyilván kompatibilitási okokból ez már nem is fog sosem változni. Ennek utánanéztem, tudomásul vettem, ha előfordul, hogy ilyet kell számolnom táblázatkezelőben, majd zárójelezek. Nem vagyok hülye, alkalmazkodok. A kérdésem csak az volt, hogy ugyan mi okból lehet ez így?

Nem, én azt állítom, hogy -6^2 = 6^2, konstans hatványáról beszélünk.

Ha ezt bizonyítani kell... -6^2 = ((-1)^2 * 6^2) = 1 * 36 = 6^2

Mivel pedig szívesen segítek bárkinek, ha hagyja, de még a saját gyerekeimet is magukra hagyom, amikor fixa ideával állítanak szembe, itt be is fejezném.

Pedig azt is írtad, hogy -x^2=x^2. De most tekintsünk el ettől. Akkor azt állítod, hogy a -x^2-be 6-ot helyettesítve nem -36 az eredmény. Ezt gondold át.

A bizonyításodban az első = jel nem igaz, a többivel egyetértek. Ha azt az elsőt bebizonyítod nekem, akkor meg vagyok győzve. :-)

Egyáltalán nem elvárás az, hogy egy változó helyébe szintaktikailag konkrét számot helyettesítve a matematikai jelentés is ugyanaz maradjon. Ez máshol is sérül, például:

Legyen x = 6, y = 7.

Ekkor xy = 42 (negyvenkettő), de bután szintaktikailag behelyettesítve 67 = 67 (hatvanhét) adódik.

Nem feltétlenül elvárás tehát, hogy a -6^2 és a -x^2 kifejezésekben a mínusz jel jelentése, illetve a műveleti precedencia megegyezzen.

Még egy kis kiegészítés:

Ha azt írod, hogy -6, akkor azt fel lehet fogni úgy (és többen ezt preferálják), hogy emögött nincs semmiféle művelet, hanem ez így egyben egy robbanthatatlan egységként "ott van" valahol a számegyenesen.

Ha azt írod, hogy -x, arra már nem tekinthetsz így, ott az x értékéből kiindulva muszáj valamit tenned. Vannak, akik a -6 -ot is így fogják fel, tehát hogy a 6-ból indulunk ki és azzal történik valami, elvégzünk egy műveletet.

Külön ínyencség, hogy az a valami, ami történik vele, az vajon 0-ból kivonás-e, vagy pedig (-1)-gyel szorzás?? :)

Hát, teljesen meggyőződve én sem vagyok, de pl. a Wolframalpha (és így vélhetően a Mathematica) is így érti, a Maxima is így érti, emlékeim szerint a Maple is így érti, az Octave is így érti, a GNU R is így érti (momentán ennyi komolyabb matematikai rendszerrel jut eszembe, hogy van tapasztalatom). Tudom, ezek is csak implementációk, de ezeket matematikusok készítették matematikusoknak. És mondjuk az angolszász konvenciót ezzel azért eléggé lefedtük szvsz. Ettől még lehet, hogy Japánban másképp értik, de nem hinném.

Szerintem igenis jó példa, ugyanis Te is megerősítetted, hogy épp arról van szó: betűk és számok esetén nem feltétlenül működik ugyanúgy a jelölésrendszer. Ha egy szorzásjel betűk közt elhagyható, számok között nem; akkor egy mínusz jelecske miért ne jelenthetne akár szintén mást betű illetve szám előtt? Nem azt mondom hogy mást jelent; pusztán figyelemfelkeltőnek, gondolatindítónak szánom az észrevételt.

1. 6 az bizony 2*3 különben baj van
2. 2*3 négyzete valóban: úgy van ahogy mondod
3. De akkor lássuk részletesen:
6^2 = 2*3^2 = 2*9 = 18 <> (2*3)^2 = 36

Vagy röviden -6 az egy szám, amit akár be is zárójelezhetsz, de általában nem szoktunk számokat magukban bezárójelezni.

A műveletek sorrendje:
1) zárójel
2) hatványozás (gyökvonás)
3) szorzás (osztás), balról jobbra
4) összeadás (kivonás), balról jobbra

Az első hatványazonosság szerint a^b*c^b=(a*c)^b.

Ez esetben -1*6^2, vagyis (-1*6)^2. Hogy miért? Vegyünk egy másik példát:
6^2 = 2*3^2 = 2*9 = 18
vs
6^2 = (2*3)^2 = 6^2 = 36

Visszatérve az eredeti példára, ha másképp bontom fel a -6-ot, akkor a -6 = -1*6, és ha ezt második hatványra akarom emelni, akkor -1^2*6^2 = 1*36 = 36.

"1. -6 az bizony (-1)*6 különben baj van."

az en mezei logikam belezuhan ebbe. mert ha a -6 az (-1)*6, akkor a
-1 = (-1)*1
es itt vegtelen rekurzioba valt, vagyis
-1 = (-1)*1 = ((-1)*1)*1 = (((-1)*1)*1)*1, stb.

szoval a ((((((-1)*1)*1)*1)*1)*1)*1 * 6 korul mentem flipperezni.

Nem jól számolsz.

http://www.wolframalpha.com/input/?i=-6^2

A matematikában így értik. Ezt tanultuk mindannyian általános iskolában. A táblázatkezelők miért nem értik így, ez a kérdés.

A képletben ez szerepel: -6^2, amit úgy kell érteni: -(6^2). Tetszik nem teszik, így van. A Wolfram is így érti, a számológépek is így értik.

Az a kérdés, miért jó, hogy a táblázatkezelők nem.

Eszem-faszom megáll amikor bizonyításról vitatkoztok. Definícióról beszélünk! Arról, hogy a -6^2 úgy értendő-e, hogy (-6)^2, vagy pedig úgy, hogy -(6^2). Hogy a rákba lehetne ezen bármit is bizonyítani??? Maximum érvelni, hogy melyik definíció lenne a szimpatikusabb neked.

Számológépeken legtöbbször van egy kivonás jel és egy mínusz előjel.
Ha a mínusz előjellel írsz be mínusz hatot, és azt emeled négyzetre, akkor 36-ot kapsz. Illetve ha kivonsz 0-ból hatot, egyenlőt nyomsz, és négyzetreemelsz, szintén 36-ot kapsz.

Több programnyelvben a „-” operátornak két jelentése van:
- 2 operandus esetén (3 - 1) a kivonás műveletet jelenti -> ennek a precedenciája kisebb a hatványozásénál
- 1 operandus esetén (-6) a negálás műveletet jelenti -> ennek a precedenciája nagyobb a hatványozásénál

A táblázatkezelő ennek megfelelően működik. Több lehetőséged is van:
- tudomásul veszed/elfogadod;
- nem veszed tudomásul, és méltatlankodsz;
- írsz a kifogásolt működésű programok készítőinek, és meggyőzöd őket, hogy rosszul gondolják ezt a dolgot; Sok sikert
- …

Kiegészítés:
Félreérthető volt, ezért töröltem.

-----

(&%;_98\<|{3W10Tut,P0/on&Jkj"Fg}|B/!~}|{z(8qv55sr1C/n--k**;gfe$$5a!BB]\.-

Nem méltatlankodok és tudomásul vettem. Annyi a kérdés, mi lehet az oka, miért jó, hogy így értik, és nem úgy, ahogy a matematikában általában (ahol szintén kettős jelentése van, de ott a negálás nem magasabb rendű művelet a hatványozásnál, lévén a (-1)-el való szorzással definiálható, arra meg van egyértelmű sorrendiség). Ha van egyáltalán bármi oka.

Feladom.

Mégis teszek még egy-két próbát:
- Egy regiszterbe egy negatív számot (-6)-ot írsz (pl. assembly nyelven). Utána pedig megszorzod saját magával, akkor ott is ezt az eredményt fogod kapni.
- Ha egy változó értéke negatív szám, és a változó tartalmát négyzetre emeled, akkor ott is ezt az eredményt fogod kapni.

-----

(&%;_98\<|{3W10Tut,P0/on&Jkj"Fg}|B/!~}|{z(8qv55sr1C/n--k**;gfe$$5a!BB]\.-

Ez világos. Most arról beszélsz, hogy (-6)^2=36. De én arról beszélek, hogy -6^2<>(-6)^2.

Ha egy táblázatkezelőben egy cellába írok egy negatív számot, és annak a négyzetét kiszámoltatom egy másik cellába, az pont így működik és nem is kéne, hogy másképp működjön. De hogy jön ez ide?

Most már tényleg utoljára:

A programozási nyelvek többségében (az excel is egy speciális programozási nyelv, speciális megjelenéssel) az egy operandusú mínusz („-”) a negálást jelenti. Ami a pozitív számból negatívat, a negatívból pedig pozitívat csinál. Jelen esetben a pozitív 6-ból, a negatív 6-ot (-6). Továbbá a negálás precedenciája legtöbb esetben magasabb mint a hatványozásé. Az is ismert, hogy a negatív szám négyzete is pozitív szám lesz.

Az ügy szempontjából nincs jelentősége, hogy egy matematikus/azték/babiloni/gázszerelő mit gondol erről. A lényeg az, hogy a programozási nyelvek többsége így kezeli az általad problémásnak tekintett helyzetet.

„Ha egy táblázatkezelőben egy cellába írok egy negatív számot, és annak a négyzetét kiszámoltatom egy másik cellába, az pont így működik és nem is kéne, hogy másképp működjön. De hogy jön ez ide?”

Tehát szerinted az a helyes, ha egy negatív szám (hint: egy operandusú negálás) négyzetre emelésének eredménye attól függ, hogy a négyzetre emelendő szám a négyzetre emeléssel egy cellában van, vagy pedig egy másik cella tartalmát emelem négyzetre?

A lényeg a precedencia! Mikor egy új programozási nyelvvel ismerkedem, akkor az első között nézem meg a precedencia szabályt. Ezzel némileg le lehet csökkenteni a későbbiekben a hibakeresésre fordítandó időt. Ha bizonytalan vagyok, akkor zárójelezek. Ez, némi plusz gépelésért cserébe, még több kellemetlenségtől kímél meg.

Összefoglalva: A táblázatkezelők az általam ismert programozási nyelvek többségénél megszokott módon kezelik a negálás operátort. És ennek örülök! És, éssel nem kezdünk mondatot. :-)

-----

(&%;_98\<|{3W10Tut,P0/on&Jkj"Fg}|B/!~}|{z(8qv55sr1C/n--k**;gfe$$5a!BB]\.-

programnyelve is valogatja:


$ bc -l
-6^2
36
$

illetve:


gnuplot> print -6**2
-36

plusz egy erdekes diszkusszio itten...

Ez így világos, és az is, hogy ha egy adott eszközt használok, alkalmazkodjak a szabályaihoz (bár a bc-nél nem is tudtam, hogy így érti, de azzal ritkán számolok). A linket köszi, erről beszélek én is.

Szóval akkor a kérdés még általánosabban: miért jó, hogy programnyelve válogatja, betartják-e a matematikai szabályokat?

A matematikai precedencia az, hogy a -6^2, az mínusz hat a négyzeten (amióta ismerjük a negatív számokat), nem pedig hat a négyzeten szorozva mínusz egy. Ahol ezt betartják, ott ez lett a szempont.

Ahol nem tartják be, ott vagy az a szempont, hogy zárójelezés kierőszakolásával egyértelműbb legyen a jelentés az olvasó számára, vagy az elemzés a parsernek - vagy csak nem is gondoltak az egészre, ahogy esett, úgy puffant, vagy gondoltak, de a megvalósításba hiba csúszott és a parser összekeveri az egyoperandusú mínuszt a kivonással.

A -x^2 egy változó négyzetének a negálását jelenti, amely változó lehet pozitív/negatív/nulla, de a -6 sose lesz más csak -6, bátran ábrázolhatod is az x -> -6^2 függvényt tetszőleges értelmezési tartományon (bár ez az eredeti kérdést fogja benned felvetni), várva, hogy egyszer 0 alá bukik.

Mert az ott igazából nem kivonás jel.

=-6^2 => 36
vs
=0-6^2 => -36

--

Azert jutsz ellentmondasra mert egyszer igy ertelmezed egyszer meg ugy. azaz ha -x^2 az ugyan az mint (-x)^2 akkor az osszeadas x^2 -el mar nem 0. (-x)^2 + (x)^2 = -x^2 + x^2 /= 0. Felreneerts, tudom hogy matematikaban ezt ugy jelolik ahogy mondod. De nem azert mert valami egyetemes matematikai igazsag miatt igy lehet csak jelolni, hanem azert mert igy alakult ki a jeloles / igy kenyelmes.

Teljesen igazad van, erre nem figyeltem oda. De akkor hogy értessem meg azzal a szerencsétlennel (ha már folyamatosan lehülyézett engem), hogy -6^2=-36? (Bár az gondolom elég erős érv, hogy nézze már meg a -x^2 parabolát, meg helyettesítsen bele 6-ot. Feltéve, ha valaki tudja, hogy néz ki a -x^2 parabola.)

Elbeszéltek egymás mellett. Valójában arról van szó, hogy a -6^2 értelmezhető úgy is, hogy a 6 van behelyettesítve a -(x^2) képletbe (a félreértések elkerülése végett zárójeleztem be), meg úgy is, hogy a -6 van behelyettesítve az x^2 képletbe. Nekem az utóbbi tűnik természetesnek, bár matematikailag az előbbi a helyes. Én ezt arra vezetném vissza, hogy a matematikailag helyes jelölést a gyakorlatban időnként kényelmetlennek találjuk, ezért egyszerűsítünk. Én idejét sem tudom annak, mikor írtam papíron negatív számot utoljára zárójelben, mivel a spacing hiánya is teljesen egyértelműen jelzi, hogy a - előjelként szerepel. Pl. 69 - 42 vs. 69 -42.

" a hatványozás előbb végzendő el, mint a -1-el való szorzás"

Csakhogy itt a "-" az nem -1-geyl való szorzás, hanem a szám (-6) része. A parser előbb állapítja meg, hogy ez itt egy szám, aminek értéke -6, és utána hatványoz. -1-gyel senki nem szoroz.

Ha ilyet látok gépben, hogy "-6^2", akkor gondolkozni kezdek, hogy hogy érti a beírója, mert nem egyértelmű. Itt ugyanis nem matematikai műveleti precedenciáról, hanem parse-olási kérdésről van szó: előbb állapítja-e meg a számok értékét és utána végez-e műveletet velük.

Papíron -36 lenne az érték, amire gondolnék. De nem feltételezem, hogy a gép ugyanúgy gondolkodik.

Igen, ez a kérdésem, hogy miért jó ez. Az lenne a logikus, ha egy (többek között) számítások végzésére használt program/programnyelv betartaná a matematikai konvenciókat. Annyi lett volna a kérdésem mindössze, hogy mi oka lehet annak, hogy mégsem. Nem kötekedés, kíváncsiság.

Szerintem: a programozási nyelvekben hagyományosan a negáció a legmagasabb precedenciájú. A hatványozás csak függvényhívásként érhető el, tehát a fenti probléma fel sem merül, mindig egyértelmű mi a művelet tárgya.

A táblázatkezelőben bevezették a hatványozás operátort, viszont a jelek szerint fontosabbnak tartották a "negáció a legmagasabb precedenciájú" hagyományt megtartani, mint hogy matematikailag helyesek legyenek. Talán azért, mert bár a hatványozás hagyományos írási módja, a felső index egyértelművé teszi a műveleti sorrendet, az "^" operátorral történő írási módnál ez már nem igaz. Ilyenkor az átlagos felhasználó valószínűleg inkább "programozói" módon gondolkodik, nem matematikusként.

matekos kiértékelés?

miről beszélünk?

a "6 + -6" kifejezés szerintetek "matekosan" helyes? szerintem igen, a Fortran fordítod mit kezd vele? szerintem simán "elbukik" rajta, mert a - jelet unáris operátornak fogja tekinteni, nem pedig előjelnek, azt meg nem fogja engedni aritmetikai operátor után, azaz zárójelezni kell...

online (gfortran-4.9.2): http://ideone.com/XjBpGh

szerkesztés: ha esetleg a hibaüzenetek alapján azt gondolnád, hogy máshol van a hiba, akkor kérlek "forkoljad" a kódot, és írd át a -6-ot mondjuk 6-ra, és lám azzal meg elboldogul,

matekórát nem láttam, én csak matematikára emlékszem...

miért kellene egy negatív számot zárójelezni?

ha önmagában szerepel, akkor is zárójelezed?

ha mondjuk van egy negatív számokat is tartalmazó számtani sorozatod, annak az (felsorolt) elemeit hogyan írod le?

vagy fordítsuk meg: szerinted a "-6 + 6" kifejezés akkor helyes-e, és miért? egyáltalán mit is "jelent"?

szerintem az a gond, hogy elbeszélünk egymás mellett: szerintem egy negatív számot literálként le lehet írni, mások szerint meg mindenképpen unáris műveletről van szó,

viszont a 6+-6 nem jó, meg mást is jelentene, így gépen.

mit jelentene szerinted? vagy én vesztettem el a fonalat?

azt aláírom, hogy egy programszövegben pont a félreértések elkerülése miatt (is) zárójelezünk, meg lejjebb már leírtam, hogy valamilyen szempontból igazat adok a téma indítójának, de...

általában, de pont ezért "jobb" talán valamilyen kifejezőbb írásmódot találni, ha már nem tudjuk a bevinni a ±-t (lehet, hogy nem mindenkinél fog jól megjelenni ez a karakter, előnézetben nálam rendben volt), pld. szerintem "jobb" a +/- "formát" használni, azaz 6+/-6, de nyilván másnak-máshol meg úgy kézenfekvőbb, ahogyan te írtad, gondolod,

nekem továbbra sem egyértelmű, mert szerintem nem lehet a "környezettől" elvonatkoztatni, és ez okozza a "gondot", hogy egy hasonló, de más környezetben megpróbáltuk ugyanazt alkalmazni,

pld. a google online táblázatkezelője is 36-ot ad a "=-6^2" kifejezés eredményeként,

Lehetne akár így is, de jellemzően a parserekben a '-' egy egyoperandusú prefix operátorként van definiálva, az integer pedig egy számmal kezdődő karaktersorozat (tehát eredendően pozitív).

Például itt egy grammar file PL/SQL-hez:.

A numerikus konstansban nem szerepel se '-' vagy '+' prefix:
TOKEN : /* Numeric Constants */
{
< S_NUMBER: <FLOAT>
| <FLOAT> ( ["e","E"] ([ "-","+"])? <FLOAT> )?
>
| < #FLOAT: <INTEGER>
| <INTEGER> ( "." <INTEGER> )?
| "." <INTEGER>
>
| < #INTEGER: ( <DIGIT> )+ >
| < #DIGIT: ["0" - "9"] >
}

Később egytagú kifejezésként definiálja a negálást, aminek a paramétere lehet konstans is:
void PlSqlUnaryExpression():
{}
{
(("+" | "-") PlSqlPrimaryExpression())
|
PlSqlPrimaryExpression()
}

void PlSqlPrimaryExpression():
{}
{
<S_NUMBER>
| <S_CHAR_LITERAL>
[...]
}

"A műveleti sorrend értelmében a hatványozás előbb végzendő el, mint a -1-gyel való szorzás, márpedig itt a '-' jel azt jelenti."

Abban igazad van, hogy a -6 felírható mint -1*6, ahol tévedsz, az az, hogy a -1*6^ nem ugyanaz, mint a -6^. Indoklom: a -6 leírásakor a -1*6 művelet már elvégzésre került, ezért semmi nem indokolja azt, hogy ismét szétbontsd a már elvégzett szorzás eredményét. Ezen a ponton viszont ha mégis szét akarod bontani, akkor a helyes szétbontás menete: -6^2 = (-1*6)^2 = -1^2*6^2
Ha a te gondolatmenetednél maradok, akkor a -6 úgyis felírható, mint -2*3. Ha most a -6^2 úgy írom fel, mint -2*3^2, akkor elég jól láthatóan hibát követek el, már nem csak az előjel fog megváltozni, de az érték is. Miért is? Azért mert a hatványozás magasabb precedenciájú, mint a szorzás. Ha így akarod "széthúzni" a kifejezést, megteheted, csak akkor amit "kihúzol" belőle, azt is hatványozni kell. Viszont ekkor ha úgy írod fel, mint -2^2*3^2, akkor az eredmény is jó lesz és az előjel is megváltozik.

Ez az állítás azért téves, mert a matematikának van egy olyan ága, amit úgy hívnak, hogy komplex számok. Itt megjelenik az "i", mint immaginárius egység. Ez azért fontos, mert ennek a szigorúan elméleti számnak az önmagával alkotott szorzata -1. Innen kezdve az i^2 = -1, de pont emiatt a -1^2 = 1. Innen kezdve ha a -6^2 eredményeképpen -36-ot akarok kapni, akkor az -6i^2, vagy komplex szám formában (-6, 1)^2.

(-6,i) * (-6,i) az két CxC vektor (komplex koordinátájú) szorzata, amit skaláris szorzatnak vett a Wolfram
(6,i)**2 az meg egy vektor hatványozása, ami nem igazán van definiálva a lineáris algebrában, a Wolfram meg jobb híján koordinátánként négyzetre emelt

Mi itt a gond?

nincs semmi gond, úgy van ahogy írtad, csak korábban a WolframAlpha-ra hivatkozva ezt is írtad: "A matematikában így értik.", azaz mintha a WolframAlpha-val akarnád igazolni a matematikai értelmezést,

és most azt írod, hogy a hatványozás a lineáris algebrában nem igazán van definiálva, ezért a WolframAlpha jobb híján adott valamilyen választ a nem átgondolt kérdésemre, és nem azt mondta, hogy "nem érti" mit is akarok,

szóval akkor most hogy is van ez? ezek szerint, akkor mégiscsak van értelme a matematikában a hatványozásnak a ℂ²-n, mert a WolframAlpha tudja értelmezni?

költői kérdés, nyilván ugyanarra gondolunk...

apropó, nem szándékosan "írtam el", jobb lett volna talán, ha nem ℂ² példákat írok, hanem ℝ²-ben maradok, mert akkor a halmazelméleti modellre lehetne hivatkozni, és akkor talán elgondolkodhatunk azon is, hogy a már korábban Zs által felírt alakot (-6,1) is csak vektornak fogja a WolframAlpha kezelni, azaz (-6,1)^2 kérésre {36,1} lesz a válasza, a (-6+i)^2-re meg persze megkapjuk a helyes 35-12i-t (amely persze 37-es rádiusszal rendelkezik, ahogyan iattilagy megjegyezte),

persze itt sincs semmi gond, hiszen csak arról van szó, hogy nem jól fogalmaztuk meg a feladatot a WolframAlpha-nak,

Lineáris algebrában is szokták értelmezni az ú.n. pontonkénti műveleteket. Csak azért furcsa, mert a legtöbbet síkbeli/térbeli/téridőbeli fizikai mennyiségeket leíró vektorokkal találkozunk, ahol a "szokásos" vektorműveletek (skaláris szorzás, vektoriális szorzat) jó tulajdonsága, hogy az eredmény kovariáns (azaz, ha kiszámolok valamit, majd elvégzek egy koordinátatranszformációt, vagy ha előbb végzem el a koordinátatranszformációt és utána a műveleteket, akkor ugyanazt kapom), míg a pontonkénti műveletek nem azok.

De: tfh egy vektorban tárolom valamilyen legyártandó korongok sugarait: r=(r1,r2, ...),
akkor a területük pi r^2 = (pi r1^2, pi r2^2, ...), a térfogatuk pi r^2 h, ahol h a vastagság, a tömeg pedig
rho pi r^2 h, az össztömeg (rho pi r^2 h).(1,1, ...).

Hat ez a topik igy ahogy van megert egy right click, save page as gombot. Gratula!

Hint: -6^2 altalaban (-6)^2, nem pedig -(6^2) amit te varnal.

-6^2=36 szerinted? Nem programnyelvekben (ez tisztázódott közben, hogy ott többnyire igen, én azt hittem, csak néha), nem táblázatkezelőben (az meg a kérdésfelvetés pillanatában is világos volt, hiszen láttam), hanem úgy általában? Mert akkor én is rögzítem itt a kedves hozzászólásod.

"úgy általában" nem ír le ilyet az ember. A kalap karaktert programozási nyelvekben és táblázatkezelőkben használjuk. "Úgy általban" kalap nincs, a kettes feljebb kerül és kisebb lesz.

És ismét: az, hogy a -6² mit jelent, definíció kérdése. Lehet így is, úgy is definiálni. Nincs levezethető, bebizonyítható helyes és helytelen válasz.

Van általánosan elfogadott definíció? Biztos vagy benne? Vagy csak azért hiszed annak az általad kedveltet, mert általános iskolában Marika néni azt tanította neked, és ezért azt hitted hogy akkor minden országban, minden általános iskolában így tanítják?

Én úgy sejtem, hogy ez tipikusan az a terület, ahol ha az egyik jelölésmód világszerte egyértelműen jóval elterjedtebb lenne a másiknál, akkor a másik kihal; például programozási nyelvek nem választják azt. Szerintem azért terjedt el mindkettő és lett ekkora kuszaság, mert mindig is huzavona volt a kettő közt és közel ugyanannyira voltak népszerűek.

[Troll] Miért?
1. Mert az élet kegyetlen.
2. Mert Murphy törvénye érvényesült.
Tehát: zárójelezd úgy, hogy ne lehessen félreérteni.
[/Troll]

Egyesek úgy vélik, hogy a hatványozás erősebb a kivonásnál, ezért -36 kellene hogy legyen az eredmény.

Mások úgy vélik, hogy az egyoperandusú "-" eltér a kétoperandusútól, és szorosabban kötődik a számhoz, vagyis a (-6)-ot emeled négyzetre, az eredmény 36.

A programozási nyelvek, parancssori eszközök stb. kábé fele így, fele úgy látja a világot.

Szopás. C'est la vie. Nem hinném, hogy bármelyiknek jobban igaza van, mint a másiknak. Ettől még gáz, hogy nincs egy egységes álláspont, de hát ha nincs, akkor nincs.

szerintem nem vagyok egyedül a véleményemmel, azzal, hogyha egyszerűen leírod ezt: -6, akkor semmiféle kivonásról, operátorról nincs szó, hanem arról a számról az egész számok halmazában, amelyet a 6-hoz hozzáadva 0-t kapunk, azaz a 6 + x = 0 "megoldásáról", amely a természetes számok halmazának nem eleme, és ezért is(?) bővítettük azt a halmazt,

egyes programozási nyelvek persze valójában negatív számot önmagában literálként "nem értelmeznek", hanem mindenképpen unáris műveleti jelnek fogják tekinteni azt a jelet, amelyet valójában előjelnek "kellene" venni, lásd az általam idézett Fortran példát,

azt "aláírom", a téma indító "védelmében", hogy pld. megnézve egy olyan ismertebb matematikai formulát, ahol belebotolhatunk egy negatív szám hatványába, pld. nézzük a szinusz Taylor-sorát, ott a (-1)**n-et (n=0, 1, 2...) zárójelezni szokás, pedig közben egyértelmű lenne, hogy -1**n-ként felírva, ha annak a helyes értelmezése -(1**n), akkor nem lenne "világos", hogy miért is van szükség a hatványozásra, stb.,

Szerintem eddig ez a legjobb válasz. Csak annyit tennék hozzá, hogy matematikában/fizikában van általánosan elfogadott konvenció, és az bizony az, ahol a hatványozást kell előbb elvégezni. Egyetlen olyan szakcikket sem láttam, ami ne így használná. De a kalap nem kitevő, a programozás nem matematika, az élet nem habostorta.

Na hat oszkar most mar latod, hogy miert van ez az erdekesseg. Az informatikusok nem matematikusok. De jo nagy a pofajuk!

Libreoffice scalc cellába beírva: -6^2
36
Gnumeric eredménye is plusz 36.

És a többi esetén? Lássuk:

$ luajit
> = -6^2
-36

octave:1> -6**2
ans = -36

$ perl
print -6**2
-36

$ php5
<?php echo -6**2; ?>
-36

$ python3
>>> -6**2
-36

$ ruby
print -6**2
-36

Amely pozitív eredményű:
$ bc -l
-6^2
36
.
bash:$ echo $[-6**2]
36

Ez is pluszos. A matekórán tanultak szerint az előjel nagyobb prioritású, mint a hatványozás. De akkor a többi miért fordítva dolgozik?

A matematika leíró nyelve nem egyértelmű. Országonként, kultúránként, tankönvenyként, tanáronként, szituációnként, programozási nyelvenként eltérő lehet.

Amerikában az 1-est kézírással pálcikaként írják, és a 7-esük kísértetiesen hasonlít a mi 1-esünkre. Ha a 7-est áthúzod középen vízszintesen, azt ők már nem ismerik fel.

Mi tanultunk olyat (is) általánosban, hogy az unáris mínusz (amiről ezt a téma szól) az a kivonás helyett egy rövidebb és magasabban lévő, szinte alig észrevehető vonalka.

Ott van a "/", ami sok esetben valós osztást, sok esetben pedig egész osztást jelent. Negatív számból indulva ki megintcsak eltérnek a programnyelvek abban hogy merre kerekít, illetve a modulus (%) negatív vagy pozitív lesz.

Aztán ott van a híres-hírhedt 6÷2(1+2) esete: http://www.mathmagical.co.uk/Mathematics/CalcPuz.html

A természetes számok halmazába hol beleértik a 0-t, hol nem.

A négyzetgyökvonás eredménye legfeljebb egy szám – egészen addig, amíg ki nem lépünk a komplexek körébe, akkor hirtelen már egy történetesen pozitív valósra sikeredett számnak is két négyzetgyöke lesz.

Tizedespont–tizedesvessző. Ezresenként elválasztó karakter. Végtelen ismétlődő tizedesjegy(ek) jelölése. Oly sok variáció van rájuk!

Satöbbi, satöbbi, satöbbi...

A jelen szituáció is csak egy a sok ilyen közül. Nincs itt semmi látnivaló kérem, haladjanak tovább!

6÷2(1+2) -- szép baleset.
Matekórán azt tanították, hogy azonos precedenciájú az osztás és a szorzás.
Ez esetben egyértelműen balról jobbra kell kiértékelni.

Az ismertetett első generációs "okos"számológép valószínűleg verem alapú kiértékelőt alkalmazott és itt ezt elrontották benne, hiszen a veremből jobbról balra lett az azonos precedencia kiértékelve.

A gyok(4) = +/-2 tényleg kettős értéket ad, ahogy a gyok(-4) is 0 + j(+/-2) eredményt. Ez a kettős eredmény tényleg benne van a matekban.

De azért ha azt látod leírva, hogy ab/cd, őszintén, az jut eszedbe, hogy összeszorzod az a-t és a b-t, elosztod c-vel, majd ezt a részeredményt _megszorzod_ d-vel? Mert nekem nem ez ugrana be, még ha szigorúan véve valószínűleg ez is a helyes. Következetés: ha esetleg félreérthető, vagy ha a szigorú matematikai értelmezés nem egyezik a "természetessel", tegyük egyértelművé zárójelezéssel.

Ha a valós számok halmazán dolgozunk, négyzetgyök alatt általában csak legfeljebb egy értéket (a nemnegatívat) értünk.

Ami bosszantóbb és több hiba melegágya:

c = 8<<1 + 1;
d = 8*2 + 1;

Eredmény: c: 32 illetve d: 17, mivel a shift kisebb precedenciájú az összeadásnál, holott logikailag a shiftelés a 2^n szorzás (ill jobbra 2^n osztás) aritmetikázásnál kisebb költségű megvalósítása.

Operátor precedenciáról bővebben: http://en.cppreference.com/w/c/language/operator_precedence

Az a/bc az a ritka kellemetlen eset, amikor elvileg van rá szabály (a matematikusok szerint): balról jobbra, de pl. a fizikusok nagyobbik fele a/bc-n a/(bc)-t ért.

A négyzetgyök még szebb, mert egy rendes burbakista matematikus az "Egy komplex számnak két négyzetgyöke van." kijelentés után már kérné is az indexedet. Ő ragaszkodna hozzá, hogy nincsen egy komplex négyzetgyök függvény, hanem sok-sok komplex négyzetgyökfüggvény értelmezhető, a komplex síkot egy eléggé tetszőleges, önmagát nem metsző görbe mentén a 0 és a végtelen között felvágva.
(Valamint kiterjeszthető a négyzetgyök-függvény Riemann-felületre, amit úgy kapsz, hogy kétszer veszed a felvágott komples síkot, a vonal mentén az alsót a felsővel összeragasztod, úgy, hogy az alsó balpartjához a felső jobbpartját, és fordítva. Ekkor az "alsó 1" gyöke lesz pl. 1, a "felső 1"-é -1.)

Számomra matematikailag ez helyes.
-62 = -6^2 = -6*-6 = (-6)^2 = 36 <> -(62) = -(6^2) és semmiképp sem -6*6

Én most azt gondolom, hogy fogjuk rá a hülye Microsoftra ezt is: https://bz.apache.org/ooo/show_bug.cgi?id=26755, illetve onnan tovább: http://support.microsoft.com/hu-hu/kb/132686/en-us

11(!) éve nyitott bug az OpenOffice-ban, ami alapján a hülye precedenciát az Excelből vették át kompatibilitási okokból.

A válasz röviden: mert csak. Elismerik, hogy félrevezető, mert matematikailag nem helyes, de csak workaround-ot javasolnak.

--

Nem jó megoldás... mi van, ha scriptezve van a táblázat, és on-the-fly állítja elő kódból a cellafüggvényt? Akkor mikor történjen meg a javítás, amikor a makró értéket ad a cellának? És mi van, ha visszaolvassa? Tároljuk el neki azt is, amit berakott, csak hogy visszakaphassa (mondjuk egy read-modify-write művelethez), vagy a javítottat adjuk vissza (ekkor ugye másképp fog viselkedni a két környezet)? És mi történjen, ha az editorban valaki beleír a cella tartalmába (a függvénybe)? Azt "antikonvertáljuk" a makrónak?
Szóval this is a can full of worms...

A kérdésed - hogy miért van különbség az implementációkban - szerintem jogos és érdekes!

Hogy fokozzam a hangulatot, a kiértékelési sorrend sem stimmel:

Excel: 2^3^2 = 64
Holott: 23(sup)2(/sup)=512

:)

A hagyományos papíralapú jelölésrendszerben (ahol a kitevő följebb csúszik) teljesen logikus a hatványozást jobb-asszociatívként definiálni. A balról zárójelezett verzió ugyanis emeletes hatvány helyett sima egyszintű hatványként is felhírható, hiszen
(((a^b)^c)^d)^e = a^(b*c*d*e)

Logikus tehát, hogy a függőlegesen helypazarló emeletes hatvány zárójelezés nélkül pont azt jelentse, amire nincs egyszerűbb írásmód.

A számítógépes írásmódban pedig érthető, hogy áthozzák a megszokott koncepciót. Habár ha ez a jelölésmód jelent volna meg elsőre, talán nem lenne ilyen könnyű döntés hogy melyiket is válasszuk. Hiszen bármelyiket is választjuk, ha a másikra van szükség akkor zárójelezni kell, így "átlagosan" nem nyerünk vagy veszítünk a leírás bonyolultságán egyik vagy másik hozzáállással. És mint látjuk, ez egy újabb terület ahol nem egységes a viselkedés, <irónia>hurrá!</irónia>

Ha az A1 cella értéke -6, akkor a B1 cellába írt A1^2 képletnek mi legyen az eredménye?

A1^2-be A1 helyébe beírjuk a -6-ot. Ha nem is ugyanaz az eset, annyira azért talán nem különböző.
Csak arra próbáltam volna rávilágítani, hogy a táblázatkezelők a -6 -ot egy egységként kezelik, nem pedig (-1)*6-ként. Ugyanúgy az A1 mezőt is egy egységként kezelik.
Szerintem ez lehet a ráció.

A négyzetre emelés függvény nem csinálhat mást, mint a mindenki által egyetértett definíció szerint négyzetre emel, és így a -6-ból 36 lesz. Senki sem veti fel, hogy a -6 négyzete esetleg -36 lenne. És itt adott egy szám, ami a -6, és ezt kell négyzetre emelni. Az, hogy egy másik cellából jön az érték, teljesen egyértelművé teszi a műveletek elvégzésének sorrendjét (először kell megalkotni a -6-ot, aztán ezt négyzetre emelni). A -6^2 jelölésben ez a sorrend nem egyértelmű, erről szól a vita. Az A1=-6; B1 = A1^2 jelölés viszont, pont mintha zárójeleznél, az értelmezési sorrendet egyértelműsíti.

A hatása ebben az esetben kétségtelenül ugyanaz, mintha a "-6" egyetlen token lenne.

Azért nem tartom valószínűnek, hogy egy token - Excel forrása nincs meg -, mert szerintem valamivel bonyolultabb úgy megírni a parsert, hogy a "-" prefix része a konstansnak, és még van prefix operátor is. De ez csak tipp.

Ez nyilvánvalóan csak 36 lehet.

A helyettesítés a jelentésre, konkrét értékre történik; vagy ha csak bután szintaktikailag helyettesítesz, akkor pedig zárójelezni kell, tehát (-6)^2.

Ha az A1 cella értéke 1+5, akkor sem merül fel a lehetőség, hogy a helyettesítés után ebből esetleg 1+5^2 = 26 lenne, ez nyilván baromság.

Vesd össze C-ben a #define cuccal, ami csak szintaktikailag helyettesít:
#define A1 1 + 5
#define B1 A1 * A1
Na ez tök hülyeség lesz [1 + 5 * 1 + 5 = 1 + 5 + 5 = 11], ezért tanítják, hogy a #define során zárójelezni kell:
#define A1 (1 + 5)
#define B1 (A1 * A1)
Ez már 36.

Feldobnék egy kissé új témát. Fent már érintőlegesen felhoztam.

Mit jelent az unáris (tehát nem két szám közé, hanem egy szám vagy változó elé írt) mínusz jel? Nullából vonunk ki, vagy mínusz eggyel szorzunk?

A -6 az a 0-6, vagy a (-1)*6 rövid alakja?

A -x az a 0-x, vagy a (-1)*x rövid alakja?

Fent sokan az egyiket, sokan a másikat említitek, és valószínűleg legtöbbeteknek fel sem tűnt a kettősség.

Szerintem a nullából kivonás a helyes válasz, és erre két érvem van.

Az egyik: a negatív számokat úgy is tudod definiálni, hogy szorzás műveleted még nincs is. Esetleg nem is lesz. (Vagy például egy A mátrixhoz tudsz készíteni -A mátrixot, a nullmátrixból kivonva, de mi lenne az a "-1" mátrix, amivel megszoroznád? Vigyázz: nemcsak négyzetes lehet a mátrix. Vagy bármilyen algebrai csoport, ahol csak egyetlen műveleted lesz, amit összeadásnak hívsz, és az arra nézve az "a" elem inverzét "-a"-ként jelölöd.)

A másik: a (-1)-gyel való szorzás az egy önmagába harapó definíció. Mi a -6? Hát (-1)*6. Oké, de akkor mi a -1? Hát az pedig (-1)*1. Jó, de akkor mi a -1?

Szerintem a -6 számot -6-ként kell kezelni.
Az érvem: még (egyetemen) algebrából tanultunk valami olyasmit, hogy hogyan lehet felépíteni axiomatikusan a természetes számokat, majd persze ezekből a többi számhalmazt. Abban volt egy olyasmi fogalom, hogy "rákövetkező", amelynek van néhány tulajdonsága, miszerint minden számnak pontosan egy rákövetkezője van és ha két szám rákövetkezője megegyezik, akkor a két szám is megegyezik. Ekkor elegendő az 1-es számot "definiálni". A kettő az 1-nek a rákövetkezője, és így tovább.
Ezekből az axiómákból (ill. amiket kihagytam) a kommutativitás, asszociativitás is levezethető.

Szóval ezzel csak azt akarom mondani, hogy nem feltétlen kötelező ennyire "axiomatizálni" a dolgokat, a -6-ot lehet egyszerűen -6-ként kezelni, mindenféle plusz körmönfont definíció nélkül.

Nem értelek.

Van egy számom, x-szel jelölöm. Franc se tudja, hogy mennyi. Lehet, hogy tizenhét egész három tized. Szükségem volna a "-x"-re. A _definíció_ szerint mit csináljak: vonjam ki nullából, vagy szorozzam meg -1-gyel, vagy valami más?

Nem látom, hogy ezt megválaszoltad volna.

Kicsit komolyabbra fordítva a szót: matematikailag szerintem édesmindegy, hogy a -x az az x -1-szerese vagy pedig 0-ból kivonva az x-et - mindkettő ugyanazt eredményezi (műveleti tulajdonságokat is beleértve).

Az, hogy a táblázatkezelők hogyan kezelik ezt, más tészta, az már a programozó egyéni hülyesége döntése.

"Ha egy táblázatkezelőben beírom ezt: =-6^2, miért 36 az eredmény?

"(A műveleti sorrend értelmében a hatványozás előbb végzendő el, mint a -1-gyel való szorzás, márpedig itt a '-' jel azt jelenti. A kérdésem csak annyi, hogy mi a ráció ugyan ebben, hogy nem a matematikának megfelelő módon értik, hanem mintha (-6)^2-t írnék.)"

A matematikaban a '-' jel ket jelentessel bir megallapodas szerint:
1) amikor azt fejezi ki, hogy egy valos szam negativ, azaz kisebb 0-nal
2) muveleti jel: a kivonast ertjuk alatta

pl. egy negativ szam kifejezheto (matematikaban hasznalatos jelolesrendszerrel):
- ellentett kepzessel: -a = (-1 * a) : itt a '-' jel magat a negativ szamot jelenti
- kivonassal: -a = (0 - a) : itt a masodik '-' jel a kivonast mint matematikai muveletet jelenti, az elso pedig az 'a' szamot mint negativ szamot reprezentalja

Az, hogy egy talblazatkezelo, programozasi nyelv hogyan ertelmez egy adott jel sorozatok - az implementacio kerdese. Hogy miert ugy implemetaltak, ahogy; nos azt maguk a fejlesztok tudjak megmondani csak. Mivel a tablazatkezelo alkamazasokat, de altalaban minden alkalmazast, emberek kezelnek, szamukra az iskolaban tanult ertelmezes a megszokott es a legkonnyebben alkalmazhato.

Ha a (-6) -ot szorzataira bontod, akkor tagonként kell négyzetreemelni
és úgy összeszorozni. Vagyis:

ha (-6) = (-1)*(+6)
akkor (-6)^2 = (-1)^2 * (+6)^2

Ha eddig érthető, akkor rendben van, csak el kell végezni a műveletet.
Ha nem érthető, akkor abbahagyhatjuk.

> Sol omnibus lucet.

Ez triviálisan igaz, de nem a kérdésre válaszoltál, mert már az első sorban "hibát" vétettél. A kérdés pont arra megy ki, hogy a -6 bezárójelezendő-e egyáltalán vagy sem. Az Excel szerint igen, a matematikai jelölés szerint nem, programnyelvek és egyéb eszközök között szintén változó, univerzális válasz tehát nincs. Tök igaz, hogy (-6)^2=36 és -(6^2)=-36, de pont az a kérdés, hogy melyiket szeressük, és erre pont nincs jó válasz.

--

Azt akartam megmutatni, ha egy ábrázolást többféleképpen értelmezünk,
akkor az adott értelmezéshez kell igazítani az ábrázoláson elvégzett
műveletet is. Az nem megy, hogy bevezetjük a baloldali közlekedést,
egyelőre csak a teherautók számára.

Ebből az aspektusból a példa szerintem jó.

> Sol omnibus lucet.

-6 egy szám, amihez nem nyúl. -6*-6=36

Amit te szeretnél: -(6^2)

-fs-
Az olyan tárgyakat, amik képesek az mc futtatására, munkaeszköznek nevezzük.
/usr/lib/libasound.so --gágágágá --lilaliba

Akkor légyszíves küldj egy bugreportot a komoly matematikai szoftverek szerzőjének, mert azokban egységesen -6^2=-36 (SAGE, Mathematica, GP-PARI, Maple, Maxima, GNU R, stb. kipróbálva). Meg általános és középiskolában is. De biztos az Excel jobban ismeri a matematikát, meg a különféle (nem matematikai) programozási nyelvek (amik persze olyan precedenciát használnak, amilyet óhajtanak, az ember meg alkazmakodjon az eszközhöz, ez világos), de ez a matematikát nem befolyásolja.

Meg ide is beírhatom, hogy gondolj légyszíves a -x^2 függvényre te is.

Vagy gondolj bele, hogy ha egyértelmű, akkor miért kell bezárójelezni a (-1)^n kifejezést?

Vagy nézd meg az angol/német wikipédia műveleti sorrend lapját (ezen a két nyelven kifejezetten van ilyen példa)!

Vagy olvasd végig ezt!

Vagy olvasgasd a kicsit lentebb hivatkozott matekkönyveket általános iskolától egyetemi matekszakig bezárólag!

Vagy kérdezz meg egy matematikust (bár én is azzal foglalkozom, de azért meg is tettem, hátha egész életemben hülyeséget tanultam/tanítottam, sose lehet tudni)!

Szerintem hagyd. A matematika (legalábbis ez az alapvető része mindenképpen) nem értelmezés kérdése, teljesen egyértelmű a szabály. Még az általam fentebb idézett Microsoft cikk is elismeri, hogy az Excel nem e szerint működik, és ez nem a megszokott precedencia, ez a része is tök egyértelmű.

--

Mint a fentiekben írtam, vegyes a nézetem, középiskolában a -6 jellegű önmagában álló előjeles számot soha nem tettük zárojelbe, amikor négyzetre emeltük. Fellapoztam régi matekfüzeteimet. De ez nem mérvadó, a matematikusok tuti jobban tudják. Bár nem szerencsés, hogy matekórán ezek szerint tévesen tanították.
Én mindenesetre eddig különbséget tettem az

eredmény = -6^2 (előjelként a mínusz)
és a
eredmény = 0-6^2 (aritmetikai műveletként a mínusz)

De a jelen téma hatására újra kell gondoljam ezt. Szerencsére még nem okozott eddig félreszámolást.

A szintén fentebb írt shift precedencia viszont komolyabb ügy számomra, azzal sajnos már adtam ki a kezeim közül téves értéket.

Szerintem pont ezért teszik ki a zárójelet, hogy ne keletkezhessen ilyen vita. :))
Amúgy az első eset:
"eredmény = -6^2 (előjelként a mínusz)"
igazából a² (a=-6), egy művelet;

a második eset
"eredmény = 0-6^2 (aritmetikai műveletként a mínusz)"
a-b² (a=0, b=6), két művelet, a hatványozásé az elsőbbség.

--
Debian - The "What?!" starts not!
http://nyizsa.blogspot.com

Sosem tesznek ki felesleges zárójelet. Érdekes módon olyat nem fogsz találni, hogy (a*b)+c. Azt miért nem akarják egyértelműbbé tenni soha? Talán mert a szabály egyértelmű önmagéban is?

És ha így kellene érteni, hogy magyarázod a -x^2 parabolát? Ott is előjel!

Másrészt akár te, akár más hozna nekem egy nyomorék példát, hivatkozást, akármit, ami ezt az értelmezést támasztja alá? Én elég sokat összegyűjtöttem az enyém igazolására. Ellenkezőleg még nem láttam semmit az ég adta világon.

És végül egy konkrét, bárki által ellenőrizhető leírása a szabálynak (nem könnyű ilyet találni, pedig nyilván kismillió helyen le van írva, de rosszul kereshető): Tussy-Koenig: Prealgebra (5th edition) 174-175. oldal. Vagy egy másik (link nincs): Allen R. Angel, Elementary Algebra for College Students 8/E; Chapter 1, Section 9, Objective 3. Ez már elég? Várok akár egy darab ellentétes dolgot leíró hivatkozást!

Nem azt írja, hogy a -a^n kivétel, hanem hogy kivételesen sok informatikai implementáció és programnyelv nem úgy értelmezi, ahogy a matematikai szabály szerint kéne. Ezért amelyik implementációnál bizonytalanok vagyunk, ott tegyünk zárójelet. De a matematikában nem kell, olyat nem is ír.

Sosem tesznek ki felesleges zárójelet.

Klasszikus, kicsit hasonló eset: harmonikus rezgéseknél a sin omega*t (legyen sin wt - a w hasonlít a kis omegára).
Mindig úgy tanítjuk, hogy pl. a kitérés-idő függvény A*sin wt. Nyilván úgy értendő, hogy kiszámolom az wt értékét, és annak veszem a szinuszát (nyilván radiánban). A számológépem ilyen formán beadva az w-nak számolja ki a szinuszát és azt szorozza be t-vel. Sőt, még matematikában is a "sin 2x" a "sin(2x)"-et jelenti, nem pedig a "(sin 2)x"-et.

Mikor pár éve a diákoknak nem jött ki a megfelelő eredmény a rezgőmozgás esetén, azóta inkább kiteszem a zárójelet, még akkor is, ha épp felesleges (matematikailag).

Olvasd föl légy szíves, szájjal, hangosan, amit írtál!
"mínusz hat a négyzeten"
Szerintem ez 36.

--
Debian - The "What?!" starts not!
http://nyizsa.blogspot.com

Itt két vita folyik egyszerre:

Az egyik az, hogy egy adott környezet szintaxisa miért olyan, amilyen.
Ez egy meddő vita, mert a szintaxis a tudatunktól független objektív valóság.
Nem állunk neki filózni azon, hogy a 'C' fordító miért úgy kéri a kódot,
ahogy kéri. MEGTANULJUK hogyan kéri és kész. Ez nagyjából válasz a
topikindításra.

A másik az, hogy egy negatív számot hogyan definiálunk: (A) a nullától való
(irányult) távolsággal, vagy (B) abszolút értékének (-1)szeres szorzataként.

Én az (A) esetre hajlok annak geometriai vetülete miatt, és mert (B) esetben a
(-1) önálló definícióját elég nehéz lenne megadni, bár az én nézetem ebben
a kérdésben inkább filozófiai, mint matematikusi.

> Sol omnibus lucet.

Az elsőn nincs vita. Arra irányult a kérdésem, többen beírták, hogy ez így elég elterjedt precedencia a programnyelvek esetében. Megköszöntem a választ, nem tudtam, hogy ennyire általános.

A vita arról folyik, hogy kell érteni -6^2-t a matematikában. Az egyébként hogy a -6-ot 0-6-nak, vagy (-1)*6-nak 'definiálod', édesmindegy, nem lesz különbség.

Én a kérdést úgy értettem, hogy van-e annak valami praktikus oka, hogy bár matematikában van egy megszokott (és azt hiszem, nagyjából általánosan elfogadott) jelölésrendszer, amiben -62=-36, az excelben nem így van. Amiből jó kis flamewar lett, de azért a legvalószínűbb ok leszűrhető: az informatikusok jelentős része nem tudja a matekban szokásos eredményt, és még az is lehet, hogy matekban sem mindenki egyformán használja (bár, nyomtatásban ilyet még nem láttam).

Adott esetben azt is elképzelhetőnek tartom, hogy ez a kettő különböző eredményt adjon:


#1
B := -6^2

#2
A := 6
B := -A^2

Mégpedig abban az esetben, ha a lexikális elemző az elsőnél egy darab tokenként (type=integer) adja vissza a -6 -ot, a másodiknál viszont két darabként (1. type=operator, 2. type=identifier) Ha így lenne, akkor az első esetben semmiféle precedencia-összehasonlításra nem kerül sor: van egy szám azt kell hatványozni, és kész.

az alapveto felteves itt a kovetkezo: -6^2 egyszerre (-6)^2 es -(6^2) is, az hogy melyik a ketto kozul arrol megoszlanak a velemenyek es csak vizsgalat utjan tudjuk kideriteni, ezt pedig Schrodinger ur mar felvetette, kar vitatkozni rola;)