Mathematik online lernen im Mathe-Forum. Nachhilfe online
Startseite » Forum » Aus einer 9-stelligen Zahl eine 4-stellige machen

Aus einer 9-stelligen Zahl eine 4-stellige machen

Universität / Fachhochschule

Tags: Algorithmus, Lösungsweg gesucht, Rechnen

 
Antworten Neue Frage stellen Im Forum suchen
Neue Frage
TBMSam

TBMSam aktiv_icon

14:39 Uhr, 13.01.2020

Antworten
Hallo Freunde,

ich suche eine möglichst gute Möglichkeit, bzw. einen guten Weg/eine gute Formel, um aus einer 9-stelligen Zahl eine 4-stellige zu machen.

Bsp:
Eingabe: 123456789 Formel angewendet Ergebnis: 7294
Eingabe: 987654321 Formel angewendet Ergebnis: 8253
darf aber auch:
Eingabe: 123456789 Formel angewendet Ergebnis: 7294
Eingabe: 987654321 Formel angewendet Ergebnis: 7294
was nur nicht passieren darf:
Eingabe: 123456789 Formel angewendet Ergebnis: 7294
Eingabe: 123456789 Formel angewendet Ergebnis: 8253
also bei gleicher Eingabe muss auch immer der gleiche Wert wieder rauskommen.

Habt ihr vielleicht kreative Vorschläge, wie diese Formel aussehen könnte?
Wenns geht halt nix triviales à la „erste 5 Stellen abschneiden“ oder so, etwas wo man halt nicht direkt draufkommt („einfach geteilt durch 100.000 und Rest abschneiden“). Hashing, Modulo, was auch immer, lasst euch was einfallen xD

Würde mich über jedwede Antwort freuen :-)

Vielen Dank schonmal im Vorraus für euer Hirnschmalz

Liebe Grüße


Für alle, die mir helfen möchten (automatisch von OnlineMathe generiert):
"Ich möchte die Lösung in Zusammenarbeit mit anderen erstellen."
Online-Nachhilfe in Mathematik
Antwort
HAL9000

HAL9000

14:45 Uhr, 13.01.2020

Antworten
CRC16(String) mod 10000 :-)
Frage beantwortet
TBMSam

TBMSam aktiv_icon

15:05 Uhr, 13.01.2020

Antworten
Hallo HAL9000 und vielen Dank für deine Antwort.

Sorry, leider bin ich erst noch am Anfang meines Studiums und kann mit noch nicht so vielen Sachen was anfangen. Habe es zwar versucht zu googeln, aber auch das war nicht wirklich eine Hilfe

Könntest du CRC16(String) kurz erklären? xD

Wäre super nett von dir.

Viele Grüße :-)
Antwort
HAL9000

HAL9000

15:12 Uhr, 13.01.2020

Antworten
> Könntest du CRC16(String) kurz erklären? xD

Auf das Ansinnen "kurz" kann ich nur kurz antworten: Nein.

Und für eine lange Erklärung dürfte Freund Google zahlreiche Links liefern, inklusive Codierungsschnipseln dazu.

Ich hatte dein Ansinnen ja so verstandes, dass es nix triviales sein soll, dass es als eine Art Prüfziffer möglichst sensibel auch auf übliche "Fehler" wie Ziffernvertauschungen usw. mit einem möglichst komplett anderen Wert reagieren soll. Das leistet CRC durchaus, wenn auch die Berechnung nicht so ganz ohne ist.
TBMSam

TBMSam aktiv_icon

20:00 Uhr, 13.01.2020

Antworten
Ja okay anderst gefragt: Weißt du ob es dafür irgendwelche Bibliotheken gibt? Also das am Ende halt was dransteht wie

public ‘int‘ calculate(int number)
{
‚int‘ crcresult = crc(number);
return modulo(crcresult);
}

(sorry, programmiere in C# xD)
Antwort
supporter

supporter aktiv_icon

06:56 Uhr, 14.01.2020

Antworten
gelöscht.
Antwort
ermanus

ermanus aktiv_icon

09:57 Uhr, 14.01.2020

Antworten
Hallo,
hier ein Code-Schnipsel in Java, was du sicher leicht
auf C# abändern kannst:
introcs.cs.princeton.edu/java/61data/CRC16.java

Gruß ermanus
Diese Frage wurde automatisch geschlossen, da der Fragesteller kein Interesse mehr an der Frage gezeigt hat.