- Apple Watch
- Apple iPhone 16 - ígéretek földje
- Samsung Galaxy Watch6 Classic - tekerd!
- Mobil flották
- Vékonyabb lett, jobb kamerát kapott, de az akku maradt a régi: itt a Fold7
- iPhone topik
- Android alkalmazások - szoftver kibeszélő topik
- Samsung Galaxy A54 - türelemjáték
- Körvonalazódnak az S26 Edge kamerarészletei
- Xiaomi 13T és 13T Pro - nincs tétlenkedés
Új hozzászólás Aktív témák
-
flugi
tag
Oké, most érthetően kifejezted magad, elnézést kell kérnem a gyanúsításért. De ha már kekeckedünk, legyünk precízek.
Egy pl. C/C++ nyelven kifejezett x=a+b+c értékadásnak pontosan egy megoldása van, mivel az összeadás műveletek azonos prioritásuk miatt jobbról balra értékelődnek ki, amit nem rendezhet át se fordító, se processzor az adatfüggőségek miatt.
Ha arra hivatkozunk, hogy az összeadás kommutatív, tehát tetszőleges sorrendben jó az összeadás, akkor az a matematika a maga valós, racionális számaival, ahol az x=a+b+c pontosan egyetlen megoldása van, de ugye az most nem játszik, most a lebegőpontos számok játszanak.
Ha tehát úgy fogalmazol, hogy az a+b+c összeg operandusainak tetszőleges átrendezése más-más eredményt adhat lebegőpontos számoknál, akkor pontos vagy. Ez ugye akár 3*2*1=6 lehetséges sorrend, viszont ha feltételezzük, hogy az összeadás kommutatív (IEEE kompatibilis implementációnál például az), akkor 3 féle lehetséges eredménye van.
Összefoglalva: csak abban tévedsz, hogy az utasítások általánosságban átrendezhetőek. Ez nem így van, például x86-on C/C++-ban nem. Vegyük észre, hogy ha sérül az asszociativitás a műveletre nézve, akkor a gépi kódú lépésekre bontás szintjén a kommutativitásra hivatkozva sem rendezhetünk át utasításokat, mert potenciálisan sértjük az asszociativitást. Az ADD utasítás két operandusát szabad csak felcserélni, és azt is elvileg csak olyan architektúrán, ahol az implementáció kommutatív.
Kész vagyok viszont elismerni az igazad, ha tudsz mutatni olyan nyelvet, fordítót, és architektúrát, amit használnak is valamire, és ahol az x:=a+b+c kifejezése nem determinisztikus, mert én nem ismerek ilyet.
-
flugi
tag
Természetesen az a+b+c=x egyenletnek (amennyiben x ismert, és a,b,c értékekre kell megoldani) végtelen sok megoldása van. Három megoldása egyetlen értelmezésben sem lehet, a kötött operandusok számától függően vagy pontosan egy megoldás van, vagy végtelen sok.
A másodfokú egyenlet megoldásakor sem azt mondja a programozó, hogy kérek egy megoldást. Konstruktív megoldást kell adjon a programozó a másodfokú egyenlet megoldására. Konkrétan a x1 := (-b + sqrt(b*b - 4*a*c))/(2*a) értékadással konkrétan az egyik, x1 := (-b - sqrt(b*b - 4*a*c))/(2*a) értékadással konkrétan a másik értéket számolják ki (pozitív diszkrimináns esetén).
Matlabban van [x1 x2] = roots([a b c]) függvény, ami lényegében pont ez, csak komplex számokkal dolgozik, és konkrétan mindkét megoldást visszaadja. Nem csak random az egyiket.
Ha messzemenően jóindulatúan kezelem az általad elmondottakat (amire nem sok okom van, mert több jel utal arra, hogy nem vagy képben, mintsem hogy túl bonyolult fogalmakra utalsz azok megnevezése nélkül), akkor azt mondhatom, hogy az iteratív közelítő eljárások, genetikus algoritmus implementációk hasonlítanak arra, amit körvonalazol, de ezeknek a módszereknek semmi értelme zárt alakban kifejezhető értékek keresésekor, és a példa még mindig a másodfokú egyenlet volt. Ráadásul ezeknek a módszereknek a lassúságuk az egyik fő ismérvük.
-
flugi
tag
a példa értelmezése szerint az egyenletrendszernek egyetlen, két értékű megoldása van, az 1 és a -1 páros. Egyetlen pár, amiben két valós szám van. Egyetlen más pár sem megoldása az egyenletrendszernek. Nincs alternatíva.
Ez a matematika. Valós számok, racionális számok, egész számok. Nem float típus típusértékhalmaza, hacsak külön nem jelöljük, mivel ezek a halmazok nem alkotnak csoportot vagy gyűrűt. Nem jelölte a példa. A számelméleti axiomák nem teljesülnek a számítástechnikai típusokra, speciális fogalmakat kell hozzá használni.
Más: a 0.999 leírva nem egyezik meg a 0.999... kezdetű végtelen törttel, és én természetesen nem gondolhattam a végtelen törtre, ez a kontextusból nyilvánvaló volt. A 0.999 = 999/1000 racionális érték. A float és double értékek mindegyike egy racionális szám, és mint ilyen, az 1-es érték, és a 0.999 kezdetű float érték különböző.
Egyszálú igényes CPU programok esetében lehet gondoskodni a helyes eredmény erőltetéséről, ami az esetek jó részében elegendő a jó megoldáshoz. Vannak olyan több hónapos futási eredmények klasztereken, ahol az eredmény sokadik tizedesjegyének pontossága kedvéért fut a program a futásidő felében, mert azon a szakterületen ez a tizedesjegy éppen nagyon fontos. Ilyen esetekben a klasszikus "kisebb számokat adom össze először" hozzáállással már sokszor meg lehet oldani a determinisztikus helyes eredményt adó programot, máskor egyéb trükkökre is szükség lehet.
Schrödinger macskája pedig arról szól, hogy abban a kvantummechanikai modellben, ahol úgy fogalmazunk, hogy "összeomlik a hullámfüggvény" a megfigyelőtől, annak milyen vicces következménye egy olyan gondolatkísérlet, ahol direkt nem omlasztjuk össze egy darabig. A véletlengenerálás ebben a dologban egy (persze kihagyhatatlan, de) részletkérdés. Nem arról szól a Schrödinger macska, hogy nem lehet tudni, hogy él-e vagy nem, hanem hogy mikor mit lehet tudni, nyitás előtt és után. Pláne nem arról szól, hogy akár él, akár nem, mindkettő jó megoldás
-
flugi
tag
Schrödinger macskája annak köszönheti a népszerűségét, hogy furcsa, és sokan, köztük te is asszociatívan használják, vagyis "erről eszembe jutott" módon.
A példád irreleváns. Az egyenletrendszernek van két megoldása valós számokon, ez két konkrét megoldás. Megoldási elvektől függően tudok olyan aritmetikai kifejtést adni, amivel a végigszámolás (ami ugye, emlékszünk, tartalmaz gyökvonást is, a másodfok miatt, úgyhogy a példád ilyen szempontból kényelmes) helyes megoldásnak egy 0.9999999938782736 alakú megoldást fog adni 1 helyett. Nem az a probléma ugyanis, hogy magának az egyenletrendszernek hány megoldása van, hanem az, hogy tetszőleges megoldáshoz való eljutás, a konkrét kiszámolás lépései azok, amiken a számábrázolás miatt zaj van, kerekítési pontatlanságok ÉS számábrázolási határok. Akinek van teszkógazdaságos számológépe, az tudja, hogy gyökháromszor gyökhárom az 2.99999999. A drágábbak sem azért tudják, hogy 3, mert ennek kell kijönnie, hanem mert szerencsésebbek a kerekítési és számábrázolási kérdésekben. Nem véletlen, hogy az FPU 80 biten számolja a 64 bites double-t.
Abu azt mondta, hogy az baj, ha matekot végigszámolva hol 1, hol 0.999999 jön ki, és ilyen értelemben van több válasz ugyanarra a kérdésre. Ezt kreatívan kell félreérteni a válaszod kiindulópontjához, és még kreatívabban képzavarba verődve a Schrödinger cicájához eljutni.
-
flugi
tag
ez képzavar a javából. Abu állítása az volt, hogy tetszőleges aritmetikai kifejezés (akár több értékű is) determinisztikus, mivel a matematika átrendezési szabályai mentén masszírozott tetszőleges úton kapott végeredmény azonos. Ez a matematikában tényleg így van. Csak programozásban nem.
Schrödinger cicája pedig tartja az irreleváns tudományosnak szánt hivatkozások világrekordját, szoros versenyben a Gödel tétellel, és a relativitáselmélettel. Nem csoda, hogy itt is felbukkant
-
polika
senior tag
Bocs, most olvasom milyen pongyolán fogalmaz Abu, X postal korábban. Egyértelműen keveri a szezont a fazonnal (matematikai művelet, eredmény). Most már értem hogy te mire is válaszoltál, mea culpa, nem néztem contextusában a dolgot, de jogos hogy felhívtad rá a figyelmem. Nem veled van problémám hanem a korábban elhangzott pongyola megfogalmazással, amire te is reflektáltál.
-
polika
senior tag
Szerintem ne keverjük a matekot meg a fizikát, mert a Heisenberg féle valószínűségi tétel/ ill tágabb értelemben a kvantumechanika az csak a fizikai obszerváció matematikai modellje.
Az hogy nem elképzelhető egy olyan világ ahol egy okozatnak több eredménye is lehet azt pont a te kvantumechanikai példád cáfolja. Jelenleg a fizikusok nem tudják eldönteni hogy egy determinisztikus világban élünk, ahol minden oknak megvan a determinisztikus okozata, vagy egy nem determinisztikus világban ahol az okozat független az októl. Ez egy filozófia kérdés marad, per pillanat nincs egyikre sem bizonyíték
Továbbá miért ne lehetne egy matematikai műveletnek több eredménye? Ha az axioma rendszered úgy van megírva akkor lehet. Az hogy az adott axióma rendszered igaz, vagy nem az teljesen más tészta, de szintén az adott axióma rendszerben eldönthetetlen dolog (lásd Gödel tételei).
Egyébként ez az irány teljesen offtpoic, mert a probléma lényege nem a matekról szól, hanem arról, hogy nincsen egységes standard adott feladatra. Per pillanat lehet többféle közel azonos eredményt adó, módszert használni egy adott feladatra. A vita csak arról szól, hogy a technikailag drágább, de matematikailag icipicit pontosabb, vagy a pontatlanabb de technikailag olcsóbb megoldást használják. Ettől függetlenül, mindkét módszer eleve csak egy adott bit értékig pontos/pontatlan, mert a számábrázolás eleve kódolja a TRUNCATE alapú kerekítést 32 vagy 64 bitmélységnél. Ergo a vita cost/benefit jellegű, és elsősorban nem matematikai problémáról van szó szerintem
-
Abu85
HÁZIGAZDA
A másodfokú egyenleteknek több megoldásuk van, de nem több eredményük. Ha a megoldásokkal elvéghez a részműveletek, akkor mindig ugyanazt az eredményt kapod, vagyis az egyik oldal egyenlő a másikkal.
(#12) menpee: Igen. Megoldásuk lehet több, de az nem egyenlő az eredménnyel. Ha behelyettesíted a megoldásokat, akkor az egyenlet mindegyik megoldással igaz lesz, azaz egyik oldal egyenlő a másik oldallal.
-
QG
tag
A "matematikailag helyes" kerekítés igazából nem jó:
(A+B+C)/2==A/2+B/2+C/2 ugye ismerős matematikából. Behelyettesítve 1, 2, 3at:
(1+2+3)/2=3
Ha előbb osztas és kerekítesz:
1/2+2/2+3/2 --> kerekítve 1+1+2=4 Nyilván rossz.Ezért találták ki azt már régen, először könyvelésben, aztán a könyvelőprogramoknál, hogy párosra kerekítünk:
1/2+2/2+3/2 --> kerekítve 0+1+2=3 Ez meg a jó eredményt adja.Szóval a kérdéskör bonyolultabb, mint az alsó tagozatok kerekítési szabályok. Ha valakit bővebben érdekel:
http://docs.oracle.com/cd/E19957-01/806-3568/ncg_goldberg.html
Új hozzászólás Aktív témák
Hirdetés
- Azonnali készpénzes GAMER / üzleti notebook felvásárlás személyesen / csomagküldéssel korrekt áron
- Eladó ANDROID TV box 4/64GB tárhely / 12 hónap jótállás
- Windows, Office licencek kedvező áron, egyenesen a Microsoft-tól - Automata kézbesítés utalással is!
- ÁRGARANCIA! Épített KomPhone i5 12400F 16/32/64GB RAM RX 9060 XT 8GB GAMER PC termékbeszámítással
- Telefon felvásárlás!! Xiaomi Redmi Note 10, Xiaomi Redmi Note 10s, Xiaomi Redmi Note 10 Pro
Állásajánlatok
Cég: Promenade Publishing House Kft.
Város: Budapest
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest