3 votes

Comment prédire des séquences de nombres, par exemple avec Excel ?

Dans Excel, il existe une fonction intéressante : si vous saisissez 1, 2, 3 dans trois cellules consécutives, puis que vous sélectionnez les cellules et les faites glisser vers le bas, le reste des cellules est automatiquement rempli par 4, 5, 6, 7, etc. Il est également capable de faire correspondre davantage de modèles. Par exemple, si je saisis 2, 4, 6, 8, il reconnaîtra que j'ajoute 2 et suggérera 10, 12, 14, etc.

Comment Excel sait-il quels chiffres ? Codifie-t-il en dur les différents cas (c'est-à-dire l'addition d'une constante, la soustraction d'une constante, la multiplication par une constante) ou existe-t-il un algorithme capable de le prédire automatiquement ? (Cette question devrait être indépendante du langage, mais si cela peut aider, je veux faire cela en jQuery).

Merci !

3voto

Jon Martin Points 1192

Je suis presque sûr que c'est une chose simple à faire. Excel vérifie probablement, lorsqu'un utilisateur saisit trois nombres, le delta entre chaque nombre consécutif. S'ils sont identiques les deux fois, il utilise ce delta pour prédire le nombre suivant.

1voto

Mihai Maruseac Points 10647

Si vous souhaitez effectuer cette opération de manière plus générique que ne le fait Excel (uniquement l'addition ou la soustraction de valeurs constantes), jetez un coup d'œil à certaines méthodes de calcul de l'impôt sur le revenu. algorithmes d'interpolation du point de vue des méthodes numériques. Cet article du wikibook est un tutoriel correct.

0voto

Adam Smith Points 1336

Dans Excel, cela ne fonctionne qu'avec les additions et les soustractions (à ma connaissance, je viens d'essayer avec les multiplications et les résultats ne suivent pas le même schéma que les originaux).

Sachant cela, je pense qu'il serait facile de calculer la différence entre les deux premières cellules, puis de vérifier la différence entre la cellule 2 et la cellule 3 pour voir si elle est la même. Vous pouvez ensuite appliquer cette transformation aux cellules que vous voulez prédire.

*Example*

Cell1: 2
Cell2: 5
Cell3: 8

if(cell2 - cell1 == cell3 - cell2)
    cell4 = cell3 + (cell2-cell1); //Cell4 will now be 11 since it increments by steps of 3

Vous pouvez ensuite utiliser une boucle for qui copiera la valeur souhaitée dans toutes les cellules sélectionnées (si vous voulez que les dix cellules suivantes suivent le modèle, utilisez une boucle for ou while qui mettra à jour la valeur de ces dix cellules).

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X