Les suites de Kuzrassi

Discussion générale entre passionnés et amateurs de mathématiques sur des sujets mathématiques variés
syrac

par syrac » 08 Fév 2015, 19:29

En fait mon précédent post se mord la queue. Il était évident dès les quelques posts qui l'ont précédé que le successeur de nPair(r) dans une suite de kuzrassi ne pouvait être que nImpair(r), puisque nImpair(r) = (nPair(r)-1)/3. Il était également évident que le successeur d'une bifurcation et le kuz dont elle est le facteur partagent la même suite de Collatz. L'histoire des valves, si elle présente un intérêt, n'était pas vraiment utile.

Mais bon, ce qui vaut d'être lu ce sont les quatre paragraphes finaux... :lol3:



syrac

par syrac » 09 Fév 2015, 20:24

Simplification de l'algorithme de kuzrassi

Rappel de la définition de nPair : un entier pair p appartient à nPair si p-1 est divisible par 3 mais pas par 9.

Voici un tableau récapitulant les opérations effectuées par les algorithmes de Collatz et de kuzrassi en fonction de la nature de l’entier n :
Image
Pour simplifier on peut utiliser l’opérateur ternaire de Php, c’est-à-dire condition ? instruction si vrai : instruction si faux, ce qui donne :

dans nPair ? a : b ;) n ;) pair ? c : d

Ce qui fondamentalement différencie l’algorithme de Collatz de celui de kuzrassi est donc ceci : le premier considère tous les entiers pairs sur un pied d’égalité, alors que le second a besoin de savoir à quel type chacun d’eux appartient. Les entiers impairs ne jouent aucun rôle dans ce qui détermine l’action à prendre. Voici comment déterminer ladite appartenance :

dansnPair(n) = (n+2)/18 est entier OU (n+14)/18 est entier ;) vrai ou faux

Dans une suite de Collatz (ou de kuzrassi), les entiers pairs qui n’appartiennent pas à nPair sont de la forme

Image

c’est-à-dire 2, 8, 10, 14, 20, 26, 28, 32, 38, 44, 46, 50, 56, 62, 64, 68, 74, 80, 82, 86, 92, 98, 100, …

Il est nettement plus simple de tester l’appartenance à nPair plutôt qu’à ce machin-là, d’autant plus qu’on n’a même pas besoin de savoir au préalable si n est pair ou impair : il suffit de savoir s’il passe ou non le test dansnPair(n). Ça évite les trois tests "n pair ?", "n-1 divisible par 3 ?", "n-1 non divisible par 9 ?".

L'algorithme peut désormais s'écrire : si dansnPair(n1) alors n2 = (n1-1)/3, sinon n2 = 2*n1. Ça le rend aussi simple que celui de Collatz.

syrac

par syrac » 10 Fév 2015, 16:20

Une solution plus simple encore, qui m'a traversé l'esprit pendant que j'étais occupé à autre chose, et que je viens de tester avec succès dans Mathematica. L'algo de kuzrassi applique (n-1)/3 à n si

dansNpair[n_] := MemberQ[{4,16}, Mod[n,18]]

Une seule instruction qui renvoie vrai ou faux selon que n mod 18 figure ou non dans la liste {4,16}. Mais bon, j'arrête là parce que monologuer devient lassant.

 

Retourner vers ⚜ Salon Mathématique

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 7 invités

Tu pars déja ?



Fais toi aider gratuitement sur Maths-forum !

Créé un compte en 1 minute et pose ta question dans le forum ;-)
Inscription gratuite

Identification

Pas encore inscrit ?

Ou identifiez-vous :

Inscription gratuite