AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Gleichung mit MOD

Ein Thema von silentAMD · begonnen am 9. Mai 2007 · letzter Beitrag vom 10. Mai 2007
Antwort Antwort
Seite 1 von 2  1 2      
silentAMD

Registriert seit: 27. Sep 2003
203 Beiträge
 
Turbo Delphi für Win32
 
#1

Gleichung mit MOD

  Alt 9. Mai 2007, 00:40
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!!
  Mit Zitat antworten Zitat
ulrich.b

Registriert seit: 21. Sep 2005
Ort: Kattau (AT)
79 Beiträge
 
Delphi 2009 Professional
 
#2

Re: Gleichung mit MOD

  Alt 9. Mai 2007, 00:58
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.
  Mit Zitat antworten Zitat
silentAMD

Registriert seit: 27. Sep 2003
203 Beiträge
 
Turbo Delphi für Win32
 
#3

Re: Gleichung mit MOD

  Alt 9. Mai 2007, 01:14
sorry hab vergessen zu erwähnen, dass a ungleich 0 ist und die definitionsmenge {0,1...28} ist
  Mit Zitat antworten Zitat
omata

Registriert seit: 26. Aug 2004
Ort: Nebel auf Amrum
3.154 Beiträge
 
Delphi 7 Enterprise
 
#4

Re: Gleichung mit MOD

  Alt 9. Mai 2007, 01:29
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
  Mit Zitat antworten Zitat
DelphiProgrammierer

Registriert seit: 11. Apr 2007
67 Beiträge
 
Delphi 2007 Professional
 
#5

Re: Gleichung mit MOD

  Alt 9. Mai 2007, 01:34
Eine Anmerkung:
Code:
a mod b = a - (a div b)*b
  Mit Zitat antworten Zitat
omata

Registriert seit: 26. Aug 2004
Ort: Nebel auf Amrum
3.154 Beiträge
 
Delphi 7 Enterprise
 
#6

Re: Gleichung mit MOD

  Alt 9. Mai 2007, 01:43
@DelphiProgrammierer: Du hast natürlich recht, danke. Habs oben korrigiert.

Gruss
Thorsten
  Mit Zitat antworten Zitat
gammatester

Registriert seit: 6. Dez 2005
999 Beiträge
 
#7

Re: Gleichung mit MOD

  Alt 9. Mai 2007, 09:03
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
  Mit Zitat antworten Zitat
silentAMD

Registriert seit: 27. Sep 2003
203 Beiträge
 
Turbo Delphi für Win32
 
#8

Re: Gleichung mit MOD

  Alt 9. Mai 2007, 16:34
vielen dank für die vielen antworten!

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?
  Mit Zitat antworten Zitat
gammatester

Registriert seit: 6. Dez 2005
999 Beiträge
 
#9

Re: Gleichung mit MOD

  Alt 9. Mai 2007, 18:37
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
  Mit Zitat antworten Zitat
silentAMD

Registriert seit: 27. Sep 2003
203 Beiträge
 
Turbo Delphi für Win32
 
#10

Re: Gleichung mit MOD

  Alt 10. Mai 2007, 00:15
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?
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:53 Uhr.
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