"match" (mtv) algorithmus?

Freak2k

Erfahrenes Mitglied
Hallo,

ihr kennt doch bestimmt die sendung auf mtv (kommt die überhaupt noch?)
wo man per sms zwei namen geschickt hat und ein algorithmus ausgerechnet hat,
wieviel prozent diese beiden personen zusammen passen...(auch wenn's schwachsinn is)

Aber weiß jemand, wie diese berechnung funktioniert?
Kennt jemand eine seite?

danke
 
Ich weiß zwar nicht, wie die Berechnung bei MTV funktioniert, ich kann mir aber überlegen, welche Anforderungen so ein Algorithmus erfüllen muss (sollte):
  1. Er muss ganze Zahlen im Interval [0,100] ausspucken.
  2. Er sollte beim Tausch der Argumente das gleiche Ergebnis produzieren.
  3. Die Ergebnisse müssen reproduzierbar sein.
  4. Verschiedene Namen mit gleichen Buchstaben (z.B. Alex und Axel) sollten nicht zum selben Ergebnis führen.
  5. Er sollte keinen Überlauf produzieren (Die Bedingung ist während der Implementation hinzugekommen :-( )
Aus 1 folgernd, bietet sich an, den Modulo-Operator zu verwenden.
Aus 2 folgt, dass man zur Verbindung Rechenarten benutzt, die dem Kommutativgesetz genügen (Addition, Multiplikation).
Aus 3 folgt, dass man weder Zufall, noch aktuelle Zeit oder ähnliches einfließen lässt.
Aus 4 folgt, dass die Buchstaben anhand ihrer Position im Namen gewichtet werden sollten.
Aus 5 folgt, dass bereits Zwischenergebnisse auf das gewünschte Interval reduziert werden sollten, ohne das Ergebnis zu beeinflussen (Modulo bietet sich auch hier an).

Aus den Bedingungen einen Algorithmus zu produzieren ist gar nicht so schwer.
Ich habe mir überlegt, die Buchstaben über ihre Position im ASCII-Zeichensatz zu Zahlen zu machen und als Wichtung die erhaltene Zahl mit der Position des Buchstabens im Namen (beginnend bei 1) zu multiplizieren. Die Ergebnisse der einzelnen Buchstaben werden addiert und mit modulo 101 sofort auf das passende Interval reduziert.

Hier ein Beispiel in PHP:
PHP:
<form action="match.php" method="get">
<input type="text" name="a" value="<?
    echo (isset($_GET['a'])?$_GET['a']:""); ?>">
<input type="text" name="b" value="<?
    echo (isset($_GET['b'])?$_GET['b']:""); ?>">
<input type="submit" name="matchit" value="match?">
</form>

<?

    function match($a,$b) {
        $m=0;
        for ($i=0;$i<strlen($a);$i++) {
            $m+=(ord($a{$i})*($i+1));
            $m = $m % 101;
        }
        for ($i=0;$i<strlen($b);$i++) {
            $m+=(ord($b{$i})*($i+1));
            $m = $m % 101;
        }
        return $m;
    }
    
if (isset($_GET['a']) && isset($_GET['b'])) {
    echo $_GET['a']
        ." passt mit "
        .match($_GET['a'],$_GET['b'])
        ."% zu ".$_GET['b']
        .".";
}
?>
Wenn das mit Deinem Traumpartner nicht hinkommt, kannst Du ja noch ein bisschen am Algorithmus schrauben ;)

Gruß hpvw
 
genau sowas meine ich....
er spuckt zwar bei meiner Freundin (sind 5 Jahre zusammen)
nur 48% aus....egal...ist ja auch nur zur spielerei gedacht

trotzdem vielen Dank
 
moin


Ich könnte mir auch verstellen das es bei MTV eine Liste mit Sprüchen und dazugehöriger Prozentzahl gibt, und wer grad bei einer schlechten Nachricht dran kommt hat pech gehabt.
Das ist eh so seriös wie Horoskope.


mfg
umbrasaxum
 
also die Prozentzahl wird schon nach einem ähnlichen system berechnet werden!
Haben unsere mädchen früher in der schule auch gemacht!

Bloß der spruch wird dann passend zur prozentzahl aus einer liste gewählt!
 
Man kann sich auch überlegen, denseleben Algotithmus nochmal mit mod n laufen zu lassen, damit man zu jeder Prozentzahl n verschiedene Sprüche ausgeben kann.
Aber irgendwer muss sich dann auch n mal 101 verschiedene Sprüche ausdenken.
Das lässt sich natürlich beliebig erweitern, zum Beispiel kann man für die Sprüche Gruppen von Prozentsätzen bilden, um die Anzahl der Sprüche zu reduzieren.
Es ließe sich auch regeln, dass man nicht immer n Sprüche zu jedem Prozentsatz bzw. jeder Gruppe schreiben muss, indem man beim zweiten Durchlauf nicht mod n, sondern mod `Anzahl Sprüche in der Gruppe` macht. Usw....

Gruß hpvw
 
Hi.

Ich kenne das auf MTV nicht, wehre mich sehr erfolgreich gegen das Ansehen dieser Sender, aber das klingt mir irgendwie sehr nach etwas, was wir in der Kindheit öfters getan haben.

Einfach 2 Namen nehmen, und dann beim ersten Namen beginnend die einzelnen Buchstaben genommen und dann irgendwie geschaut wie oft der so vorkommt und dann irgendwie zusammengerechnet.
Naja.. war nur ne spielerei unter Kindern..

MfG,
Alex
 
Zurück