Hulp bij formule

Het forum voor overige vragen betreffende wiskunde uit het hoger onderwijs.
pixebility
Vast lid
Vast lid
Berichten: 77
Lid geworden op: 20 okt 2010, 14:37

Hulp bij formule

Bericht door pixebility » 27 mei 2014, 15:59

Hallo allen,

kan iemand me helpen met de volgende formule?

Ik weet dat r = 4
H = 74
en b = {1,1,1,0}

Kan iemand dan een voorbeeld geven van hoe d wordt berekend?

Bedankt,

Pixebility

David
Moderator
Moderator
Berichten: 4927
Lid geworden op: 14 mei 2009, 16:22

Re: Hulp bij formule

Bericht door David » 27 mei 2014, 17:21

Is
Hoe wordt bepaald? Door het product van ? door ze naast elkaar te zetten als cijfers?
Kan je een en ander al invullen, bijv. H = 74, r = 4 in 2^r?
Stap 1 van het oplossen van een probleem is te erkennen dat je een probleem hebt.
(Raffiek Torreman)

pixebility
Vast lid
Vast lid
Berichten: 77
Lid geworden op: 20 okt 2010, 14:37

Re: Hulp bij formule

Bericht door pixebility » 27 mei 2014, 18:20

David schreef:Is
Hoe wordt bepaald?
Hallo David dank voor je antwoord. Volgens mij klopt dat inderdaad.

David
Moderator
Moderator
Berichten: 4927
Lid geworden op: 14 mei 2009, 16:22

Re: Hulp bij formule

Bericht door David » 27 mei 2014, 18:39

Okay, wat is ? 1*1*1*0 = 0 of 1110?
Stap 1 van het oplossen van een probleem is te erkennen dat je een probleem hebt.
(Raffiek Torreman)

pixebility
Vast lid
Vast lid
Berichten: 77
Lid geworden op: 20 okt 2010, 14:37

Re: Hulp bij formule

Bericht door pixebility » 27 mei 2014, 20:22

Dat is 1110

David
Moderator
Moderator
Berichten: 4927
Lid geworden op: 14 mei 2009, 16:22

Re: Hulp bij formule

Bericht door David » 27 mei 2014, 22:50

Okay, kan je dit alles invullen in de vergelijking?
Stap 1 van het oplossen van een probleem is te erkennen dat je een probleem hebt.
(Raffiek Torreman)

pixebility
Vast lid
Vast lid
Berichten: 77
Lid geworden op: 20 okt 2010, 14:37

Re: Hulp bij formule

Bericht door pixebility » 28 mei 2014, 08:09

1110 zijn bits dus dit is of 1 of 0.
Nou volgens mij is het laatste deel klopt dit?
Klopt het dan dat het van elke waarde in b 10 afgetrokken moet worden?
Dus 1 - 10, 1 - 10, 1 - 10, 0 - 10?
Wat is dan d?

David
Moderator
Moderator
Berichten: 4927
Lid geworden op: 14 mei 2009, 16:22

Re: Hulp bij formule

Bericht door David » 28 mei 2014, 09:29

De opgave is niet helemaal duidelijk. Gebruiken we binaire en decimale getallen door elkaar zonder aan te geven wat wat is?
pixebility schreef: Nou volgens mij is het laatste deel klopt dit?
Ja :idea:
pixebility schreef:Klopt het dan dat het van elke waarde in b 10 afgetrokken moet worden?
Als 1110 een decimaal getal is?
Stap 1 van het oplossen van een probleem is te erkennen dat je een probleem hebt.
(Raffiek Torreman)

pixebility
Vast lid
Vast lid
Berichten: 77
Lid geworden op: 20 okt 2010, 14:37

Re: Hulp bij formule

Bericht door pixebility » 28 mei 2014, 09:39

Oeps waarschijnlijk moet je de decimale waarde van 1110 hebben en dat is 14.

David
Moderator
Moderator
Berichten: 4927
Lid geworden op: 14 mei 2009, 16:22

Re: Hulp bij formule

Bericht door David » 28 mei 2014, 09:48

Misschien. Dan
, ja
Wat vind je lastig? Het rekenen? Wat ik nu vooral heb geprobeerd te doen is erachter komen wat je hebt gedaan en wat de opgave is.
Stap 1 van het oplossen van een probleem is te erkennen dat je een probleem hebt.
(Raffiek Torreman)

pixebility
Vast lid
Vast lid
Berichten: 77
Lid geworden op: 20 okt 2010, 14:37

Re: Hulp bij formule

Bericht door pixebility » 29 mei 2014, 12:22

Het rekenen niet zozeer maar eerder de betekenis van de formule.
Ik dacht dat er een iteratie over de bits plaats zou moeten vinden maar dit was niet het geval. De bits moesten worden omgezet in de decimale waarde.

Bedankt voor je hulp!

arie
Moderator
Moderator
Berichten: 3911
Lid geworden op: 09 mei 2008, 09:19

Re: Hulp bij formule

Bericht door arie » 29 mei 2014, 15:03

Kijk ook nog even na of H inderdaad 10-tallig is.
In dit soort formules is H erg verdacht voor een getal in basis 16 (= hexadecimaal getal).
Als dat zo is dan is H mod 16 bovendien heel eenvoudig te bepalen.

pixebility
Vast lid
Vast lid
Berichten: 77
Lid geworden op: 20 okt 2010, 14:37

Re: Hulp bij formule

Bericht door pixebility » 30 mei 2014, 14:05

Misschien kunnen jullie me verder helpen. Ik probeer een watermerk te implementeren.
Zie dit pdf bestand:
https://www.google.nl/url?sa=t&rct=j&q= ... 0277,d.ZWU

Op pagina 3 staat het algoritme beschreven. Stap 1 tot en met stap 3 heb ik. Bij stap 4 snap ik nog niet helemaal wat er gebeurd. En stap 5 hebben we hierboven behandeld. Stap 6 snap ik ook niet helaas. Daar staat bij stap 6 maar wat betekend hier? Ik begrijp ook niet waar S vandaan komt.
Op pagina 4 staat een uitwerking met matrices.

arie
Moderator
Moderator
Berichten: 3911
Lid geworden op: 09 mei 2008, 09:19

Re: Hulp bij formule

Bericht door arie » 31 mei 2014, 13:54

Dat artikel gaat wat slordig om met definities en beschrijvingen.

Hier wat ze doen:
Je gaat uit van een image C (later in het artikel verward met I) zie Table 1.
Van alle pixelwaarden in die image neem je het minst significante bit = LSB, dit levert de first bit plane I (dit is de juiste I).
In feite: I = alle pixelwaarden in C modulo 2 genomen. Dit is Table 4.

Het resultaat deel je op in blokken Ib van bekende afmetingen n x m, hier 4 x 4.
Per blok b doe je dan het volgende:
- eerst XOR je Ib met een geheime sleutel K (Table 2), dit geeft Table 5: Vb = Ib XOR K
(matrix Vb = het resultaat in blok b)
- dit resultaat vermenigvuldig je elementgewijs met gewichtmatrix W, Table 6: Hb = Vb .* W
(matrix Hb = elementgewijze (puntgewijze = .* ) vermenigvuldiging van Vb en W)

K en W zijn geheim, alleen bekend bij zender en ontvanger.

Even tussendoor:
De definitie van W op de derde pagina van het artikel klopt niet.
W is zodanig opgebouwd, dat ALLE getallen van 1 t/m (2^r)-1 er ten minste 1 keer in voorkomen.
In het voorbeeld is r=4 en hebben we alle getallen van 1 t/m 15 nodig.
In de constructie van een geschikte W plaats je eerst deze getallen.
Deze getallen hoeven in W niet op de juiste volgorde te staan (maar mag wel, zoals in het voorbeeld Table 4).
Alle plaatsen p die over zijn in W geef je ieder voor zich een willekeurige waarde Lp waarbij 1 <= Lp <= (2^r)-1.

Nu verder met het algoritme:
In stap 3 berekenen we H = de som van alle elementen van matrix Hb.
In feite hebben we van dit getal alleen de waarde mH = de waarde van H modulo 2^r nodig:
mH = H mod 2^r.

We willen nu Ib zodanig manipuleren naar Ib', dat deze berekening nu niet meer mH, maar B oplevert,
waarbij B = de waarde van de bitstring b1..br gezien als getal.
Dus zodanig dat:
SUM( (Ib' XOR K) .* W) mod 2^r = B

Merk op: als mH = B hoeven we niets te veranderen in Ib en zijn we klaar.
In alle andere gevallen moeten we een waarde d bij mH opgeteld zien te krijgen, zodanig dat mH + d = B.
Ofwel: d = (B - mH) mod 2^r
(Noot: ze claimen dat je hiervoor maximaal 2 bits van Ib hoeft om te flippen, ik neem nu aan dat dit zo is, maar mogelijk wil je dit ook nog bewijzen.)

De gedachte is daarbij als volgt:
Als we het bit op plaats (i,j) in Ib omflippen, dan flipt het bit (i,j) in Vb (= Ib XOR K) ook om (ga na).
- als dat bit van 0 naar 1 gaat, dan was het gewicht W(i,j) in de oorspronkelijke mH NIET meegeteld, maar in de nieuwe situatie WEL (oorspronkelijk was dat gewicht met nul vermenigvuldigd, maar nu met 1).
mH wordt dan vermeerderd met W(i,j)
- als dat bit van 1 naar 0 gaat, dan was het gewicht W(i,j) in de oorspronkelijke mH WEL meegeteld, maar in de nieuwe situatie NIET (oorspronkelijk was dat gewicht met 1 vermenigvuldigd, maar nu met nul).
mH wordt dan verminderd met W(i,j)

Omdat we modulo 2^r werken, is verminderen met een getal a gelijk aan vermeerderen met een getal (2^r)-a.
We kunnen hiermee elke bitflip van bit (i,j) in Ib vertalen naar een gewichtstoename w van mH.

Dit gebeurt in stap 4:
Sw = de verzameling indexparen (i,j) van elementen van Ib (en dus ook van Vb) waarvoor bitflip een gewichtstoename w oplevert:
- als Vb(i,j)==0 dan voeg je (i,j) toe aan S(W(i,j)): omflippen van Ib(i,j) geeft gewichttoename W(i,j)
- als Vb(i,j)==1 dan voeg je (i,j) toe aan S(2^r-W(i,j)): omflippen van Ib(i,j) geeft gewichttoename 2^r-W(i,j)

Voorbeeld: blok I2 pagina 4:

Vb =
1 1 0 0
1 1 1 1
1 1 1 1
1 0 1 0

W =
1 2 3 4
5 6 7 8
9 10 11 12
13 14 15 2

Ga alle elementen van Vb af:
Vb(1,1) = 1, dus voeg (1,1) toe aan S(16 - W(1,1)) = S(16-1) = S15 => S15 = { (1,1) }
Vb(1,2) = 1, dus voeg (1,2) toe aan S(16 - W(1,2)) = S(16-2) = S14 => S14 = { (1,2) }
Vb(1,3) = 0, dus voeg (1,3) toe aan S(W(1,3)) = S3 => S3 = { (1,3) }
etc.

Je vindt zo:
S0 = leeg
S1 = { (4,3) }
S2 = { (4,4) }
S3 = { (1,3), (4,1) }
S4 = { (1,4), (3,4) }
S5 = { (3,3) }
S6 = { (3,2) }
S7 = { (3,1) }
S8 = { (2,4) }
S9 = { (2,3) }
S10 = { (2,2) }
S11 = { (2,1) }
S12 = leeg
S13 = leeg
S14 = { (1,2), (4,2) }
S15 = { (1,1) }

Verder is voor blok 2: H = 99, dus mH = 3
De gewenste binaire bitcode voor blok 2 = 1101, dit is tientallig B = 13.
Dan is d = 13 - 3 mod 16 = 10 mod 16

Nu stap 6:
Als d=0 dan is mH = B en hoeven we niets te doen.
In de andere gevallen berekenen we voor alle h van 0 t/m (2^r)-1:
h*d en -(h-1)*d
en zoeken we de 2 S-verzameling die deze getallen produceren:
als we bij mH eerst h*d optellen en vervolgens -(h-1)*d,
dan tellen we bij mH in totaal h*d - (h-1)*d = h*d - h*d + d = d op (mod 2^r).


In het voorbeeld van blok I2 (alle waarden weer modulo 16):

Code: Selecteer alles

h      h*10    -(h-1)*10
0       0        10
1       10       0
2       4        6
3       14       12
4       8        2
5       2        8
6       12       14
7       6        4
8       0        10
9       10       0
10      4        6
11      14       12
12      8        2
13      2        8
14      12       14
15      6        4
S0 heeft een bijzondere plaats: deze is weliswaar leeg, maar hebben ook niet nodig:
in bovenstaand voorbeeld vinden we S0 voor h = 0, 1, 8 of 9:
S0 wordt in al deze 4 gevallen gecombineerd met S10, dus S10 levert in zijn eentje een mogelijke oplossing:
S10 = { (2,2) }, dus flip ALLEEN bit (2,2) en je hebt een oplossing: dit is gedaan in Table 7.

Om meer oplossingen te vinden:
Verwijder alle regels met waarden i waarvoor Si = leeg: hier: S0, S12 en S13
(hierbij is i = h*10 of i = -(h-1)*10)
(Noot: in het artikel gebruiken ze de letter phi, maar ze bedoelen het symbool voor de lege verzameling.)
Dan houden we over:

Code: Selecteer alles

h	    h*10    -(h-1)*10
2        4        6
4        8        2
5        2        8
7        6        4
10       4        6
12       8        2
13       2        8
15       6        4
De oplossingen met 2 bitflips kan je dus kiezen uit de combinaties:
- S2 en S8: bit (4,4) en bit (2,4)
- S4 en S6: [bit (1,4) en bit (3,2)] OF [bit (3,4) en bit (3,2)]
Je kan nu random een oplossing met 1 of 2 bitflips kiezen.

Een ander voorbeeld dan in het artikel: flip bit (1,4) en bit (3,2):
Ib =
0 1 1 0
1 0 1 0
0 1 0 1
0 1 1 1

wordt daardoor omgezet naar:

Ib' =
0 1 1 1
1 0 1 0
0 0 0 1
0 1 1 1

en dan is
SUM( (Ib' XOR K) .* W) mod 16 = 13 = B
dus precies wat we wilden.

EDIT: Stap 6 (vermenigvuldiging met h) heb je helemaal niet nodig en geeft te weinig oplossingen.
Ik kom hier op terug.

pixebility
Vast lid
Vast lid
Berichten: 77
Lid geworden op: 20 okt 2010, 14:37

Re: Hulp bij formule

Bericht door pixebility » 31 mei 2014, 17:26

Wat een verhaal :). Ik moet het nog wel een paar keer lezen om het helemaal te begrijpen maar ik denk dat ik eruit ga komen nu.

De schrijver heeft hier en daar inderdaad wat onduidelijkheden geïntroduceerd in zijn verhaal. Die phi moest inderdaad een lege verzameling zijn dat had ik gevonden in een artikel waar vanuit dit artikel naar verwezen wordt.

Ontzettend bedankt weer arie!

Plaats reactie