Au cours des deux derniers jours, j'ai regardé le github d'un certain maître et j'ai découvert qu'il s'intéressait davantage aux algorithmes. J'ai vu un des algorithmes de comptage de pas pour calculer des nombres que j'ai trouvé intéressant, alors j'ai implémenté. un moi-même.
Description de l'algorithme et principe de mise en œuvre
Étant donné un nombre entier, comptez combien de mouvements peuvent atteindre l'objectif. Par exemple, un chiffre 4 peut avoir les mouvements suivants
En fait, la conclusion suivante peut être tirée de la combinaison ci-dessus.
1. Commencez par lister toutes les combinaisons dont les éléments sont 1
2. De gauche à droite, les combinaisons dont les éléments sont 1
3. Récursez l'ensemble ci-dessus, recherchez l'indice 1 dans l'élément, puis calculez les valeurs des 2 éléments à partir de la gauche. Le résultat est une opération récursive
.
4. Exclure les situations 1 et 2
Les trois fonctions d'outils suivantes sont fournies :
//Afficher la valeur du tableau
fonction print(arg){
pour(var je = 0; je < arg.length; je ){
console.log(arg[i]);
>
>
// Vérifiez s'il s'agit d'un mouvement avant ou arrière
fonction hasRepeat(src, dist){
Si (dist.length != 2) renvoie false ;
pour(var je = 0, len = src.length; je < len ; je ){
Si(dist.length == src[i].length){
Si(dist[0] == src[i][1]){
return true ;
}
>
>
Renvoie faux ;
>
L'implémentation de l'algorithme est publiée ci-dessous :
//Courir
countSteps(4);
// Afficher le contenu suivant
/*
[ 1, 3 ]
[ 4 ]
[ 1, 1, 2 ]
[ 2, 2 ]
[ 1, 1, 1, 1 ]
Il existe au total : 5 types de marche
*/
Résumé
Cet algorithme peut en fait être appliqué à certains types de jeux. Lorsque la distance entre deux objets est constante, toutes les possibilités peuvent être traitées. Bien sûr, il peut également être appliqué à d'autres endroits. Je suis familier avec l'algorithme. Il y a relativement peu de pratique, mais il a toujours de la valeur. Les algorithmes sont en fait utilisés dans de nombreux détails de l'interface utilisateur. Je publierai plus d'articles sur les algorithmes lorsque j'aurai le temps de me donner des avis plus précieux. 🎜>