Inscription / Connexion Nouveau Sujet
Niveau Loisir
Partager :

Interet d'une fonction fermé (potentiellement lié à Collatz)

Posté par
exstyle
31-07-25 à 22:37

Bonjour,

Je voulais savoir quel pouvait être l'intérêt d'une fonction fermé pour la tentative de résolution d'un problème plus grand.


Comme beaucoup, je me suis amusé sur la syracuse, le problème 3n+1, ou aussi appelé Gollatz. Aucunement la prétention de résoudre, juste que c'est un sujet intéressant.

Le tableau des suites compressés m'a beaucoup intégré. Si bien qu'en l'observant, j'ai pu lier le passage d'une colonne à une autre colonne, éloigné si il le faut, en faisant appel à la première ligne.

\begin{array}{|c|c|c|c|c|c|}
 \\ \hline
 \\ x & n=0 & n=1 & n=2 & n=3 & n=4 \\
 \\ \hline
 \\ 1  & 1   & 5   & 21  & 85   & 341   \\
 \\ 3  & 3   & 13  & 53  & 213  & 853   \\
 \\ 5  & 5   & 21  & 85  & 341  & 1365  \\
 \\ 7  & 7   & 29  & 117 & 469  & 1877  \\
 \\ 9  & 9   & 37  & 149 & 597  & 2389  \\
 \\ 11 & 11  & 45  & 181 & 725  & 2901  \\
 \\ 13 & 13  & 53  & 213 & 853  & 3413  \\
 \\ 15 & 15  & 61  & 245 & 981  & 3925  \\
 \\ 17 & 17  & 69  & 277 & 1109 & 4437  \\
 \\ 19 & 19  & 77  & 309 & 1237 & 4949  \\
 \\ \hline
 \\ \end{array}

Par exemple, pour passer de 9 à 149, donc de la première colonne à la troisième, il faut faire 9 * 4 * 4 + n-1 de la ligne 1, soit 5.

9*4*4 + 5 = 149

Sur cette base, j'ai pu faire la formule suivante :

L_x[n] = L_x[0] \cdot 4^n + L_1[n-1]

Et par conséquence, j'ai pu faire la fonction fermée suivante :

L_x[n] = \frac{(3x + 1) \cdot 4^n - 1}{3}


Celle-ci permet de trouver pour n'importe quel nombre impair, ses prédécesseurs.

La question étant, que peut-on en conclure ? Et que faire avec ?

Posté par
exstyle
re : Interet d'une fonction fermé (potentiellement lié à Collat 31-07-25 à 22:48

Pour les curieux, un petit script en .net pour le tester.
1. On indique un impair (un très grand nombre devrait marcher, si tr-s grand, peut-être changé le type int en Bigint),

2. Le nombre de colonne on veut afficher.

Console.Write("Enter an odd starting value x: ");
var inputX = int.Parse(Console.ReadLine());

Console.Write("Enter the number of terms n: ");
int n_terms = int.Parse(Console.ReadLine());

var sequence = new List<(int n, long L)>();
for (int n = 0; n < n_terms; n++)
{
    var inputL = ((3 * inputX + 1) * (long)Math.Pow(4, n) - 1) / 3;
    sequence.Add((n, inputL));
}

string csvPath = "c:\\compressed_syracuse_sequence.csv";
using (var writer = new StreamWriter(csvPath))
{
    writer.WriteLine("n,L_x[n]");
    foreach (var item in sequence)
    {
        writer.WriteLine($"{item.n},{item.L}");
        Console.WriteLine($"{item.n},{item.L}");
    }
}

Console.WriteLine($"Sequence exported to: {csvPath}");

Posté par
exstyle
re : Interet d'une fonction fermé (potentiellement lié à Collat 29-08-25 à 18:33

Je me réponds à moi-même.

C'est une formule connue mais pas si courante sous cette forme-là.
On retrouve souvent une autre formule y => 4y +1 pour représenter les écarts entre les valeurs des colonnes.

Mais elle met moins en avant l'aspect structuré (et nécessite des itérations si on veut aller parcourir dans des colonnes très éloignées).

Me concernant, elle a été le point de départ d'une analyse plus poussée du tableau de compression de Collatz.

Pour les curieux, je joins ma petite étude sur le sujet. Certainement des choses déjà vu et plus approfondi ailleurs, mais qui reste intéressant d'un point de vue amateur et les curieux comme moi de ce tableau intriguant.

pdf
PDF - 499 Ko

Posté par
Rintaro
re : Interet d'une fonction fermé (potentiellement lié à Collat 30-08-25 à 14:29

Salut,

merci et beau boulot.

Posté par
exstyle
re : Interet d'une fonction fermé (potentiellement lié à Collat 01-11-25 à 23:29

Merci

J'ai poursuivi l'étude à partir du tableau compressé des impairs.

- J'ai  re-modélisé en distances paires : toute distance entre deux impairs est paire.
  Pour une distance D donnée, on obtient deux couples (racine, lien) :


 \\ r_{-}=2D-1,\quad Y_{-}=3D-1
 \\


 \\ r_{+}=4D+1,\quad Y_{+}=3D+1.
 \\

- Exemples (par distance) :
  D=2 : (3,5) et (9,7)
  
  D=4 : (7,11) et (17,13)
  
  D=6 : (11,17) et (25,19)

On retrouve ainsi le tableau des impairs :
- 3 → 5 car (3·3+1)/2 = 5
- 9 → 7 car (3·9+1)/2^2 = 7

Sur cette base, j'ai pu produire un autre tableau/grid

Transition : du modèle “distance paire” vers la “glued grid”

(1) Re-étiquetage. Pour tout impair y, on pose

 \\ \psi(y)=\frac{y+1}{2}\quad\Longleftrightarrow\quad y=2D-1\ \ (D=\psi(y)).
 \\
Chaque impair vit donc sur une “ligne” indexée par D.

(2) Deux branches canoniques (venant du modèle distance ci-dessus) :
les couples (r_{-},Y_{-}) et (r_{+},Y_{+}) décrivent exactement les paires “(racine, lien)” du tableau compressé.

(3) Observation centrale (pur calcul). Si y=2D-1 est impair, alors

 \\ 3y+1=6D-2=2\,(3D-1).
 \\

En “oddisant” :

 \\ T(y)=\mathrm{oddize}(3y+1)=\mathrm{oddize}(3D-1).
 \\

En re-étiquetant :

 \\ \psi\bigl(T(y)\bigr)=\frac{T(y)+1}{2}=\frac{\mathrm{oddize}(3D-1)+1}{2}=: \Sigma(D).
 \\

(4) Naissance de la “glued grid”. Pour chaque D, on se donne deux “positions” :
le bord gauche L(D) qui représente y=2D-1 ;
  
un pivot M(D) sur la même ligne (il sert de “couture”).
  
On introduit deux mouvements atomiques :
LH : L(D) → M(D) (on “parcourt” la demi-ligne) ;
  
SEAM : M(D) → L(Σ(D)) (on “coud” vers la ligne imposée par l'algèbre).

(5) Exactitude en 2 pas. Pour l'impair y=2D-1, on part de L(D).
Un pas LH puis un pas SEAM amènent à L(Σ(D)).
Cette position représente exactement T(y), car

 \\ \begin{aligned}
 \\ 2\,\Sigma(D)-1
 \\ &= 2\cdot \frac{\mathrm{oddize}(3D-1)+1}{2} - 1 \\[4pt]
 \\ &= \mathrm{oddize}(3D-1) \\[4pt]
 \\ &= T(y).
 \\ \end{aligned}
 \\

(6) Sens “structurel” de la couture (SEAM). Le facteur 2^{\nu_2(3D-1)} retiré par oddize
correspond à “combien de fois” on retire des 2 (on peut le voir comme une somme de coutures « unités » κ∈{1,2}).
SEAM encode cette part “2-adique” du pas impair ; LH encode la traversée du demi-bloc (parcours horizontal de la ligne).


Identité “glued grid” (clé)


 \\ \forall\,y\ \text{impair},\qquad
 \\ \psi(T(y))=\Sigma(\psi(y)),
 \\ \quad\text{avec}\quad
 \\ T(y)=\mathrm{oddize}(3y+1),\ \ \psi(y)=\frac{y+1}{2},\ \ \Sigma(D)=\frac{\mathrm{oddize}(3D-1)+1}{2}.
 \\

Tableau — Partie A (D = 1…8) : on ajoute le pivot P=3D−1 et v=ν₂(P)

Dy = 2D−1P = 3D−1v = ν₂(P)
1121
2350
3583
47110
59141
611170
713202
815230


Tableau — Partie B (D = 1…8) : k=v+1,  T(y)=oddize(P),  Σ(D) et ψ(T(y))
Dk = v+1T(y) = oddize(P)Σ(D)ψ(T(y))
12111
21533
34111
411166
52744
611799
73533
81231212



Suite — Partie A (D = 9…12)
Dy = 2D−1P = 3D−1v = ν₂(P)
917261
1019290
1121325
1223350


Suite — Partie B (D = 9…12)
Dk = v+1T(y) = oddize(P)Σ(D)ψ(T(y))
921377
101291515
116111
121351818



Rappel des formules


 \\ D=\psi(y)=\frac{y+1}{2},\quad y=2D-1,\quad
 \\ P=3D-1,\quad v=\nu_2(P),\quad
 \\ k=\nu_2(3y+1)=1+v.
 \\


 \\ T(y)=\mathrm{oddize}(3y+1)=\mathrm{oddize}(P),\qquad
 \\ \Sigma(D)=\frac{\mathrm{oddize}(P)+1}{2},\qquad
 \\ \psi(T(y))=\frac{T(y)+1}{2}=\Sigma(D).
 \\



Exemples détaillés

— Cas D=7 (donc y=13) :


 \\ 3D-1=20,\quad \mathrm{oddize}(20)=5,\quad
 \\ \Sigma(D)=\frac{5+1}{2}=3.
 \\


 \\ 3y+1=40,\quad \nu_2(40)=3,\quad
 \\ T(y)=\mathrm{oddize}(40)=5,\quad
 \\ \psi(T(y))=\frac{5+1}{2}=3.
 \\

— Cas D=10 (donc y=19) :


 \\ 3D-1=29,\quad \mathrm{oddize}(29)=29,\quad
 \\ \Sigma(D)=\frac{29+1}{2}=15.
 \\


 \\ 3y+1=58,\quad \nu_2(58)=1,\quad
 \\ T(y)=\mathrm{oddize}(58)=29,\quad
 \\ \psi(T(y))=\frac{29+1}{2}=15.
 \\


Conclusion (provisoire) — appel à relecture

Sur cette base, j'articule deux ingrédients complémentaires :

No-cycle (grille “glued grid”).
La simulation exacte “2-pas” (LH puis SEAM) du pas impair
entraîne une augmentation stricte d'un score/Lyapunov Ψ à chaque étape,
ce qui exclut les cycles dirigés non triviaux dans la dynamique impaire.

Non-divergence (automate des coutures).
Sur l'automate fini Σ_b (mod 3^b), chaque couture a un poids
w=\log_2(3)-\kappa,\qquad \kappa\in\{1,2\}.
La boucle \kappa=2 en r\equiv -1\pmod{3^b} donne
\mu^\ast=\log_2(3)-2<0.
Une “inégalité de bloc” (avec S\ge m coutures pour m pas impairs, et un correctif borné \delta(y)\le\log_2(4/3))
implique une dérive non positive de \log_2 y sur tout bloc, donc pas de divergence.


Ce que cela suggère — et ce qu'il faut vérifier

Si ces deux points sont corrects (no-cycle + non-divergence),
on obtient “borné + pas de cycle non trivial”,
donc une trajectoire impaire finit au point fixe unique y=1.
Je ne présente pas cela comme une validation finale : je sollicite vos relectures et contre-exemples éventuels.

Points à vérifier en priorité :
1) Identités “distance → couture” :
3y+1=2(3D-1),\quad T(y)=\mathrm{oddize}(3D-1),\quad \psi(T(y))=\Sigma(D).

2) “Au moins une couture par pas impair” :
k=\nu_2(3y+1)\ge 1.

3) Construction de \Sigma_b et cohérence des poids
w=\log_2(3)-\kappa pour \kappa\in\{1,2\}.

4) Min-moyenne exacte :
existence de la boucle \kappa=2 en r\equiv -1\ (\mathrm{mod}\ 3^b)
et conclusion \mu^\ast=\log_2(3)-2 (indépendant de b).

5) Inégalité de bloc :
sommation télescopique avec S\ge m et
annulation “fine” via \mu^\ast+\log_2(4/3)=0.


Note méthodo / IA

Je précise que cette partie (formulation Lyapunov, automate min-moyenne, inégalité de bloc)
a été assistée par une IA (LLM) pour la mise en forme et la structuration des arguments.
Je ne maîtrise pas encore tous les détails techniques, en particulier sur la dualité min-moyenne
et les preuves “par certificat” sur \Sigma_b.
Je joins volontiers le PDF et/ou les scripts pour vérification indépendante.


Organisation des échanges :
si la section “min-moyenne / inégalité de bloc” devient trop technique pour ce fil,
je peux ouvrir un sujet dédié “Σ_b : certificat min-moyenne et inégalité de bloc”
et y centraliser PDF, logs et scripts.
Vos retours (erreurs, cas limites, références proches) sont très appréciés — merci !

pdf
PDF - 274 Ko

Posté par
exstyle
re : Interet d'une fonction fermé (potentiellement lié à Collat 04-11-25 à 10:17

"Dire 'ΔΨ > 0 sur chaque arête' ne suffit pas. Il faut prouver que Ψ est intégrable (que la 1-forme est exacte), c'est-à-dire qu'il existe une fonction globale Ψ : nœuds → ℝ telle que Ψ(v) - Ψ(u) = ΔΨ(u→v) pour toute arête.
Sans cette intégrabilité, un cycle peut avoir somme de poids > 0 même si chaque arête a poids > 0.
Contre-exemple : Graphe A ⇄ B avec poids +1 dans les deux sens. Chaque arête a poids > 0, mais il y a un cycle !"

Par conséquence, difficile de prouver le no-cycle via Ψ.

L'IA a proposé de faire avec la partie 2, c'est-à-dire d'utiliser un certificat dual :

Supposons un cycle y₀ → ... → yₘ = y₀
Sur un cycle : Σ Δlog₂(yᵢ) = 0 et Δh = 0
Par inégalité de bloc : 0 ≤ μ*_aug · S ≤ μ*_aug · m
Or μ*_aug < 0 et m ≥ 1 → Contradiction !

Si ça intéresse quelqu'un, je met ici la mise à jour du document.



Vous devez être membre accéder à ce service...

Pas encore inscrit ?

1 compte par personne, multi-compte interdit !

Ou identifiez-vous :


Rester sur la page

Inscription gratuite

Fiches en rapport

parmi 1749 fiches de maths

Désolé, votre version d'Internet Explorer est plus que périmée ! Merci de le mettre à jour ou de télécharger Firefox ou Google Chrome pour utiliser le site. Votre ordinateur vous remerciera !