Berechnen Sie die Summe einer Zeile im Pascal-Dreieck?
-
11-12-2019 - |
Frage
Ich habe versucht, die Gesamtzahl der 1500. Zeile im Pascal-Dreieck in C++ zu berechnen.
Ich habe mehr als 6 verschiedene Codefragmente aus dem gesamten Web ausprobiert.
Einige von ihnen stürzten vor der 10. Reihe ab, andere wurden verrückt usw.
Wie kann man die Gesamtzahl der Zahlen in der 1500. Reihe im Pascal-Dreieck berechnen?
Ich denke, es muss eine Formel geben, um eine Zeile zu finden, ohne jede Zeile zu durchlaufen, da Iterationen zum Absturz des Programms führen.
Lösung
Die Summe der Zahlen in einer beliebigen Zeile ist gleich 2 ^ n
Wo n
ist die Zeile (beginnend bei 0).In Ihrem Fall wäre es also einfach so 1 << 1499
.
Ihre Antwort lautet wie folgt:
17537331055217019373813793980140428996762007940165414412037899012395481925281661101828540443292484630826575203397718758699647274470734979877085519459002350423944978242664548632243401355791731473268341092170069314725677729132473171262691809694657480322332526275875721167754624586680565177898054854942790337156977105108828923716313380366502376637658596066837351781686391648520996613526331666834254976000087526677764529440217091269193357761841856604274688
Andere Tipps
Eine Google-Suche zeigt von Wiki:
Die Summe der Einträge in der n-ten Reihe von Pascal-Dreieck ist der nth Leistung von 2.
Daher müssen Sie 2 ^ 1500 berechnen, anstatt zu versuchen, über alle Reihen zu iterieren.
Die Zeilessumme des Pascal-Dreiecks ist generellacticetagcode, wobei n die Zeilennummer (Nullbasis) ist.Ihr endgültiger Wert ist der generelleAktivetagcode.
Ihr Programm nennt also, um eine 1500-Bit-Integer anzuzeigen, die das Hauptproblem sein sollte.Um einen binären Ausgang zu erzeugen, verwenden Sie generasacodicetagpre.