Kezdőoldal » Tudományok » Egyéb kérdések » Mi a ternáris xorzás inverze?

Mi a ternáris xorzás inverze?

Figyelt kérdés

Jelöljük a ternáris xorzás műveletet így: x xorter y, ahol x és y legfeljebb valós szám, és a műveletet tritenként végezzük el.

Pl.:

0 xorter x = x

1 xorter 1 = 2

1 xorter 2 = 0

2 xorter 2 = 1

Ill. az is elég, ha meg tudjuk mondani milyen v szám elégíti ki az x xorter ( v xorter y ) = y egyenlőséget.



2019. márc. 24. 21:35
 1/8 anonim ***** válasza:
xorter vazze :) Szerintem maradjunk inkább a mod 3 összeadás névnél, az kevésbé hangzik úgy mintha intergalaktikus űrlényekről beszélgetnénk. Ennek ismeretében remélhetőleg ki tudod találni az inverzét is.
2019. márc. 25. 11:24
Hasznos számodra ez a válasz?
 2/8 anonim ***** válasza:

A ternáris félrevezető mert 3 változós függvényt jelent, ez meg 2 változós.

Először is annak se feltétlen kellene teljesülni, hogy létezik inverz függvénye, hiszen a bijektív függvények invertálhatóak.

Műveleti táblákkal felírva:


Maga a függvényed:

0,0 -> 0

0,1 -> 1

0,2 -> 2

1,0 -> 1

1,1 -> 2

1,2 -> 0

2,0 -> 2

2,1 -> 0

2,2 -> 1


Ez alapján írjuk fel behelyettesítve bal és jobboldal szerint is:


0,0 -> 0

0,1 -> 1

0,2 -> 2

1,0 -> 2

1,1 -> 0

1,2 -> 1

2,0 -> 1

2,1 -> 2

2,2 -> 0

-----------

0,0 -> 0

0,1 -> 1

0,2 -> 2

1,0 -> 0

1,1 -> 1

1,2 -> 2

2,0 -> 0

2,1 -> 1

2,2 -> 2


Látható, hogy létezik inverze, de külön van bal és jobb oldali inverze, mivel a kettő nem pontosan ugyanaz.

2019. márc. 25. 12:43
Hasznos számodra ez a válasz?
 3/8 anonim ***** válasza:

Bocsi a legalsó műveleti tábla nem jó.

Így jó:

0,0 -> 0

0,1 -> 2

0,2 -> 1

1,0 -> 1

1,1 -> 0

1,2 -> 2

2,0 -> 2

2,1 -> 1

2,2 -> 0

2019. márc. 25. 17:24
Hasznos számodra ez a válasz?
 4/8 A kérdező kommentje:

Ha egy műveletre azt mondom, hogy bináris vagy ternáris, az szerintem azt jelenti, hogy a műveletet bitenként vagy tritenként végezzük el. Míg ha azt mondom, hogy binér vagy ternér, az pedig azt jelenti, hogy két-, ill. hárombemenetű. Ezért választottam ezt a nevet. A tetranáris xorzás xortet lenne.

Köszönöm, hogy kiszámoltad ezt a két táblázatot nekem, viszont mivel ezt valósokon szeretném értelmezni, jó lenne, ha ki tudnánk fejezni más ternáris ((logikai)) műveletekből (pl. a bináris xorzás a vagyolás és az éselés különbsége, inverze önmaga). A ternáris egy fokkal bonyolultabb. Esetleg van bármi ötleted Neked vagy bárki másnak?

2019. márc. 25. 19:08
 5/8 anonim ***** válasza:

"Ha egy műveletre azt mondom, hogy bináris vagy ternáris, az szerintem azt jelenti, hogy a műveletet bitenként vagy tritenként végezzük el."...


Ezt nem tudom, honnan veszed.

[link]


"Köszönöm, hogy kiszámoltad ezt a két táblázatot nekem, viszont mivel ezt valósokon szeretném értelmezni"...


Nem tudom honnan veszed, hogy automatikusan létezik rá valami formula, olyan mint a bináris xor, és , vagy műveleteknél. Például a kardinálszinusz függvény integrálja nem fejezhető ki zárt alakban, de mégis létező függvény. Továbbá A 70-es években a fizikában azt tartották, hogy egy fizikai elméletben olyan képletek/ függvények legyenek melyek leírhatóak szépen zárt alakban, ma már tudjuk, hogy ez tarthatatlan, csomó minden csak numerikusan számolható ki, nincs rá semmi képlet, a modern fizika tele van vele.

Ami idevág a kettes számrendszerben a kettes komplemens képzés, ezt konkrétan tanították az egyetemen, hogy milyen szépen kijön, hogy tudom képezni egy egész vagy nem egész fixpontos szám ellentettjét. Azonban ezt lehet általánosítani más számrendszerre is, lehetne ennek megfelelően ábrázolni 10-es számrendszerben is akár, csak ott már nem lehet így kioptimalizálni mint 2-es számrendszerben gyakorlatilag bitműveletekkel. Kivéve 2 hatványa számrendszernél (4,8,16,32 ...), mivel ezekben könnyű az átjárás 2-esből oda vissza, mint van az a hack hogy 256-os számrendszerben, ami kvázi 2-esbe van bizonyos megkötésekkel. Bit Bájt történet ...

Vajon miért pont a 2-es számrendszert válaszolták a gépek hardveres szintjén?

Egyébként meg a kérdésre konkrétan : veszed értelem szerűen hármas számrendszerben a hármas komplemensét, érdemes a minimálisat venni a legnagyobb helyi értéknek a szám mérete függvényében és elvégzed számjegyenként na és ezt mind a két számra majd a "xorter" műveletet vagy az inverzét meg elvégzed. Ennyi.

2019. márc. 25. 23:21
Hasznos számodra ez a válasz?
 6/8 anonim ***** válasza:

"veszed értelem szerűen hármas számrendszerben a hármas komplemensét, érdemes a minimálisat venni a legnagyobb helyi értéknek a szám mérete függvényében és elvégzed számjegyenként na és ezt mind a két számra majd a "xorter" műveletet vagy az inverzét meg elvégzed. Ennyi."


Ez kifejtve jobban:


Előszóban:

Néztem a hármas komplenes képzést, ronda, ronda a "tritekre" általánosított xor művelet is. Nincsenek olyan jó numerikus tulajdonságai mint a bináris megfelelőjének. A hármas számrendszerbeli hármas komplenes képzés is rondább mint a kettesbe a kettes komplemens, eddig 10-esbe néztem meg 16-osba hogy működik. Ez mivel 3-as számrendszer páratlan 2 tartományra szedi szét az aktuális egész számok véges részhalmazát (amit persze ki lehet terjeszteni nem csak egészekre). Ezért kétféleképpen lehet hármas komplenest képezni, vagyis vannak komplenes reprezentációk melyek önkényesek hogy melyik tartományba tartoznak, de ez az egész számok egy tetszőleges részhalmazában arányában csak egy kis részét érinti, minél nagyobb az intervallum annál kisebb arányban érintettek a számok. A "szebbiket" válaszoztam a két lehetséges komplenesképzés közül.


Továbbá:

Az előjelektől meg kell szabadulnunk, de továbbra se váltunk meg a negatív számoktól, erre van a komplenes képzés ahol első közelítésbe egész számokat tekintünk csak és minden számnak egyféle minimális hosszúságú string reprezentánsa létezik. Kettes számrendszerben ez szépen kijön, mivel a 0 előjelbit a nemnegatív 1 a negatív előjelbitnek felel meg és a nulla szám is egyféleképpen van ábrázolva (eltekintve hogy tetszőleges hosszúságba ábrázolható, ezért csak a minimális hosszra értendő. Szóval 10(2) nem egyenlő a 00(2)-val, mintha csak sima előjelbit lenne.)

A hármas komplenesnél nem ennyire könnyen látszik, ott 0-val vagy 1-el kezdődhet ha nemnegatív, ha negatív akkor meg 1-el vagy 2-vel.

Az aktuális nemnegatívra meg negatívra particionálandó legkisebb tartomány a szám értékétől függ. Ha nulla a szám akkor simán 0, ha pozitív akkor sima helyi érték képzésnél ha 2-vel kezdődik akkor bővíteni kell a tartományt azaz egy 0-át elébe kell rakni a legnagyobb helyi érték helyére. Ha 1-el kezdődik akkor itt van két helyes lehetőség ahogy mehet a reprezentáció, én csak az általam ítélt "szebbiket" írom le. Meg kell nézni ekkor hogy lexikografikusan kisebb e mint a szám hosszúságával megegyező csupa 1-es, ha nem akkor a szám elé kell írni egy 0-át. Akkor ha a szám negatív kell adnunk egy becslést a minimális komplenetert képezendő tartományra (de helyes túl is becsülni persze, vagy adhatunk egy fiksz biztonsan nagyobb tartományt, de most csak a minimális tartományra gyúrunk). A tartomány 3 valamelyik pozitív egész hatványa. Logaritmussal becsülhetjük, de megtehetjük azt is hogy átváltjuk az ellentettjét és megnézzük milyen hosszú lett. Utána meg az jön amit kettes komplenesnél negatív számok átváltásánál szokás, csak itt bonyolultabb az eljárás. A tartományt bejárjuk a jobb vége felől azaz ha a becsült tartomány 3^n akkor 3^n + szám amit átváltunk. Ezt meg kell nézni hogy ennek a képe nem e lógna bele a pozítív tartományba azaz lexikografikusan kisebb e mint a vele megegyező hosszúságú csupa 1-es, ha ez így lenne akkor bővíteni kell 3^(n+1)-re a tartományt ami megfelel azzal hogy egy 2-est raksz az elejére. Ha nem lógott túl eredetileg vagy ha túllógott eredetileg mindkét esetben kell végezni még egy túllógás ellenőrzést, mert lehet hogy negatív esetbe megint "túl vezérlet", hiszen ha negatív ugyan, de túlcsordult, akkor nem a megfelelő számot ábrázolja, ekkor megint bővíteni kell 3^(n+2)-re addig míg jó nem lesz. Azt hogy jó e ez akkor teljesül ha a 3^(n+x) + a szám képe komplenesképzés nélküli értelmezése = szám értéke egyenlőség teljesül.

A hármas komplenesben reprezentált szám értékének átváltása 10-esbe meg annyi, hogy ha csupa egyesnél lexikogarifuksan ha nem több akkor simán átváltjuk mintha nem lenne semmi komplenes, különben meg simán átváltjuk és kivonunk belőle 3^n-t ahol n a szám hossza az aktuális hármas komplenesben leírva.

Ez ugye csak egész esetbe van. Ha nem egész eset kell, akkor ugyanez a játék csak a prezízitás függvényében bővíted a számot és azt váltod át. Például ha a számod az 569/9 akkor az bővítés után kapod 569-et, viszont akkor a másik számot is ezzel kell bővítened, vagy pedig ha ez kevés a másik miatt akkor ezt a számot kell jobban bővíteni ugyanúgy mint a másikat. Egyéb esetben ahol végtelen harmadostörtek jönnének ki, szakaszos vagy nem szakaszos, na ott ugyanaz a helyzet mint a 10-es számrendszerben, ha valósakat adsz össze. Viszont ha bővítetted mert nem egész volt akkor az eredménynél ezt korrigálni kell ugye.

A xorter műveletnél egész esetben ha a két szám hármas komplenesbeli minimális hosszúságú képe nem egyezik akkor a kettő szám minimum hosszának a maximumára kell bővíteni a rövidebbet és úgy elvégezni, ha meg ennél a minimumnál hosszabb a képe akkor ezt a minimális hosszt kell megkeresni, mert különben nem lenne egyértelmű a művelet eredménye.


Egész pozitív esetekre példa:

a = 55851 és b = 1041

a xorter b = c

átváltom a számokat :

a = 02211121120(3) és b = 1102120(3)

A hosszuk nem egyezik meg ezért bővítem a hosszabbra a rövidebbet b=00001102120(3)

Ezután csak elvégzem "tritenként" a xorter-t.

a=02211121120(3)

b=00001102120(3)

c=02212220210(3) = 56802

Nézzük az inverzeket:

c balInverzXorter a

írjuk fel számjegyenként műveleti táblával:

0,0 -> 0

2,2 -> 0

2,2 -> 0

1,1 -> 0

2,1 -> 1

2,1 -> 1

2,2 -> 0

0,1 -> 2

2,1 -> 1

1,2 -> 2

0,0 -> 0


Dehát c balInverzXorter a = b = 02211121120(3) = 1041

b jobbInverzXorter c

írjuk fel számjegyenként műveleti táblával:

0,0 -> 0

0,2 -> 2

0,2 -> 2

0,1 -> 1

1,2 -> 1

1,2 -> 1

0,2 -> 2

2,0 -> 1

1,2 -> 1

2,1 -> 2

0,0 -> 0

b jobbInverzXorter c = a = 02211121120(3) = 55851


Legyen negatív szám is benne:

a = 40 és b = -2672

a = 01111(3) és b = 12100001(3)

Bővítés után:

a = 00001111(3) és b = 12100001(3)

c = a xorter b

c = 12101112(3) = -2632

(Nem részletezem annyira ki, sima behelyettesítés a művelet táblába itt is)

c balInverzXorter a = b és b jobbInverzXorter c = a itt is igazak.


Valós számokra meg gondolom már triviális az eddigiek alapján. Szóval ezt jelenti kirészletezve ami tegnap az utolsó szó volt, hogy "Ennyi", de még a valósakra nem is írtam le így szájbarágósan.

2019. márc. 26. 14:14
Hasznos számodra ez a válasz?
 7/8 anonim ***** válasza:

"Dehát c balInverzXorter a = b = 02211121120(3) = 1041"

Javítás : c balInverzXorter a = b = 00001102120(3) = 1041


Még még segítség átváltáshoz:

Ha a számom például 86.5 és a pontosság 8 jegy akkor

86.5*3^8 erre kell bővíteni azaz 567526,5 ~ 567526 vagyis 1001211111111 ezzel kellene számolni ha xorter-t kéne. A harmados tört tulajdonságai miatt 86.5 ~ 10012.11111111(3). Ugye végtelen szakaszos harmados tört lesz. Hasonlóan mint tízesbe a 10/3 ez meg 3.33333... lesz, ez viszont hármas számrendszerbe véges harmados tört 10/3 bővítem 10 lesz és léptetem balra a harmados vesszőt azaz 10 = 101(3) => 10/3 = 10.1(3) . Írhatnék gyök kettőt is vagy bármilyen valósat példának, ugyanez a módszer rá. Ha két valósra csinálom meg a xortert akkor értelem szerűen a valósból egészre bővítésnél ugyanannyival kell mind a kettőt bővíteni.


Néhány szám hármas komplemensbeli képe:


0 = 0(3)

1 = 01(3)

2 = 02(3)

3 = 10(3)

4 = 011(3)

5 = 012(3)

6 = 020(3)

7 = 021(3)

8 = 022(3)

9 = 100(3)

10 = 101(3)

11 = 102(3)

-11 = 121(3)

-10 = 122(3)

-9 = 200(3)

-8 = 201(3)

-7 = 202(3)

-6 = 210(3)

-5 = 11(3)

-4 = 12(3)

-3 = 20(3)

-2 = 1(3)

-1 = 2(3)

20 = 0202(3)

30 = 1010(3)

40 = 01111(3)

50 = 01212(3)

60 = 02020(3)

70 = 02121(3)

80 = 02222(3)

90 = 10100(3)

-100 = 12022(3)

-90 = 12200(3)

-80 = 20001(3)

-70 = 20102(3)

-60 = 20210(3)

-50 = 21011(3)

-40 = 1112(3)

-30 = 1220(3)

-20 = 2021(3)


111(3) = 222111(3) = -14

0111(3) = 000111(3) = 13

11110(3) = 120

211110(3) = 2211110(3) = -123

2(3) = 222(3) = 222222(3) = -1

1(3) = 22221(3) = -2

2019. márc. 26. 16:32
Hasznos számodra ez a válasz?
 8/8 anonim ***** válasza:
Még azzal egészítem ki, hogyha van két szám melyek nem egészek és azokat bővítettük a fentebb leírt módon egészre akkor a harmadostörteket reprezentáló számjegyeknél vigyázni kell, hogy ne végződjön mind a kettő harmadostört része 0-ra.Ha így lenne akkor addig távolítsuk el a 0-kat mind a két szám végéről amíg ez fennáll. Ugyanis nem lenne egyértelmű a leképezés. A 4 alapműveletnél ez nem számít, itt viszont ügyelni kell erre is.
2019. márc. 26. 17:37
Hasznos számodra ez a válasz?

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

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!