Dans le problème de numéro manquant:
Trouver le numéro manquant dans un tableau entier donné de 1 à 100? P> blockQuote>
Voici le code en Python pour ce problème: p>
N ne peut pas être prédéfini car il dépend du tableau qui est attribué dans la fonction H1>
xxx Pré> Je ne comprends pas la logique de la façon de proposer p>
xxx pré> p>
3 Réponses :
Vous ne devriez pas avoir n comme un argument. Cela augmentera l'erreur. TypeError: manquant Nombre () Manquant 1 Argument de position requis: 'N' P>
et n est défini plus tard dans la fonction. p>
Il existe également une erreur dans la fonction. P>
par exemple si num = [1,2,3,4,5,6] La sortie sera de 7 Mais votre tableau est censé se terminer à 6. P>
la réponse à votre question: - em> strong> p>
(n + 1) * (N + 2) / 2 est la somme des premiers nombres naturels N + 1 p>
Si vous souhaitez trouver un seul numéro manquant, voici le code,
def missingNumbers(nums):
missingNumbers = []
count = 0
for n in range(nums[-1]):
if n + 1 != nums[count]:
missingNumbers.append(n + 1)
else:
count = count + 1
return missingNumbers
On vous donne que, un chiffre est manquant dans un tableau de nombres consécutifs, P>
permet de supposer que vous connaissez la somme des nombres premiers. Laisser la somme des premiers n chiffres être s. Maintenant qu'un numéro est manquant auprès des premiers n chiffres, nous pouvons obtenir le numéro manquant comme p>
Permet maintenant de voir comment nous pouvons calculer S, P>
permet de dire que j'ai des chiffres "1, 2, 3, 4, 5, 5, ...., 100" p>
Maintenant, je veux calculer la somme d'entre eux, P>
Une chose que je peux faire est de le nourrir à un programme / calculatrice informatique ou de prendre une somme d'une par une. p>
Autre façon dont Young Gauss est arrivé lorsqu'on posait cette question par son professeur, P>
Nous avons donc, la somme des premiers n chiffres comme Pour votre problème si n est la longueur de la matrice avec le numéro manquant, N + 1 doit être la taille de la matrice d'origine. donc S - Somme de chiffres restants code> p>
S1 = 1 + 2 + 3 + ... + 100 code> p>
Prenez l'inverse de celui-ci, CODE> P>
let S2 = 100 + 99 + 98 + ... + 1 code> p>
Ajoutez maintenant S1 et S2 code> p>
S1 + S2 = (100 + 1) + (99 + 2) + .... + (1 + 100) CODE> P>
mais s1 = s2, donc, code> p>
2S1 = 101 + 101 + ... + 101 // séquence a 100 termes code> p>
s1 = (101) * (100) / 2 // somme des 100 premiers numéros code> p>
(n) * (n + 1) / 2 code> de manière généralisée. Cela peut également être prouvé par induction mathématique. P>
s = (n + 1) * (n + 2) / 2 code> p>
(n + 1) * (n + 2) / 2 code> est la formule mathématique de la somme des chiffres1, 2, 3 ... (N-1), n, n + 1) code>.Je suppose que vous n'avez jamais entendu parler de la méthode de la jeune Gauss pour résumer des chiffres? (Voir en.wikipedia.org/wiki/summation )
Avez-vous pensé à une manipulation de bits avec Xor? Cette formule n'est pas la seule façon de le résoudre (juste au cas où si c'était délicat pour vous)