Did you know that you can navigate the posts by swiping left and right?

Peter und die Lottozahlen

09 Jul 2008 . Unknown . Comments

Vor ein paar Tagen hat eine Arbeitskollegin ein mathematisches Rätsel in mein Gästebuch bei wer-kennt-wen.de geschrieben:

Peter träumte wieder einmal vom großen Geld. Er stellte sich gerade vor, sechs richtige im Lotto zu haben, als es plötzlich hell aufblitzte. Eine Märchenfee stand vor ihm und sagte: "Du hast einen Wunsch frei." Ohne zu zögern reichte Peter ihr ein Stück Papier und einen Stift. "Wie wär's, wenn du mir die Lottozahlen von nächster Woche hier aufnotierst?", meinte er.
"Alle sechs Lottozahlen.", sagte die Fee erstaunt, "Das sind ja gleich sechs Wünsche auf einmal, also das geht nun wirklich nicht."

Dennoch notierte die Fee eine Zahl auf dem Zettel und sagte: "Wenn du alle sechs Lottozahlen von nächster Woche zusammenaddierst, dann kommst du auf dieses Ergebnis!" Peter sah sich die Zahl an und überlegte. "Oh Gott, da gibt es sicher tausende Möglichkeiten mit sechs verschiedenen Zahlen zwischen 1 und 49 auf diese Summe zu kommen", meinte er resigniert. "OK, ich geb' dir noch einen Tipp.", sagte die Fee, "Rechne doch mal genau aus, wieviele Möglichkeiten es gibt, die diese Summe ergeben. Wenn du das Ergebnis dann mit der Zahl malnimmst, die ich dir eben aufgeschrieben habe, dann erhältst du eine sehr große Zahl von einigen Millionen, und diese Zahl kommt auch raus, wenn man alle sechs Lottozahlen miteinander malnimmt."

Peter wollte sich gerade für den Tipp bedanken, als die Fee auch schon wieder verschwand. Nun begann er zu rechnen, und bei der nächsten Lottoziehung hatte er tatsächlich sechs Richtige. Welche sechs Zahlen wurden gezogen?

Jemand wie Algorithman würde jetzt eventuell eine mathematische Formel bereitstellen können, mit der man das ganze hoch-wissenschaftlich und mathematisch-genau berechnen kann. Ich bin da ein wenig pragmatischer und verwende lieber die Holzhammermethode: Einfach alle möglichen Zahlenkombinationen durchgehen!

Da ich aber die nächsten Monate auch noch besseres zu tun habe hier ein kleines C#-Programm, dass einem diese Arbeit abnimmt:

using System;

namespace Anheledir {
  class Program {
    static void Main( string[] args ) {
      var possibilities = new int[280];
      int total, product;

      for ( var n1 = 1; n1 <= 49; n1++ ) {
        for ( var n2 = n1 + 1; n2 <= 49; n2++ ) {
          for ( var n3 = n2 + 1; n3 <= 49; n3++ ) {
            for ( var n4 = n3 + 1; n4 <= 49; n4++ ) {
              for ( var n5 = n4 + 1; n5 <= 49; n5++ ) {
                for ( var n6 = n5 + 1; n6 <= 49; n6++ ) {
                  total = n1 + n2 + n3 + n4 + n5 + n6;
                  possibilities[total]++;
                }
              }
            }
          }
        }
      }

      for ( var n1 = 1; n1 <= 49; n1++ ) {
        for ( var n2 = n1 + 1; n2 <= 49; n2++ ) {
          for ( var n3 = n2 + 1; n3 <= 49; n3++ ) {
            for ( var n4 = n3 + 1; n4 <= 49; n4++ ) {
              for ( var n5 = n4 + 1; n5 <= 49; n5++ ) {
                for ( var n6 = n5 + 1; n6 <= 49; n6++ ) {
                  total = n1 + n2 + n3 + n4 + n5 + n6;
                  product = n1 * n2 * n3 * n4 * n5 * n6;
                  if ( possibilities[total] * total == product ) {
                    Console.WriteLine( "=> {0}, {1}, {2}, {3}, {4}, {5}", n1, n2, n3, n4, n5, n6 );
                    Console.WriteLine( "   total: {0}, product: {1}", total, product );
                  }
                }
              }
            }
          }
        }
      }

      Console.Write( Environment.NewLine + "Press any key to continue..." );
      Console.ReadKey();
    }
  }
}
Questions/Suggestions
As always, for questions or feedback, contact me or leave a comment.

Octocat by GitHubEdit this page on GitHub