WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Frage zu mod bzw. rem

 

dareal
Forum-Anfänger

Forum-Anfänger


Beiträge: 27
Anmeldedatum: 08.08.09
Wohnort: köln
Version: ---
     Beitrag Verfasst am: 27.10.2009, 22:12     Titel: Frage zu mod bzw. rem
  Antworten mit Zitat      
hallo,
ich bekomme immer eine null wenn ich versuche, "grosse" zahlen den mod zu finden.
z.b:
x=23468764685826458297

mod(x,19)

gibt immer eine 0.

was ist hier zu machen !
Private Nachricht senden Benutzer-Profile anzeigen


Harald
Forum-Meister

Forum-Meister


Beiträge: 24.501
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 27.10.2009, 22:32     Titel:
  Antworten mit Zitat      
Hallo,

die Zahlen sind zu groß, als dass sie mit Gleitkommaarithmetik exakt dargestellt werden könnten. z.B.
23468764685826458297-23468764685826458273 == 0
ist wahr.

Mal eine Gegenfrage: ist das interessehalber, oder steckt dahinter eine ernsthafte Anwendung?

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
dareal
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 27
Anmeldedatum: 08.08.09
Wohnort: köln
Version: ---
     Beitrag Verfasst am: 28.10.2009, 01:57     Titel:
  Antworten mit Zitat      
eigentlich ja, ich wollte nur die Frage auf eine einfache Art und weise darstellen.
also ich verwende eigentlich polynome die den grad 200 erreichen können, wobei x= 2 oder 3 sein könnte mit den grad 200.d.h 3^200,und das ganze in einem primkörper(algebra),die werte die ich bekomme sollen mod GF(P) berechnet werden .

danke
Private Nachricht senden Benutzer-Profile anzeigen
 
anve
Forum-Newbie

Forum-Newbie


Beiträge: 3
Anmeldedatum: 06.07.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 09.01.2010, 21:42     Titel:
  Antworten mit Zitat      
Hallo!

Ich hab anscheinend genau dasselbe Problem. Weder Excel noch Matlab können mit so großen Zahlen umgehen. Einzig der Windows-Rechner kann es.

Hier ein Beispiel:
Code:

mod(88^59,703)
 


Anwendung: RSA

Gibt es eine Lösung für das Problem?

Grüße
anve
Private Nachricht senden Benutzer-Profile anzeigen
 
Daedalus
Forum-Anfänger

Forum-Anfänger


Beiträge: 13
Anmeldedatum: 09.01.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 09.01.2010, 22:44     Titel:
  Antworten mit Zitat      
Hallo Anve,

die Genauigkeit der Double-Datentypen ist nur 15 Zehnerpotenzen.
Da hier bei weitem mehr verwendet werden, arbeitet die mod-Funktion fehlerhaft.
Eine Lösung wäre nur, größere Datentypen zu Nutzen, welche es aber in Matlab meines wissens nicht gibt.
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.501
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 09.01.2010, 23:19     Titel:
  Antworten mit Zitat      
Hallo,

eine Alternative ist die Verwendung der Symbolic Math Toolbox (sofern vorhanden).

Im Mupad Notebook:
Code:

88^59 mod 703

...oder direkt in MATLAB:
Code:
mod(sym(88)^sym(59), sym(703))

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
anve
Forum-Newbie

Forum-Newbie


Beiträge: 3
Anmeldedatum: 06.07.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 10.01.2010, 00:14     Titel:
  Antworten mit Zitat      
Hi Harald!

Du hast mir sehr geholfen! Danke!

Der Vollständigkeit halber erwähne ich noch, dass ich mit int64 das Ergebnis wieder in einen Integer umgewandelt habe.

Echt super Community hier!

LG
anve
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.501
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 10.01.2010, 00:28     Titel:
  Antworten mit Zitat      
P.S. (@ dareal): auch das ursprüngliche Problem kann mit der Symbolic Math Toolbox gelöst werden.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum posten
Du kannst Dateien in diesem Forum herunterladen
.





 Impressum  | Nutzungsbedingungen  | Datenschutz | FAQ | goMatlab RSS Button RSS

Hosted by:


Copyright © 2007 - 2025 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks

MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.