Calcolo totale di una riga in triangolo Pascal?
-
11-12-2019 - |
Domanda
Ho cercato di calcolare il totale della 1500a riga nel triangolo Pascal in C ++.
Ho provato più di 6 diversi frammenti di codice da tutto il web.
Alcuni di loro si sono schiantati prima della decima riga, alcuni impazziti ecc.
Come si può raggiungere il calcolo totale dei numeri nella 15.000 riga nel triangolo Pascal.
Penso che ci debba essere una formula per trovare una riga senza interazione su ogni riga, perché le iterazioni causano il crash del programma.
Soluzione
La somma dei numeri in qualsiasi riga è uguale a 2 ^ n
dove n
è la riga (a partire da 0).Quindi, nel tuo caso, sarebbe solo 1 << 1499
.
La tua risposta è la seguente:
.17537331055217019373813793980140428996762007940165414412037899012395481925281661101828540443292484630826575203397718758699647274470734979877085519459002350423944978242664548632243401355791731473268341092170069314725677729132473171262691809694657480322332526275875721167754624586680565177898054854942790337156977105108828923716313380366502376637658596066837351781686391648520996613526331666834254976000087526677764529440217091269193357761841856604274688
Altri suggerimenti
Una ricerca Google rivela da Wiki:
.La somma delle voci nella Nth Fiw of Pascal's Triangle è l'ennesima Potenza di 2.
Quindi devi calcolare 2 ^ 1500 invece di cercare di ingata su tutte le righe.
La riga della riga del triangolo Pascal è 1<<n
con n è il numero di riga (a base zero).Il tuo valore finale è 1<<1499
.
Quindi il tuo programma dovrebbe disporre un numero intero di 1500 bit, che dovrebbe essere il problema principale.Per produrre un'uscita binaria, utilizzare
printf("1");
for (int i=1;i<1500;i++) printf("0");
printf("\n");
.