Suites arithmétiques simples et simplification de formule

Réponses à toutes vos questions de la 2nde à la Terminale toutes séries
JeSuisTresNulEnMath
Messages: 3
Enregistré le: 09 Juin 2019, 13:53

Suites arithmétiques simples et simplification de formule

par JeSuisTresNulEnMath » 09 Juin 2019, 14:55

Bonjour à tous,

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 :D).
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.



Avatar de l’utilisateur
Lostounet
Admin
Messages: 9665
Enregistré le: 16 Mai 2009, 12:00

Re: Suites arithmétiques simples et simplification de formul

par Lostounet » 09 Juin 2019, 15:15

Salut,

Je te proposerais pour ton deuxième problème:


x = (1/4)*[ -7-(-1)^z+10*z]

Par exemple si z=2,
x= 1/4 (-7-(-1)^2+10*2]
= 1/4(-7-1+20)
= 1/4*(12)= 3

Ou bien pour z=7
x= 1/4*(-7-(-1)+70)= 1/4*64=16


Pour le premier problème:

y = (10*z+(-1)^z-5)/4

As-tu accès aux exposants?
Merci de ne pas m'envoyer de messages privés pour répondre à des questions mathématiques ou pour supprimer votre compte.

JeSuisTresNulEnMath
Messages: 3
Enregistré le: 09 Juin 2019, 13:53

Re: Suites arithmétiques simples et simplification de formul

par JeSuisTresNulEnMath » 09 Juin 2019, 15:38

Bonjour,

Je te remercie pour ta réponse, mais malheureusement non je n'ai pas accès au exposant, ni à la division « normale » uniquement la division entière, donc dans ta formule : (1/4) me donnera 0 et non 0,25, ce qui fait que tout la formule me donnera toujours 0.
J'ai peut-être pas été assez clair, mais je suis limité pour les deux problèmes, en plus, pour ta solution sur mon premier problème, elle me semble encore plus compliqué que celle que j'avais trouvée.

Après en voyant tes formules, je me dis que j'ai bien fait de demander car je n'aurais jamais trouvé ça personnellement.

Pierre256
Membre Naturel
Messages: 26
Enregistré le: 16 Mai 2019, 16:27

Re: Suites arithmétiques simples et simplification de formul

par Pierre256 » 09 Juin 2019, 15:46

Bonjour,
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 crois que pratiquement toujours le cas sur les microprocesseurs. C'est la raison pour laquelle on a inventé les langages avec des fonctions et d'autres facilités.
Apparemment vous disposez aussi d'opérateurs logiques, c'est très efficace en informatique. Par contre, cela me semble très gênant qu'il n'y ait pas moyen se stocker une valeur intermédiaire.
Bonne journée.

Avatar de l’utilisateur
chan79
Membre Légendaire
Messages: 10330
Enregistré le: 04 Mar 2007, 20:39

Re: Suites arithmétiques simples et simplification de formul

par chan79 » 09 Juin 2019, 15:51

salut
pour le second
x=3*z-2-(z//2)

Evidemment, le z apparaît deux fois

Avatar de l’utilisateur
Lostounet
Admin
Messages: 9665
Enregistré le: 16 Mai 2009, 12:00

Re: Suites arithmétiques simples et simplification de formul

par Lostounet » 09 Juin 2019, 15:57

JeSuisTresNulEnMath a écrit:Bonjour,

Je te remercie pour ta réponse, mais malheureusement non je n'ai pas accès au exposant, ni à la division « normale » uniquement la division entière, donc dans ta formule : (1/4) me donnera 0 et non 0,25, ce qui fait que tout la formule me donnera toujours 0.
J'ai peut-être pas été assez clair, mais je suis limité pour les deux problèmes, en plus, pour ta solution sur mon premier problème, elle me semble encore plus compliqué que celle que j'avais trouvée.

Après en voyant tes formules, je me dis que j'ai bien fait de demander car je n'aurais jamais trouvé ça personnellement.


Salut

Ceci est bien une division entière car si on prend par exemple:

x = (1/4)*[ -7-(-1)^z+10*z]

Le numérateur est toujours un entier divisible par 4 (ça se démontre).

Tu pourrais donc écrire:

Si z est pair,
x=(-8+10*z)//4

Si z impair,
x=(-6+10z)//4

Ça ne passe pas?
Merci de ne pas m'envoyer de messages privés pour répondre à des questions mathématiques ou pour supprimer votre compte.

Pierre256
Membre Naturel
Messages: 26
Enregistré le: 16 Mai 2019, 16:27

Re: Suites arithmétiques simples et simplification de formul

par Pierre256 » 09 Juin 2019, 16:10

Pour les deux listes, je trouve une formule simple.
Régression linéaire Y=A + B * X nbpts= 5 A = 3.70 B = 2.50 R2 = 0.995 (emq=0.274)
Régression linéaire Y=A + B * X nbpts= 8 A = -1.64 B = 2.48 R2 = 0.998 (emq=0.261)
Evidemment les paramètres sont des flottants, mais il suffit d'écrire une formule du genre
Y =( A*1000 + B*1000 * X) //1000
Le coefficient de régression R² est quasiment 1, donc, c'est presque "exact".
Il faudra peut-être rajouter un 1 ou 50 (à essayer) pour être sûr de pas être en-dessous.

JeSuisTresNulEnMath
Messages: 3
Enregistré le: 09 Juin 2019, 13:53

Re: Suites arithmétiques simples et simplification de formul

par JeSuisTresNulEnMath » 09 Juin 2019, 16:33

Woah, bonjour à tous, je vous remercie pour votre rapidité et votre gentillesse.

Pierre256 a écrit:Bonjour,
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 crois que pratiquement toujours le cas sur les microprocesseurs. C'est la raison pour laquelle on a inventé les langages avec des fonctions et d'autres facilités.
Apparemment vous disposez aussi d'opérateurs logiques, c'est très efficace en informatique. Par contre, cela me semble très gênant qu'il n'y ait pas moyen se stocker une valeur intermédiaire.
Bonne journée.


Oui, effectivement, mais justement, ce que je voulais dire par là, c'est que le language derrière est très fermé et limité, je n'ai qu'un strict choix dans mes possibilités.

chan79 a écrit:salut
pour le second
x=3*z-2-(z//2)


Ça marche ! Merci à toi, par contre, malheureusement, comme pour ma solution sur le second problème, z apparaît deux fois, c'est très gênant.
J'explique rapidement pourquoi z ne doit apparaître qu'une fois, je ne peux pas faire passer une variable (inconnue) dans une autre facilement, si je veux faire ça, je suis obligé de définir et d'assigner un nombre à ma variable puis de faire une boucle qui va incrémenter une des variables jusqu'à ce que les deux soit identiques, ce que je demande ici est une toute petite étape de quelque chose de beaucoup plus grand dans lequel je n'ai eu d'autre choix que de déjà stocker deux autres variables de la façon susmentionnées, c'est très lourd pour un microprocesseur très faiblard en plus, et en plus, quand je fais une opération mathématique sur une variable, sa valeur est écrasée et ne peut être récupéré sauf en faisant l'inverse de l'opération mathématique qui a été faite, par exemple si je fais x + 2, ma variable x va devenir l'ancien x + 2 et le seul moyen de la retrouver c'est de faire - 2.

Lostounet a écrit:Salut

Ceci est bien une division entière car si on prend par exemple:

x = (1/4)*[ -7-(-1)^z+10*z]

Le numérateur est toujours un entier divisible par 4 (ça se démontre).

Tu pourrais donc écrire:

Si z est pair,
x=(-8+10*z)/4

Si z impair,
x=(-6+10z)/4

Ça ne passe pas?


J'ai toujours du mal à comprendre la formule complète, que signifie les crochets ?
Tu parles d'un numérateur, ça implique une fraction, je suis quasiment certain de tomber sur un nombre décimal, non ?
Pour les deux formules ci-dessous, je viens de tester, ça fonctionne, mais du coup, je dois également faire le modulo (reste de la division entière) pour tester si z est pair ou impair, donc j'ai toujours deux fois z dans la formule, c'est dommage car cette solution fonctionne presque que je veux...


Pierre256 a écrit:Pour les deux listes, je trouve une formule simple.
Régression linéaire Y=A + B * X nbpts= 5 A = 3.70 B = 2.50 R2 = 0.995 (emq=0.274)
Régression linéaire Y=A + B * X nbpts= 8 A = -1.64 B = 2.48 R2 = 0.998 (emq=0.261)
Evidemment les paramètres sont des flottants, mais il suffit d'écrire une formule du genre
Y =( A*1000 + B*1000 * X) //1000
Le coefficient de régression R² est quasiment 1, donc, c'est presque "exact".
Il faudra peut-être rajouter un 1 ou 50 (à essayer) pour être sûr de pas être en-dessous.


Ok, tu m'as perdu, je comprends mieux le chinois que ça, par contre, comme je vois des valeurs avec 1000, attention, j'ai oublié de préciser une autre limitation importante, mea culpa, toutes les variables disponibles (il n'y a que ça) sont codées sur un byte, donc elle vont de 0 à 255, si je dépasse dans un sens ou dans l'autre, je fais un overflow ou un underflow et la valeur boucle, donc impossible d'utiliser des valeurs trop hautes, désolé, j'aurais dû le préciser avant que tu ne t'amuses à chercher à solution pour rien.


Au vu de vos réponses, j'ai l'impression que le dieu des math me démontre que c'est une fausse bonne idée de vouloir utiliser une formule mathématique plutôt qu'une très longue suite de comparateur logique, dans l'absolu le plus simple aurait été un array ou un dictionnaire, mais ça n'existe pas non plus.
Je crois que je suis condamné à utiliser une solution pénible, je vais voir, merci encore à tous pour votre aide.

Avatar de l’utilisateur
Lostounet
Admin
Messages: 9665
Enregistré le: 16 Mai 2009, 12:00

Re: Suites arithmétiques simples et simplification de formul

par Lostounet » 09 Juin 2019, 18:07

JeSuisTresNulEnMath a écrit:
Lostounet a écrit:Salut

Ceci est bien une division entière car si on prend par exemple:

x = (1/4)*[ -7-(-1)^z+10*z]

Le numérateur est toujours un entier divisible par 4 (ça se démontre).

Tu pourrais donc écrire:

Si z est pair,
x=(-8+10*z)/4

Si z impair,
x=(-6+10z)/4

Ça ne passe pas?


J'ai toujours du mal à comprendre la formule complète, que signifie les crochets ?
Tu parles d'un numérateur, ça implique une fraction, je suis quasiment certain de tomber sur un nombre décimal, non ?
Pour les deux formules ci-dessous, je viens de tester, ça fonctionne, mais du coup, je dois également faire le modulo (reste de la division entière) pour tester si z est pair ou impair, donc j'ai toujours deux fois z dans la formule, c'est dommage car cette solution fonctionne presque que je veux...




Les crochets sont tout juste des parenthèses !

Ce que je te propose c'est:

x= (-7-(-1)^z+10*z)//4

C'est une fraction dont le résultat est toujours un nombre entier ce n'est donc pas un nombre flottant. C'est comme si je te disais 20/4 c'est une fraction dont le résultat est un entier (=5).
Le numérateur est égal à (-7-(-1)^z+10z) qui est un nombre divisible par 4 toujours.

La formule englobe tous les cas pourvu que tu puisses calculer (-1)^z (si z est pair cela vaut 1 sinon cela vaut -1).
Merci de ne pas m'envoyer de messages privés pour répondre à des questions mathématiques ou pour supprimer votre compte.

GaBuZoMeu
Habitué(e)
Messages: 6020
Enregistré le: 05 Mai 2019, 10:07

Re: Suites arithmétiques simples et simplification de formul

par GaBuZoMeu » 09 Juin 2019, 22:06

Les suites y et x progressent de 5 tous les deux pas. On essaie avec un facteur 5/2 et on ajuste :
y = (5*z + 8)//2
x = (5*z - 3)//2
La suite w met du temps à démarrer. On s'(en tire avec
w= (z * z)//24

GaBuZoMeu
Habitué(e)
Messages: 6020
Enregistré le: 05 Mai 2019, 10:07

Re: Suites arithmétiques simples et simplification de formul

par GaBuZoMeu » 09 Juin 2019, 22:33

Ah, en fait la suite w ne fait pas partie de l'histoire .

 

Retourner vers ✎✎ Lycée

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 97 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