Cas concret

Réponses à toutes vos questions après le Bac (Fac, Prépa, etc.)
Avatar de l’utilisateur
zygomatique
Habitué(e)
Messages: 6928
Enregistré le: 20 Mar 2014, 12:31

Re: cas concret

par zygomatique » 14 Sep 2016, 23:14

a = 5
b = 6
m = 9

suffit amplement pour répondre ...

d'où mon interrogation au sujet de l'algo de Razes puisque l'énoncé est :
gwlegion a écrit:bonjour.

voici mon probleme du moment

soit un couple ayant tout les deux des tickets restaurants ( A et B) de valeurs differents
Il me faut determiner combien je dois donner de A et de B pour approcher au plus pret le montant a payer.

apres, je compte en faire un programme... mais ca je me debrouillerais.


et au plus prêt ça peut l'être par valeur inférieure ou par valeur supérieure ...
Ce qui est affirmé sans preuve peut être nié sans preuve. EUCLIDE



gwlegion
Membre Naturel
Messages: 45
Enregistré le: 09 Sep 2016, 18:06

Re: cas concret

par gwlegion » 15 Sep 2016, 08:22

d'un autre cote, si il y a plusieurs solutions equivalentes, ca pourrais etre bien de les connaitres...

je dis ca ppur eviter que l'un ou l'autre des participants ai a donne tout ses tickets alors que l'autre n'en donne aucun

les criteres dans l'ordre d'importance :
solutions au plus proche supperieure et inferieure
si egalite des solutions (des restes a payer), presentation de toutes les solution egales.

ca complexifie la chose

Avatar de l’utilisateur
zygomatique
Habitué(e)
Messages: 6928
Enregistré le: 20 Mar 2014, 12:31

Re: cas concret

par zygomatique » 15 Sep 2016, 09:42

ben je sais pas mais la seconde contrainte est triviale (à moins que le pb soit mal posé)

mais une fois trouvé la solution (p, q) la plus proche ben il suffit de diviser p et q par 2 pour que chacun donne la moitié des tickets

par contre si le pb est :

l'un n'a que des tickets a
l'autre n'a que des tickets b

effectivement on peut aussi chercher la solution la plus équitable parmi toutes les solutions


de même (mais je ne sais pas si c'est toujours le cas) mais il me semble que certains commerçants ne remboursent pas la différence lorsqu'on donne plus en tickets donc on peut facilement demander au programme qu'il privilégie la solution inférieure ...
Ce qui est affirmé sans preuve peut être nié sans preuve. EUCLIDE

gwlegion
Membre Naturel
Messages: 45
Enregistré le: 09 Sep 2016, 18:06

Re: cas concret

par gwlegion » 15 Sep 2016, 10:22

en effet, l'un na que des tickets A et l'autre que des B

les contraintes sont donnees dans l'ordre d'importance:
si il y a un couple de meilleures solutions (inferieure et supperieure) on peu s'arreter la.

par contre, si il y a plusieures solutions ou le reste est egal, on pourrais toutes les afficher, ou au moins afficher la plus equitable

une idee comme ca : et si on sauvegardais toute les resultats et qu'on les affichais pas ordre croissant ?
ca serais peut etre plus simple ?

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

Re: cas concret

par chan79 » 15 Sep 2016, 11:03

salut
On peut faire un test (en python par exemple) avec tous les points à coordonnées entières et positives situés en dessous et au dessus de la droite d'équation Ax+By=m
Exemple avec
m=147,50
A=15 et B=20
Image
Les points rouges correspondent à un écart minimum
Image
S'il y a plusieurs solutions, on peut rajouter un critère comme par exemple abs(x*A- y*B) le plus petit possible , ce qui donnerait dans le cas ci-dessus:
Pour payer 147,50 , l'un donne 6*15 et l'autre 3*20 ce qui fait une différence de 30 (minimale)

Avatar de l’utilisateur
zygomatique
Habitué(e)
Messages: 6928
Enregistré le: 20 Mar 2014, 12:31

Re: cas concret

par zygomatique » 15 Sep 2016, 11:18

bravo chan79 ...

gwlegion a écrit:en effet, l'un na que des tickets A et l'autre que des B

les contraintes sont donnees dans l'ordre d'importance:
si il y a un couple de meilleures solutions (inferieure et supperieure) on peu s'arreter la.

par contre, si il y a plusieures solutions ou le reste est egal, on pourrais toutes les afficher, ou au moins afficher la plus equitable

une idee comme ca : et si on sauvegardais toute les resultats et qu'on les affichais pas ordre croissant ?
ca serais peut etre plus simple ?


il est aisé (relativement) de modifier mon programme pour enregistrer dans une liste toutes les solutions optimales (en terme de distance au montant) puis les trier ou sélectionner suivant une (ou des) contrainte(s) supplémentaire(s) ... comme le critère d'équité donné par chan79

tout le pb est de déterminer cette distance minimale (inférieure et supérieure)
Ce qui est affirmé sans preuve peut être nié sans preuve. EUCLIDE

gwlegion
Membre Naturel
Messages: 45
Enregistré le: 09 Sep 2016, 18:06

Re: cas concret

par gwlegion » 15 Sep 2016, 11:48

chan79 a écrit:salut
On peut faire un test (en python par exemple) avec tous les points à coordonnées entières et positives situés en dessous et au dessus de la droite d'équation Ax+By=m
Exemple avec
m=147,50
A=15 et B=20
Image
Les points rouges correspondent à un écart minimum
Image
S'il y a plusieurs solutions, on peut rajouter un critère comme par exemple abs(x*A- y*B) le plus petit possible , ce qui donnerait dans le cas ci-dessus:
Pour payer 147,50 , l'un donne 6*15 et l'autre 3*20 ce qui fait une différence de 30 (minimale)


C'est hyper elegant comme solution...
On pourrais le reproduire sur une TI89 ?
Sinon faire dirrectement une application android ?
A savoir que pour etre utilisable, l'application devra pendre en compte les chiffres a virgule ... la majorité des tickets resto ne sont pas un nombre entier, et quand aux notes de resto ... jamais!

Pseuda
Habitué(e)
Messages: 3222
Enregistré le: 08 Avr 2015, 12:44

Re: cas concret

par Pseuda » 15 Sep 2016, 11:54

gwlegion a écrit:A savoir que pour etre utilisable, l'application devra pendre en compte les chiffres a virgule ... la majorité des tickets resto ne sont pas un nombre entier, et quand aux notes de resto ... jamais!

Bonjour,

Je n'ai pas lu ce qui précède, mais pour avoir des nombres entiers avec des montants qui comportent des centimes d'euros, il suffit de les exprimer en .... centimes d'euros. :hehe:

Avatar de l’utilisateur
zygomatique
Habitué(e)
Messages: 6928
Enregistré le: 20 Mar 2014, 12:31

Re: cas concret

par zygomatique » 15 Sep 2016, 12:11

On pourrais le reproduire sur une TI89 ?
Sinon faire dirrectement une application android ?


as-tu lu ma réponse ?

on t'a déjà fait quasiment tout le travail ... peut-être faudrait-il t'y mettre ...

ensuite il y a des droits de propriété intellectuelle ... donc je demande une rétribution ....
Ce qui est affirmé sans preuve peut être nié sans preuve. EUCLIDE

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

Re: cas concret

par chan79 » 15 Sep 2016, 12:28

gwlegion a écrit:On pourrais le reproduire sur une TI89 ?
Sinon faire dirrectement une application android ?
A savoir que pour etre utilisable, l'application devra pendre en compte les chiffres a virgule ... la majorité des tickets resto ne sont pas un nombre entier, et quand aux notes de resto ... jamais!

Il n'y a rien de bien compliqué.
Tu utilises le graphique avec la droite Ax+By=m
Tu fais varier x de 0 à E(M/A)+1
Pour chaque valeur de x, tu calcules d=E(M-x*A)/B (si c'est négatif, tu remplaces d par 0)
Tu fais varier y de d à d+1
A chaque fois, tu calcules l'écart entre M et xA+yB
Le reste, c'est du bricolage
Ca marche avec des virgules
Image

gwlegion
Membre Naturel
Messages: 45
Enregistré le: 09 Sep 2016, 18:06

Re: cas concret

par gwlegion » 15 Sep 2016, 12:32

Pseuda a écrit:
gwlegion a écrit:A savoir que pour etre utilisable, l'application devra pendre en compte les chiffres a virgule ... la majorité des tickets resto ne sont pas un nombre entier, et quand aux notes de resto ... jamais!

Bonjour,

Je n'ai pas lu ce qui précède, mais pour avoir des nombres entiers avec des montants qui comportent des centimes d'euros, il suffit de les exprimer en .... centimes d'euros. :hehe:


oui, c'est vrai...et simple.j'aurais du y penser tout seul ...

zygomatique a écrit:
On pourrais le reproduire sur une TI89 ?
Sinon faire dirrectement une application android ?



as-tu lu ma réponse ?

on t'a déjà fait quasiment tout le travail ... peut-être faudrait-il t'y mettre ...

ensuite il y a des droits de propriété intellectuelle ... donc je demande une rétribution ....


Une retribution sur quoi ? (pas pourquoi ... sur quoi )
Je programme pas pour android... j'ai que quelques notions de basic ... d'ou ma volonté de faire un programme sur TI89...
De plus, j'ai jamais parlé de le vendre ... Effectivement SI cela avais eté le cas, on aurais pu aborder le sujet ...

par contre, si tu veux faire un appli android remunerée par de la pub, sois sur que je serais le premier a la telechargée ! de plus je ne te demanderai rien ... meme si au debut c'est mon idée :hehe:

Deux dernieres choses si tu le permet :
- Reste cool ... Ca sert a rien de s'ennerver pour ca...
- oui, je compte m'y mettre ... mais le temps est une chose rare en ce moment ... et si j'arrive a mes fins, je compte meme poster mon programme ici ... gratuitement.

chan79 a écrit:
gwlegion a écrit:On pourrais le reproduire sur une TI89 ?
Sinon faire dirrectement une application android ?
A savoir que pour etre utilisable, l'application devra pendre en compte les chiffres a virgule ... la majorité des tickets resto ne sont pas un nombre entier, et quand aux notes de resto ... jamais!

Il n'y a rien de bien compliqué.
Tu utilises le graphique avec la droite Ax+By=m
Tu fais varier x de 0 à E(M/A)+1
Pour chaque valeur de x, tu calcules d=E(M-x*A)/B (si c'est négatif, tu remplaces d par 0)
Tu fais varier y de d à d+1
A chaque fois, tu calcules l'écart entre M et xA+yB
Le reste, c'est du bricolage
Ca marche avec des virgules
Image


merci c'est tres clair.
Je vais prendre ca comme base, et composer autour.

Avatar de l’utilisateur
zygomatique
Habitué(e)
Messages: 6928
Enregistré le: 20 Mar 2014, 12:31

Re: cas concret

par zygomatique » 15 Sep 2016, 12:38

ma réponse est tout à fait cool ...

j'attends de voir tes propositions ... et éventuellement de corriger tes erreurs ...

tu dis avoir quelques notions de basic ... et bien cela suffit ...

on t'a décortiqué la "partie mathématique" ... il ne reste donc plus qu'à faire un algo propre incluant touts les paramètres et critères voulus ...

;)


une dernière remarque : comme le montre le graphique de chan79 : les solutions sont "périodiques" dans le sens que :

soit xa + yb = n (avec n "proche" de m mais à la limite on s'en fout)

alors (x - yb)a + (y + ya)b = n et idem à permutation convenable des lettres près

en particulier dès que l'on a une relation du type ia = jb pour des entiers i et j on peut toujours remplacer un certain nombres de a par un certain nombre de b (et inversement bien sur) et c'est pourquoi on peut trouver une meilleure solution équitable ...

ce la se généralise à toute relation ia + jb = k pour des entiers i, j et k ...
Ce qui est affirmé sans preuve peut être nié sans preuve. EUCLIDE

gwlegion
Membre Naturel
Messages: 45
Enregistré le: 09 Sep 2016, 18:06

Re: cas concret

par gwlegion » 15 Sep 2016, 18:40

t-restos.zip
sans macros
a rennomer en ods
(37.17 Kio) Téléchargé 89 fois

j'ai fais un petit fichier libreoffice (ci joint) a rennomer en ODS


pour A;B;M
j'ai trouvé
F(x)=(M/A)-((M/A)/(M/B))*x
le resultat c'est le nombre de B en x et le nomre de A sur y
pour tout x entier, je calcul Y
l'arrondi de y au superieur me donne un couple x,y approchant par le supperieur
l'arrondi de y a l'inferieur me donne un couple x,y approchant a l'inferieur

il me reste a le progammer.
je vous tiens au courant

gwlegion
Membre Naturel
Messages: 45
Enregistré le: 09 Sep 2016, 18:06

Re: cas concret

par gwlegion » 16 Sep 2016, 11:45

j'ai une petite question: peut on affirmer qu'il existe plusieurs couples de resultats ayant un reste strictement egal si et seulement si
pgcd(a, b)≠1
?

si ce que je crois est vrai, le cas ou il y a plusieurs couples donnant un resultat identique est anecdotique, mais en plus peut etre repere facillement

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

Re: cas concret

par chan79 » 16 Sep 2016, 14:42

vois cet exemple

Image

gwlegion
Membre Naturel
Messages: 45
Enregistré le: 09 Sep 2016, 18:06

Re: cas concret

par gwlegion » 16 Sep 2016, 14:49

effectivement, je me trompais.

gwlegion
Membre Naturel
Messages: 45
Enregistré le: 09 Sep 2016, 18:06

Re: cas concret

par gwlegion » 19 Sep 2016, 13:38

voila ce que j'ai pondu :
Code: Tout sélectionner
tresto()
Prgm
EffES
Local a,b,m,x,y,ri,rs,xs,ys,yi,xi,rti,rts

8.65->a
8.5->b
Request "prix :",m,0
expr(m)->m
©Input "prix :",m
m->ri
­-m->rs

For x,0,entSuiv(m/b)

m/a-m/a/(m/b)*x->y
m-(x*b+entPréc(y)*a)->rti
m-(x*b+entPréc(y+1)*a)->rts

If rti<ri Then
rti->ri
x->xi
entPréc(y)->yi
EndIf

If rts>rs Then
rts->rs
x->xs
entPréc(y+1)->ys
EndIf

EndFor

©Disp yi,xi,ri
©Disp ys,xs,rs

Output 0,25,"nb A"
Output 0,60,"nb b"
Output 0,100,"rap"
Output 10,0,"inf"
Output 20,0,"sup"
Output 10,25,yi
Output 20,25,ys
Output 10,60,xi
Output 20,60,xs
Output 10,100,ri
Output 20,94,rs
Output 40,0,"a="
Output 50,0,"b="
Output 40,10,a
Output 50,10,b

EndPrgm


pour le moment, ca ne prends pas en compte les resultats multiples ...
j'aimerais faire la meme chose directement en application android ... mais la, ca depasse mes competences.

je pense aussi qu'il doit exister un moyen de determiner s'il existe ou non des resultats multiples ...
Fichiers joints
tresto.zip
(581 Octets) Téléchargé 70 fois

 

Retourner vers ✯✎ Supérieur

Qui est en ligne

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