Ensuite, je voudrais vous présenter le grand frère de Fibonacci (séquence de Fibonacci), la séquence de Tribonacci.
Comme son nom l’indique, elle est très similaire à la méthode des séquences de Fibonacci, mais il existe des différences.
Si on commence cette séquence par [1,1,1], on obtiendra le résultat suivant :
[1,1,1,3,5,9,17,31,...]
Comme vous pouvez le constater, le quatrième terme 3 est la somme des premier, deuxième et troisième termes, le cinquième terme 5 est la somme des deuxième, troisième et quatrième termes, et ainsi de suite...
Et si on commençait cette séquence avec [0,0,1], quel résultat obtiendra-t-on ?
[0,0,1,1,2,4,7,13,24,...]
Après avoir lu cet exemple, vous avez probablement deviné la règle : à l'exception des trois premiers utilisés comme initiale numéros de séquence, chaque nombre suivant est égal à la somme des trois nombres les plus proches qui le précèdent.
En comparant la séquence de Fibonacci, la règle est la suivante : à l'exception des deux premiers nombres utilisés comme séquence initiale, chaque nombre suivant est égal à la somme des deux nombres les plus proches qui le précèdent.
Maintenant, comprenez-vous pourquoi j'ai dit qu'ils sont frères ?
Même, selon cette règle, elle peut être étendue à la séquence Xbonacci, mais pour ce sujet je ne parlerai que de la séquence Tribonacci.
D'accord, réfléchissons à la manière de mettre en œuvre une méthode de construction de la séquence Tribonacci !
Il reçoit deux paramètres. Le premier paramètre est une séquence d'initialisation et est un tableau. Le deuxième paramètre est un nombre indiquant le nombre d'éléments de la séquence à générer.
La valeur de retour est naturellement le tableau de séquence après la génération du nouvel élément.
Pour ce problème, deux situations sont à distinguer :
Premièrement, que dois-je faire si la taille de cette séquence d'initialisation est de 3, mais que je n'ai besoin de générer que 2 éléments ? La réponse est simple, il suffit d'intercepter les deux premiers éléments du tableau d'initialisation, et c'est OK.
Dans le deuxième cas, il faut générer des éléments autres que la séquence d'initialisation. C'est aussi très simple, c'est comme générer la séquence de Fibonacci, une boucle, et le nouvel élément est composé de. l'ajout des trois éléments précédents les plus récents et ainsi de suite.
function tribonacci(signature,n){ var startPoint = 0; if(n < signature.length){ return signature.slice(0,n); } for(var i=startPoint+signature.length;i<n;i++){ signature[i] = signature[startPoint] + signature[startPoint+1] + signature[startPoint+2]; startPoint++; } return signature; }
Ce qui précède est le contenu de la question intéressante JavaScript : séquence Tribonacci. Pour plus de contenu connexe, veuillez faire attention au site Web PHP chinois (www.php.cn) !