|
---|
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: Formel angewendet Ergebnis: Eingabe: Formel angewendet Ergebnis: darf aber auch: Eingabe: Formel angewendet Ergebnis: Eingabe: Formel angewendet Ergebnis: was nur nicht passieren darf: Eingabe: Formel angewendet Ergebnis: Eingabe: Formel angewendet Ergebnis: 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 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." |
|
CRC16(String) mod 10000 :-) |
|
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 :-) |
|
> 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. |
|
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) |
|
gelöscht. |
|
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.
|