Kezdőoldal » Tudományok » Természettudományok » Hogy működik a bitenkénti osztás?

Hogy működik a bitenkénti osztás?

Figyelt kérdés
Ha van bitenkénti összeadás-kivonás (xorzás), akkor lennie kell bitenkénti szorzásnak-osztásnak is. Engem az osztás érdekelne. Valaki avasson be. :)

2019. jún. 1. 23:03
1 2 3 4 5 6
 11/52 A kérdező kommentje:

> Nem, a XOR továbbra sem bitenkénti összeadás.

A xorzás annyiban összeadás, hogy a biteket összeadjuk, és annyiban bitenkénti, hogy modulozzuk 2-vel, csak így lehet értelmesen kiterjeszteni más radixú, pl. tritenkénti xorzásra is. Szerintem ezt gondold át.

Ha megvizsgálod a #6-osban megadott összefüggéseket, akkor rájössz, hogy tkp. bitenkénti szorzásnak a xorzás iteráltját nevezem. És innen a név: az összeadás iteráltja a szorzás, csak még elé jött, hogy bitenkénti, de a bitenkéntiségét ezen az iterációs szinten elveszti, bejönnek az átvitelek, tágul a művelet szkópja.

2020. máj. 16. 02:43
 12/52 2*Sü ***** válasza:

> Nevezzük a xorzsást bitenkénti összeadásnak - elvégre összeadjuk a biteket, csak utána modozzuk 2-vel vagy amennyi a radix


Ha összeadjuk a biteket, akkor az egy összeadás. Amit te csinálsz, az pont abban tér el ettől, hogy a fenti mondatban szerepel egy „utána” szó, és még egy művelet. Ebben a maradékképzésben tér el az összeadástól, és itt tulajdonképpen mindegy is, hogy maradékot képzel, a négyzetre emeled, vagy veszed a reciproka felének a köbgyökét, mert ezt már az összeadáson túl, azok kívül csinálod. Ilyen alapon a sima algebrában is lehetne az átlagot összegnek hívni, hiszen ott is összeadjuk a számokat, csak utána elosztjuk számjegyek számával. Hát pont ez az osztás az, ami miatt az átlagszámítást nem hívjuk összeadásnak.


> csak így lehet értelmesen kiterjeszteni más radixú, pl. tritenkénti xorzásra is


Pont itt a gond. Az összeadás értelmezhető bármilyen számrendszeren. A bitenkénti összeadástól azt várom, hogy a bitenkénti összeadás eredménye az ugyanaz lesz, mint a nem bitenként elvégzett összeadás eredményének akkor, ha történetesen a két operandus egybites.


Amit te leírsz, mint „összeadást”. az valamilyen művelet. Nem összeadás. Hívhatjuk kizáró vagynak, szimmetrikus differenciának, vagy aminek akarjuk, a lényeg az, hogy a művelet sajátosságai nem azonosak az összeadáséval, így amit a #6-ban, mint összefüggést akartál levezetni (a * (b+1) = a*b + a) , az az összeadásra működik, erre a műveletre – akárhogy is nevezzük – nem, illetve nem feltétlenül.

2020. máj. 16. 03:13
Hasznos számodra ez a válasz?
 13/52 A kérdező kommentje:

2*Sü, két összefüggést adtam meg, nem egyet:

a (×) (b+1) = a xor (a (×) b)

és

a (×) (x (÷) a + 1) = a xor x

Ha általánosítjuk úgy, hogy a teoretikus bitenkénti szorzás helyére tetszőleges műveletet adunk meg, a xorra pedig az uniteráltját, akkor ezek fennállnak, lásd: Abel függvényegyenlet.

Viszont fordítva is működnie kell: ha a tetszőleges uniterált helyére a xorzást írom, akkor az valaminek az uniteráltja, mondjuk ez a teoretikus műveletnek kell, hogy legyen. Az nem túl elegáns módszer, hogy invalidálod az elnevezést, révén, hogy mit vársz egy ilyen névtől. Nevezhetjük, aminek akarjuk, én továbbra is fenntartom, hogy ez így logikus. De a kérdés az az, hogy hogy határozhatjuk meg ezeket a műveleteket.

2020. máj. 17. 00:47
 14/52 2*Sü ***** válasza:
70%

> a (×) (b+1) = a xor (a (×) b)

> és

> a (×) (x (÷) a + 1) = a xor x


Továbbra sem tudom jól értelmezni a + műveleti jelet…


De oké, mondjuk azt, hogy a + műveleti JEL az a XOR-ral azonos műveletet jelzi. Ekkor az első összefüggésed így néz ki:

a ⊗ (b XOR 1) = a XOR (a ⊗ b)

Belátható, hogy:

a ⊗ ¬b = a XOR (a ⊗ b)


Ez bizonyos összefüggéseket feltár. Pl.: a=0 esetén:

0 ⊗ ¬b = 0 XOR (0 ⊗ b)

0 ⊗ ¬b = 0 ⊗ b


Ez két esetben lesz igaz, ha:

0 ⊗ 0 = 0 és 0 ⊗ 1 = 0

de akkor is, ha:

0 ⊗ 0 = 1 és 0 ⊗ 1 = 1


Az a:=1 esetén meg a következőt kapjuk:

1 ⊗ ¬b = 1 XOR (1 ⊗ b)

1 ⊗ ¬b = ¬(1 ⊗ b)


Ez megint igaz akkor is, ha:

1 ⊗ 0 = 1 és 1 ⊗ 1 = 0

de akkor is, ha:

1 ⊗ 0 = 0 és 1 ⊗ 1 = 1


Szóval az első egyenlettel az a gond, hogy önmagában nem definiálja egyértelműen a szorzás műveletét. A 16 lehetséges kétváltozós logikai műveletből 4 művelet esetén fennáll az egyenlőség. Ezek: ∧ ; ¬∧ ; A→B ; ¬(A→B); magyarán a diszjunkció, az implikáció és ezek negáltjai.


~ ~ ~


A második egyenlet meg így néz ki:

a ⊗ (x ⊘ a XOR 1) = a XOR x


Itt meg azt várod, hogy egy nem egzaktul definiált művelet segítségével definiálj egy másik műveletet.


~ ~ ~ ~ ~ ~ ~


> Ha általánosítjuk úgy, hogy a teoretikus bitenkénti szorzás helyére tetszőleges műveletet adunk meg, a xorra pedig az uniteráltját, akkor ezek fennállnak.


Az uniteráltnak sincs itt semmi értelme. Vagy legalábbis nem sokkal több, mint az bit szakaszfelező merőlegeséről beszélni.


Az iterálás ismétlést jelent.

5 * a = a + a + a + a + a (5-ször adjuk össze az a-t)

4 * a = a + a + a + a (4-szer adjuk össze az a-t)

3 * a = a + a + a (3-szor adjuk össze az a-t)

2 * a = a + a (2-szer adjuk össze az a-t)

1 * a = a (1-szer „adjuk össze” az a-t)

0 * a = (0-szor „adjuk össze” az a-t)


Már az algebrában is az 1 és a 0 esetén az iteráció csak a permanenciaelv segítségével értelmezhető és csak természetes számokra. Tágabb halmazra szintén csak permanenciaelv segítségével lehet kiterjeszteni a műveletet. Már ha lehet, mert pl. tetrációnál ez már nem lehetséges, illetve nem triviális, de már a hatványozásnál is vannak olyan anomáliák, amik csak extra kitételekkel oldhatók fel, pl. a törtkitevők értelmezése esetén.


Egy {0, 1} halmazon meg mire is alkalmazzuk a permanenciaelvet? Hiszen az operandus nem lehet 2, 3, 4 stb…


≈ ≈ ≈ ≈ ≈ ≈ ≈


Van nekünk egy halmazelméletünk. Ott nincs 0 meg 1, hanem halmazok vannak. És nincs olyan művelet, hogy összeadás, unió van, metszet van, meg hasonlók. Halmazok különbségéről, meg szorzatáról van ugyan szó, de az csak lazán kapcsolódik az algebra műveletek jelentéstartamához, és a szorzás nem valamiféle teoretikus összeadás iteráltja, a különbség meg nem valami teoretikus összeadás inverz művelete.


Van nekünk egy ítéletkalkulusunk, ahol megint nincs 0 meg 1, hanem igaz és hamis van. És ott sincs összeadás, szorzás, hanem olyan műveletek vannak, mint konjunkció, diszjunkció, ekvivalencia, implikáció.


Ezeknek a közös vonásait egyesíti a Boole-algebra, ahol már 0 és 1 van (A 0 a „hamis”-t és az üres halmazt, az 1 az „igaz”-at és az alaphalmazt reprezentálja. Az egyes műveletek megfeleltethetőek a halmazelméleti és logikai műveleteknek. És nincs ebben sem összeadás, kivonás, nincs szorzás, nincs osztás.


~ ~ ~


Az más kérdés, hogy ha fogunk két természetes számot, és azokat felírjuk kettes számrendszerben, akkor a két szám összeadását el lehet végezni Boole-algebrai műveletekkel. És igen, az összeadást és az azt követő maradékképzést (ami nem egy, hanem két művelet) meg lehet feleltetni a „kizáró vagy” logikai műveletének (ami meg egy művelet). De ettől a kizáró vagy nem lesz összeadás. Összeadás továbbra sincs sem a logikában, sem a halmazelméletben, sem a kettőt közös nyelven tárgyaló Boole-algebrában.

2020. máj. 18. 17:09
Hasznos számodra ez a válasz?
 15/52 anonim ***** válasza:
100%

Akárhogy ügyeskedsz a "bitenkénti" továbbra is azt jelenti, hogy "kivágunk" a két számból egy-egy pozíción lévő 1-1 bitet és azon végezzük el a műveletet.

Azaz vegyünk egyszerűség kedvéért két 8 bites számot pl. 10100101 és 01011010 egymás alá írva:


10100101

01011010

--------

abcdefgh


Az eredmény "tetszőleges" bitenkénti művelet esetén úgy fog kinézni, hogy "a=1 /művelet/ 0" "b=0 /művelet/ 1" és így tovább. Felírtva az első számot úgy, hgy az egyes bitpoziciókon lévő 0-1 értékeket an illetve bn jelöli pl. így

a7 a6 a5 a4 a3 a2 a1 a0

b7 b6 b5 b4 b3 b2 b1 b0

------------------------

e7 e6 e5 e4 e3 e2 e1 e0


Az "en" az eredmény szó egyes bitpozíción lévő értéket fogja jelenteni. Miután bitenkénti műveletről van szó, az e0 csak a0 és b0 értékétől függ, az e1 csak a1 és b1 értékétől, az e7 csak a7 és b7 értékétől függ. Ezt a "definició" (mivel "bitenkénti" ezt jelenti), alapján tudjuk, hogy összesen 16 féle ilyen függvény létezhet, mert kétváltozós logikai függvényből bárhogy csűrjük csavarjuk csak két féle létezik. És ezek között nem találunk sem összeadást, sem kivonást, sem osztást sem szorzást,és semmilyen "teoretikus" művelet nem hozható létre az ismert 16 db. függvényen kívül. Ez a 16 függvény sok helyen megtalálható, most nem fogom ide bepötyögni, mert ennek a felületnek a szerkesztője nem alkalmas erre. Ha gondolod írd fel magadnak,és keresd meg benne azt a függvényt amelyik szerinted a "szorzás" "osztás" "összeadás" "kivonás" lehet. Segítség képpen (remélem nem fog nagyon szétcsúszni) a 16 lehetséges logikai függvény "táblázatának" eleje így fog kinézni:


A B | Y0 Y1 Y2 Y3 Y4 Y5

0 0 | 0 0 0 0 0 0

0 1 | 0 0 0 0 1 1

1 0 | 0 0 1 1 0 0

1 1 | 0 1 0 1 0 1


(vannak más felírási módjai is de elég "szimmetrikus" a táblázat, A-B felcserélhető stb.)

2020. máj. 18. 17:54
Hasznos számodra ez a válasz?
 16/52 A kérdező kommentje:

#14, 2*Sü! Kicsit félreértetted. A + továbbra is összeadás, nem xorzás. A xorzást nevezem bitenkénti összeadásnak, de azt xor-ral vagy max a (+)-szal jelölöm. A te jelöléseddel élve:

a ⊗ (b+1) = a xor (a ⊗ b)

és

a ⊗ ((x ⊘ a) + 1) = a xor x


A 16 logikai bitműveletből lehet 16 valós bitenkénti műveletet gyártani, sőt végtelen sokat. A xorzás valós bitenkénti művelet, összeadás átvitel nélkül, ezért hívom bitenkénti összeadásnak, az iteráltját, a szuperxorzást pedig bitenkénti szorzásnak, de megtévesztő az elnevezés, mert önmagában a ⊗ szuperxorzás nem feltétlen bitenkénti, csak az uniteráltja (a xorzás) az.


> Az uniteráltnak sincs itt semmi értelme.

Egyrészt iteráció alatt szuperfüggvény-képzést értek (szukcesszió -> összeadás -> szorzás -> hatványozás -> tetráció -> ...), uniterált alatt pedig olyan függvényt/műveletet, aminek az iteráltja éppen az, amit uniteráltunk. Uniterálni éppenséggel könnyebb:

Az y(x) függvény uniteráltja: y o (x+1) o y^-1(x)

A xorzás uniteráltja: a xor ((a xor x) + 1)

De mi éppen az iteráltját és annak inverzét keressük.

Most már érthetőbb a probléma? :)

2020. máj. 19. 01:07
 17/52 2*Sü ***** válasza:

Most akkor mégis milyen matematikáról beszélünk?


Te keresel egy művelet, amit ⊗ jellel jelölünk:

a ⊗ b = c

De mi a, b és c? Ha

a,b,c∈{0,1}

akkor vakargathatjuk a fejünket b=1 esetén.

a ⊗ (b+1) = a xor (a ⊗ b)

a ⊗ (1+1) = a xor (a ⊗ 1)

a ⊗ 2 = a xor (a ⊗ 1)


(a ⊗ 2) van a bal oldalon? De hiszen ezt a műveletet a {0,1} halmazon akartjuk értelmezni, így nyilván a {0,1} halmazon ez egy értelmezhetetlen művelet. Tehát:

UNDEF = a xor (a ⊗ 1)

Mivel a jobb oldalon a xor művelet bal operandusa értelmezhető, a xor művelet eredménye csak akkor lesz értelmezhetetlen, a jobb oldali operandusa az, tehát:

(a ⊗ 1) = UNDEF


Oké, ennek tükrében vegyük b=0 esetét:

a ⊗ (0+1) = a xor (a ⊗ 0)

a ⊗ 1 = a xor (a ⊗ 0)


De az előbbi „eredményünket” – (a ⊗ 1) = UNDEF – behelyettesítve:

UNDEF = a xor (a ⊗ 0)

Ez is akkor lehetséges csak, ha:

(a ⊗ 0) = UNDEF


Készen is vagyunk:

∀p,q∈{0,1} p⊗q=UNDEF


Definiáltuk a definiálatlan művelet… Most már nyugodtan ráülhetünk a tarkónkra, csak vigyázzunk, meg ne harapjuk közben a fülünket.

2020. máj. 19. 02:03
Hasznos számodra ez a válasz?
 18/52 A kérdező kommentje:

A xor és társai, mint bitművelet a {0, 1}-en értelmezett, de mint bitenkénti művelet az R-en.

Az más kérdés, hogy x szuperxor n kivezet a valósokból, ha n nem egész.

Páros n-ekre az eredmény 0, páratlanokra x. De köztes átmenetekről vagy az inverzről még nem szóltunk, tehát még közel sem vagyunk kész.

Azt a kérdést, hogy ez milyen matematika, visszapasszolnám, szerinted?

2020. máj. 19. 02:36
 19/52 2*Sü ***** válasza:

> de mint bitenkénti művelet az R-en.


Na pont ezért nincs az egésznek se füle, se farka. A bit az egy kettes számrendszerbeli számjegy (BInary digiT), így a bit eleme a {0, 1} halmaznak. Bitenkénti műveletet biteken lehet végezni, és az eredménye is bit kell, hogy legyen. Ha ez a kritérium fennáll, akkor lásd a #17-es választ.


Ha ez a kritérium viszont nem áll fenn, akkor a műveletnek semmi köze a bitekhez. Definiálni akarsz az ℝ halmazon egy műveletet. Csak az első összefüggésben van akkor egy olyan művelet – a XOR –, ami viszont csak bitekre van értelmezve. Ahogy a neve is mutatja ez egy logikai művelet: eXclusive OR, azaz kizáró vagy, aminek csak a {hamis, igaz} halmazon van értelme. A biteken is akkor nyer értelmet, ha megtesszük az 0:=hamis és az 1:=igaz megfeleltetéseket. Jellegéből fakadóan ezt nem kell kiterjeszteni más halmazra. Lehet definiálni olyan műveletet, aminek valamilyen szempont alapján vannak hasonlóságai a XOR művelethez, csak ezt megint nem lenne észszerű XOR-nak hívni. Viszont ebben az esetben a probléma az, hogy a ⊗ művelet összefüggését egy olyan művelettel írod le, ami nincs definiálva azon a halmazon, hamin a műveletet értelmezni akarod.


Az egész kérdés fából vaskarika, nem sokkal értelmesebb, mint a bitek közötti szakaszfelező merőlegest keresni.

2020. máj. 19. 11:09
Hasznos számodra ez a válasz?
 20/52 A kérdező kommentje:

> Na pont ezért nincs az egésznek se füle, se farka.

> Bitenkénti műveletet biteken lehet végezni, és az eredménye is bit kell, hogy legyen.

Nem-nem, 2*Sü! Az a bitművelet. A bitenkénti művelet egy (R,R)->R leképzés, és ez nem az én agymenésem: a legtöbb programozási nyelvbe már implementálták a (Z,Z)->Z bitenkénti műveleteket, mint az éselés, vagyolás és xorzás. De onnan már gyerekjáték kiterjeszteni R-re (floatra). Komplexekre kicsit macerás, és nem is marad zárt, de azt most hagyjuk. Annyi a lényeg, hogy a két valós számodat - az operandusokat - felírod bitvektorként, és bitenként elvégzed a bitműveletet, ami tényleg {0,1}×{0,1} -> {0,1}. Persze én informatikát és matematikát tanult emberként lépéselőnyben vagyok ezen a téren. Mindig tanul újat az ember.

2020. máj. 19. 13:47
1 2 3 4 5 6

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!