|
Das deutsche QBasic- und FreeBASIC-Forum Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
|
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
pzktupel
Anmeldungsdatum: 07.07.2020 Beiträge: 83
|
Verfasst am: 12.12.2021, 09:27 Titel: MOD unter BIGINT |
|
|
Hallo Mitglieder !
Ich möchte nochmal die Experten konsultieren.
Unter Verwendung der BIG_INT_Biblothek, bräuchte ich mal bitte
ein kleines Bsp-Programm, wie man A MOD B berechnen kann, wenn A den 64 Bit Bereich verlässt.
Bisher habe ich die Zahl als String zerlegt und mühsam wie eine schriftliche Division programmiert. (Also zerhackt in Blöcke, Multiplizieren und nächsten Block runterziehen usw)
Vielen Dank ! _________________ Umfangreichste Angaben zu Primzahl k-Tupel
https://www.pzktupel.de/ktuplets.php |
|
Nach oben |
|
|
hhr
Anmeldungsdatum: 15.07.2020 Beiträge: 88
|
Verfasst am: 12.12.2021, 11:42 Titel: |
|
|
bigint(i) ist in 'Big-Int overload.bi' für i als Long definiert.
Wenn man i als Ulong, Longint, oder Ulongint festlegt, werden große Zahlen als negativ interpretiert.
Besser ist es, die Zahl in einen String zu verwandeln: Str(i) oder bigint(Str(i)) anstelle von bigint(i).
Code: | #include "Big-Int overload.bi"
Operator Mod ( Byref lhs As bigint, Byref rhs As bigint ) As bigint
Dim As bigint result
big_int_mod(lhs.numptr, rhs.numptr, result.numptr)
Return result
End Operator
Dim As Ulong i=4294967000
Print bigint(i)
Print Str(i)
Print bigint(Str(i))
Print
Dim As bigint a,b,r
a="1" & String(70,"0")
b="1" & String(50,"0")
Print a
Print b
Print
r=(a + bigint(i)) Mod b
Print r,"Fehler"
r=(a + Str(i)) Mod b
Print r
r=(a + bigint(Str(i))) Mod b
Print r
Sleep
|
|
|
Nach oben |
|
|
pzktupel
Anmeldungsdatum: 07.07.2020 Beiträge: 83
|
Verfasst am: 12.12.2021, 12:43 Titel: |
|
|
Danke, schau ich mal an.
Prima !
Eingedampft
Code: |
#include "Big-Int overload.bi"
Operator Mod ( Byref lhs As bigint, Byref rhs As bigint ) As bigint
Dim As bigint result
big_int_mod(lhs.numptr, rhs.numptr, result.numptr)
Return result
End Operator
DIM AS STRING I
I="11117498174897189274891274981794798794178947198748190480185081905798198378911111111111111"
Dim As bigint b,r
b="279471927194981749871298414981724987981274891071723"
r=I Mod b
PRINT I;" MOD ";B;" = "; r
|
genügt und wurde extern RICHTIG bestätigt
r = 232459595565865651012239029684372070660743297922035 _________________ Umfangreichste Angaben zu Primzahl k-Tupel
https://www.pzktupel.de/ktuplets.php |
|
Nach oben |
|
|
pzktupel
Anmeldungsdatum: 07.07.2020 Beiträge: 83
|
Verfasst am: 12.12.2021, 22:57 Titel: Nachtrag |
|
|
Ich konnte diese Option gut in das mathematische Problem einbinden.
Das Resultat zu meinem Algorithmus dazu fiel bisher mager aus.
Es ist kein einfaches Problem !
Verteile alle Primzahlen bis 257 als Teiler in einem Interval von 1890 derart, sodas so wenig wie möglich Zahlen vorkommen, die prim oder Teiler >257 haben. Bisher fiel diese Anzahl auf 80 herab. _________________ Umfangreichste Angaben zu Primzahl k-Tupel
https://www.pzktupel.de/ktuplets.php |
|
Nach oben |
|
|
|
|
Du kannst keine Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum nicht 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.
|
|