Sur moi :
Je viens quémander votre aide, j'ai cherché comme j'ai pu sur le net et dans mon cerveau, impossible de résoudre mon problème entièrement.
Mon niveau est en mathématique est très modeste comme en témoigne mon pseudonyme, et étant donné mon problème, je me suis permis de poster ceci dans la catégorie « Lycée » bien que je n'y suis plus depuis longtemps.
Contextualisation (IMPORTANT) :
Je code sur un microprocesseur avec un nombre de possibilités très réduit, je n'ai accès qu'au opérateur mathématique suivant : addition (+), soustraction (-), multiplication (*), division entière (//) et reste de la division entière (MOD).
Je ne peux utiliser que ces opérateurs là, je n'ai aucun nombre à virgule, et truc très pénible, à chaque opération que je fais sur une variable (une inconnue), elle est écrasée, je ne peux pas la stocker, il me donc une formule sans devoir réutiliser la même variable (inconnue) dans la même formule, même chose j'ai un nombre très limité de variables (inconnues), j'aimerais donc éviter de les gaspiller.
Autre chose, less is better, chaque opération mathématique est effectué sur une ligne unique et demande beaucoup de travail, une formule très longue signifie donc beaucoup de chipotages.
Mon premier problème :
J'ai besoin de trouver une formule pour ce que j'ai réussi à transformer en suite mathématique, j'ai deux suites différentes, une pour l'axe x et l'autre l'axe y (j'ai cherché un site pour tracer un graphique et obtenir la formule à partir du graphique et non l'inverse, pas trouvé).
Pour l'axe y, j'ai réussi à trouver une formule qui fonctionne (incroyable vu mon niveau lamentable), mais j'aimerais pouvoir la simplifier car elle est trop longue à mon goût, et pire que tout il y a deux fois la même inconnue dans ma formule chose qui la rend quasiment inutilisable pour utilisation, voici la fameuse suite (table) dans un tableau (car l'ordre est primordial) et voici la formule que j'ai réussie à trouver :
- Code: Tout sélectionner
z | y
----------
1 | 6
2 | 9
3 | 11
4 | 14
5 | 16
y = ((z * 2) + 5) + (( z // 2) - 1)
Comment j'ai trouvé cette formule pour comprendre ma logique :
J'ai cherché une relation entre les nombres, pour en sortir une deuxième suite (table) plus simple, j'ai donc trouvé cette formule :
y = ((z * 2) + 5) + w
J'ai pu en sortir une nouvelle suite (table) pour w où z est le même z que dans la suite (table) de y, comme suit :
- Code: Tout sélectionner
z | w
----------
1 | 0
2 | 0
3 | 0
4 | 1
5 | 1
6 | 2
7 | 2
J'ai trouvé la formule de w comme suit :
w = (( z // 2) - 1
J'ai rassembler les deux formules pour obtenir :
y = ((z * 2) + 5) + (( z // 2) - 1)
Ça semble fonctionner à chaque fois (même pour 1 ).
Mais comme dit précédemment, il y a deux fois z dans ma formule, ce n'est pas possible de l'utiliser, de plus, je compte cinq opérations à faire dans cette formule, ça fait 5 lignes, c'est pas la catastrophe, mais pas super lisible tout de même, donc si quelqu'un trouve quelque chose de mieux ou peut la simplifier, ça m'arrangerait.
Mon deuxième problème :
Après concertation avec quelqu'un d'extérieur, la personne a réussi à me sortir un début de formule, mais je ne trouve pas la suite.
Voici ma seconde suite et le début de la formule trouvée :
- Code: Tout sélectionner
z | x
----------
1 | 1
2 | 3
3 | 6
4 | 8
5 | 11
6 | 13
7 | 16
8 | 18
Le début de formule est ceci :
x = (z * 2) + w
w étant une inconnue qui semble s'incrémenter de 1 de façon régulière, en fait, j'ai résolu le premier problème de la même façon, j'ai transformer la table en une formule qui suit un pattern précis et me permet d'en extraire une deuxième suite (table) plus simple qui ensuite m'a permis de trouver la formule, mais ici j'arrive à trouver la deuxième table mais après je sèche...
Voici dans la suite (table) de w où z est le même z que dans la suite (table) de x :
- Code: Tout sélectionner
z | w
----------
1 | 0
2 | 0
3 | 0
4 | 0
5 | 1
6 | 1
7 | 2
8 | 2
Et là, mon esprit mathématique incroyable (sarcasme) s'avoue déjà vaincu, je ne sais pas, je ne trouve pas...
Et non seulement, je ne trouve pas, mais je sais également que même si je trouve, j'aurai de nouveau une formule avec deux fois l'inconnue z, ce qui ne me convient pas.
Conclusion et finalité :
Si les réponses apportées ne permettent pas d'obtenir un résultat satisfaisant, j'ai prévu le coup, je peux utiliser des opérateurs logiques au lieu des opérateurs mathématiques, mais mon code va être très très long, il doit tout tester avec des opérateurs de grandeurs nombre par nombre, c'est très long et lourd à mettre en place, mais au moins, là je suis sûr à 100% que ma solution va fonctionner.
Je voulais juste voir si je pouvais trouver une solution plus simple d'où mes questions ci-dessus.
Au pire, si ma méthode est mauvaise, n"hésitez pas à me le dire, c'est aussi pour ça que je demande de l'aide sur un forum, surtout que je n'ai jamais rien compris aux suites arithmétiques...
Et je m'excuse pour la longueur de mon post, je veux juste être sûr de bien me faire comprendre et de ne pas avoir à souffrir d'une réponse lacunaire par un trop faible apport d'informations de ma part.
Merci d'avance pour votre réponse.