Hallo,
ich suche eine Funktion die mir fuer einen String eine Zahl zwischen 0.0 und 1.0 zurueckliefert. Ich will diese Zahl in Tests verwenden, deswegen sollte sie fuer alle Ewigkeiten (auch bei anderer JRE version bzw. Hersteller der JRE) gleich bleiben.
Wenn ich dann z.B. den String via getBytes umwandle habe ich dann z.B. Bammel, dass durch das verwendete CharSet in Zukunft das Ergebnis anderst wird. Ich denke aber, dass ich durch Spezifikation des CharSet "UTF-8" auf der sicheren Seite bin?
Auch z.B. die Verwendung von Math.sin um den Wert zwischen 0..1 weiter zu normalisieren halte ich im Moment fuer Problematisch. Wer weiss wie Math.sin in Zukunft implementiert wird. Dadurch koennte mein Test kaputtgehen und ich suche das Problem bestimmt zuerst wo anderst.
Ein Problem ist, dass lange Strings Zahlen nahe bei 1 sind und kurze nahe bei 0.
Versuche ich dieses Problem zu beseitigen (ich normalisiere mit der laenge des String) tritt ein anderes Problem auf, naemlich, dass die Zahlen zwischen 0.0 und 1.0 nicht sehr gleichmaessig verteilt sind.
Ich will jetzt nicht meinen aktuellen Code zeigen um eure Ideen nicht zu beeinflussen. Was wuerdet ihr machen um fuer eine Liste von Strings eine Liste von Werten zwischen 0..1 zu erhalten. Die Zahlen sollten relativ gleichverteilt sein und auch nicht von der Laenge des Strings abhaengen.
ich suche eine Funktion die mir fuer einen String eine Zahl zwischen 0.0 und 1.0 zurueckliefert. Ich will diese Zahl in Tests verwenden, deswegen sollte sie fuer alle Ewigkeiten (auch bei anderer JRE version bzw. Hersteller der JRE) gleich bleiben.
Wenn ich dann z.B. den String via getBytes umwandle habe ich dann z.B. Bammel, dass durch das verwendete CharSet in Zukunft das Ergebnis anderst wird. Ich denke aber, dass ich durch Spezifikation des CharSet "UTF-8" auf der sicheren Seite bin?
Auch z.B. die Verwendung von Math.sin um den Wert zwischen 0..1 weiter zu normalisieren halte ich im Moment fuer Problematisch. Wer weiss wie Math.sin in Zukunft implementiert wird. Dadurch koennte mein Test kaputtgehen und ich suche das Problem bestimmt zuerst wo anderst.
Ein Problem ist, dass lange Strings Zahlen nahe bei 1 sind und kurze nahe bei 0.
Versuche ich dieses Problem zu beseitigen (ich normalisiere mit der laenge des String) tritt ein anderes Problem auf, naemlich, dass die Zahlen zwischen 0.0 und 1.0 nicht sehr gleichmaessig verteilt sind.
Ich will jetzt nicht meinen aktuellen Code zeigen um eure Ideen nicht zu beeinflussen. Was wuerdet ihr machen um fuer eine Liste von Strings eine Liste von Werten zwischen 0..1 zu erhalten. Die Zahlen sollten relativ gleichverteilt sein und auch nicht von der Laenge des Strings abhaengen.