0
votes

Comment trouver l'expression mathématique pour trouver un numéro manquant dans un tableau

Dans le problème de numéro manquant:

Trouver le numéro manquant dans un tableau entier donné de 1 à 100?

Voici le code en Python pour ce problème:

N ne peut pas être prédéfini car il dépend du tableau qui est attribué dans la fonction xxx

Je ne comprends pas la logique de la façon de proposer xxx


3 commentaires

(n + 1) * (n + 2) / 2 est la formule mathématique de la somme des chiffres 1, 2, 3 ... (N-1), n, n + 1) .


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)


3 Réponses :


1
votes

Vous ne devriez pas avoir n comme un argument. Cela augmentera l'erreur. TypeError: manquant Nombre () Manquant 1 Argument de position requis: 'N'

et n est défini plus tard dans la fonction.

Il existe également une erreur dans la fonction.

par exemple si num = [1,2,3,4,5,6] La sortie sera de 7 Mais votre tableau est censé se terminer à 6.

la réponse à votre question: -

(n + 1) * (N + 2) / 2 est la somme des premiers nombres naturels N + 1


0 commentaires

1
votes

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


0 commentaires

2
votes

On vous donne que, un chiffre est manquant dans un tableau de nombres consécutifs,

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

S - Somme de chiffres restants

Permet maintenant de voir comment nous pouvons calculer S,

permet de dire que j'ai des chiffres "1, 2, 3, 4, 5, 5, ...., 100"

Maintenant, je veux calculer la somme d'entre eux,

Une chose que je peux faire est de le nourrir à un programme / calculatrice informatique ou de prendre une somme d'une par une.

Autre façon dont Young Gauss est arrivé lorsqu'on posait cette question par son professeur,

S1 = 1 + 2 + 3 + ... + 100

Prenez l'inverse de celui-ci,

let S2 = 100 + 99 + 98 + ... + 1

Ajoutez maintenant S1 et S2

S1 + S2 = (100 + 1) + (99 + 2) + .... + (1 + 100)

mais s1 = s2, donc,

2S1 = 101 + 101 + ... + 101 // séquence a 100 termes

s1 = (101) * (100) / 2 // somme des 100 premiers numéros

Nous avons donc, la somme des premiers n chiffres comme (n) * (n + 1) / 2 de manière généralisée. Cela peut également être prouvé par induction mathématique.

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 = (n + 1) * (n + 2) / 2


0 commentaires