Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Gleichung mit MOD (https://www.delphipraxis.net/91708-gleichung-mit-mod.html)

silentAMD 8. Mai 2007 23:40


Gleichung mit MOD
 
hi,
ich komme bei meiner facharbeit über codierungen nicht weiter... dafür müsste ich folgende gleichung lösen können, aber ich weiss nicht wie:


Code:
(x*b) MOD 29 = a
dabei ist x eine unbekannte!


PLEASE HELP!!

ulrich.b 8. Mai 2007 23:58

Re: Gleichung mit MOD
 
Für x gibt es auf jeden Fall unendlich viele Lösungen ...

wenn zb. b = 29 und a = 0 dann gilt die gleichung für den gesamten natürlichen Zahlenbereich.

silentAMD 9. Mai 2007 00:14

Re: Gleichung mit MOD
 
sorry hab vergessen zu erwähnen, dass a ungleich 0 ist und die definitionsmenge {0,1...28} ist

omata 9. Mai 2007 00:29

Re: Gleichung mit MOD
 
Hallo silentAMD,

hier mal mein Versuch...

Code:
a mod b = a - (a / b)*b


(x*b) - (x*b / 29) = a

x*b*29    x*b
------ - ----- = a
  29      29

x*b*29 - x*b
------------ = a
     29

x*b * (29 - 1)
-------------- = a
      29


x*b*28 = 29*a

     29a
x = -----
     28b
Gruss
Thorsten

DelphiProgrammierer 9. Mai 2007 00:34

Re: Gleichung mit MOD
 
Eine Anmerkung:
Code:
a mod b = a - (a div b)*b

omata 9. Mai 2007 00:43

Re: Gleichung mit MOD
 
@DelphiProgrammierer: Du hast natürlich recht, danke. Habs oben korrigiert.

Gruss
Thorsten

gammatester 9. Mai 2007 08:03

Re: Gleichung mit MOD
 
Zitat:

Zitat von silentAMD
sorry hab vergessen zu erwähnen, dass a ungleich 0 ist und die definitionsmenge {0,1...28} ist

Da 29 eine Primzahl ist hat jedes a ein Inverses b=a^-1 mod 29. Eine einfache Formel ist hier (da a^28 = 1 mod 29 für alle a)

b=a^-1 = a^27 mod 29

Gruß Gammatester

silentAMD 9. Mai 2007 15:34

Re: Gleichung mit MOD
 
vielen dank für die vielen antworten! :thumb:

leider hat mir keine bei diesem problem geholfen... dafür aber bei einem anderen (x-b statt x*b)... wie kann ich die letzte antwort in delphi umsetzen?

gammatester 9. Mai 2007 17:37

Re: Gleichung mit MOD
 
Zitat:

Zitat von silentAMD
vielen dank für die vielen antworten! :thumb:

leider hat mir keine bei diesem problem geholfen... dafür aber bei einem anderen (x-b statt x*b)... wie kann ich die letzte antwort in delphi umsetzen?

Delphi-Quellcode:
{solve x*b=a mod 29}
{ x = a*b^27 mod 29}

{$apptype console}
var
  a,b,x,i: integer;
begin
  {Deine Werte, aber besser eine procedure}
  a := 3;  b := 4;
  x := a;
  for i:=1 to 27 do x := x*b mod 29;
  writeln(x:4, x*b mod 29:4, (x*b-a) mod 29: 4);
end.
Die Formel x = a*b^27 mod 29 hat allerdings nur didaktischen Wert, besser ist eine Berechnung von b^-1 mit dem erweiterten Euklidischen Algorithmus und speichern aller Inversen in einen Vektor inv: array[1..28] of integer.

Gruß Gammatester

silentAMD 9. Mai 2007 23:15

Re: Gleichung mit MOD
 
Code:
Die Formel x = a*b^27 mod 29 hat allerdings nur didaktischen Wert, besser ist eine Berechnung von b^-1 mit dem erweiterten Euklidischen Algorithmus und speichern aller Inversen in einen Vektor inv: array[1..28] of integer.
würde ein byte array reichen?? das problem ist, dass ich dies mathematisch lösen muss...


ein weiteres problem:

die funktionen

- x = (a+b) mod 29 (kurz: x = a +29 b)
- x = (a*b) mod 29 (kurz: x = a *29 b)
- a = (x+b) mod 29 (kurz: x = a -29 b)
- a = (x*b) mod 29 (kurz: x = a /29 b)

funktionieren im einzelnen. etwas (ist verlangt) wie f(x) = a *29 x +29 b (x variabel, a und b natürliche zahlen) funktioniert zwar, aber wie ich auf die umkehrformel (um das x herauszufinden) komme ist mir nicht schlüssig... wie bekomme ich solch eine formel und wie lautet sie?


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:26 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz