Je crois que ton blocage vient de ce que tu raisonnes en mathématicien, en imaginant une fonction monotone croissante y = F(x) qui à toute valeur entière de (x) ferait correspondre la donnée (y) de rang (x) présente dans la liste; et qu'il suffirait ainsi de recourir à la fonction réciproque x = F-1(y) pour trouver le rang de toute valeur (y).
S'il est relativement facile de bricoler une fonction dont le graphe passe par tous les points (xk, yk) de la liste, le passage à la fonction réciproque se révèle pratiquement inenvisageable: il faut en effet que la fonction F(x) soit strictement monotone (condition nécessaire d'existence de F-1), et même dans ce cas favorable l'obtention d'une expression explicite de F-1(y) apparaît le plus souvent hors de portée, hormis quelques fonctions particulières très simples telles que
F(x) = A*x + B , F(x) = A*xn , F(x) = Ax ou F(x) = A*Ln(x) ...
qu'on ne saurait adapter à ton nuage de points.
La recherche du rang relève non pas de l'analyse, mais de l'algorithmique: des informations t'ont été abondamment fournies sur ce point.
Si tu t'intéresse absolument à la fonction F(x), tu peux par exemple recourir au sinus cardinal normalisé
Sc(u) = Sin(π*u)/(π*u) ;
on vérifie ainsi aisément que le graphe de la fonction
F(x) = Σk=0k=65(yk*Sc2(x - xk))
passe par les 66 points du tableau.
Le recours au carré permet d'atténuer les oscillations; elle pourraient disparaître par l'extension appropriée de la liste en ses deux extrémités.
Partager