[Mini-Challenge Basic #8] : Comment tu paies ?
Re: [Mini-Challenge Basic #8] : Comment tu paies ?
Non mais je rigole
Je pense que ça se passe plutôt dans l'autre sens : quand une personne a une idée, on la laisse la proposer, et quand personne n'en a, on force le gagnant à en trouver une
Je pense que ça se passe plutôt dans l'autre sens : quand une personne a une idée, on la laisse la proposer, et quand personne n'en a, on force le gagnant à en trouver une
Pokemon Topaze (Axe) discussion and download links here | (19:29:36) noelnadal: plus sérieusement, j'ai très peu de problèmes (22:45:44) Clifward: J'aime rire du malheur des autres (2017.11.18 - 17:07:12) Fireworks: Hayleia !!!!! (2017.11.18 - 17:07:19) TI-Bot: Fireworks has been logged out (Kicked). (2017.11.18 - 17:07:22) TI-Bot: Ban of user Fireworks revoked. (2017.11.18 - 17:07:25) TI-Bot: Fireworks logs into the Chat. (2017.11.18 - 17:07:28) Fireworks: <3 (2017.11.18 - 17:07:31) Fireworks: 208 |
-
HayleiaGénéreux
Niveau 17: GM (Grand Maître des calculatrices)- Messages: 2509
- Images: 2
- Inscription: 30 Aoû 2011, 08:22
- Genre:
- Calculatrice(s):→ MyCalcs profile
- Classe: Templar
Re: [Mini-Challenge Basic #8] : Comment tu paies ?
Bisam a écrit:Je n'ai pas cherché à tout comprendre dans ton algorithme, critor, et je n'ai pas du tout regardé s'il était performant mais tes réponses sont exactes.
Pour faire des tests de performance supplémentaires, essayez de trouver la réponse pour 15€ à payer (19 secondes sur ma calculette... pour un résultat égal à 3844287444)
C'est sûrement catastrophique à côté de toi, j'ai juste sorti l'algorithme qui m'est venu naturellement.
Avec une boucle tant que et une récursivité.
La 1ère mini-boucle que je passe sous silence ici sert juste à obtenir la pièce de valeur maximale utilisable, puisque j'ai considéré que la liste passée en 2ème paramètre n'était pas forcément triée.
Je n'ai pas encore réfléchi à une quelconque optimisation - je vais peut-être laisser cela à tes fans
En gros:
- L'algorithme détermine la pièce de valeur maximale.
- Il s'impose de l'utiliser successivement 0 fois, 1 fois, 2 fois, etc... sous la seule contrainte de ne pas dépasser le montant à payer (boucle tant que).
- Pour chaque tentative, il complète le paiement si besoin est selon le même principe avec les pièces de valeurs inférieures (récursivité)
Mais visiblement, tu as beaucoup mieux
-
critorAdmin
Niveau 19: CU (Créateur Universel)- Messages: 41498
- Images: 14695
- Inscription: 25 Oct 2008, 00:00
- Localisation: Montpellier
- Genre:
- Calculatrice(s):→ MyCalcs profile
- YouTube: critor3000
- Twitter/X: critor2000
- GitHub: critor
Re: [Mini-Challenge Basic #8] : Comment tu paies ?
Mon algorithme donne 3844287444 pour coins(1500,{1,2,5,10,20,50,100,200}) en 650 ms sur ordi (mesuré avec un script Lua, merci Adriweb ) et sur Nspire CX CAS OS 3.6 sans ndless : 25460 ms soit 25 secondes
Je n'ai donc pas encore battu le grand Bisam
J'y travaillerais
EDIT: Juste pour savoir s'il y a une modification du temps d'exécution en fonction des machines, Bisam, je t'envoi, par MP, mon algorithme. Pourrais-tu mesurer son temps d'exécution?
Je n'ai donc pas encore battu le grand Bisam
J'y travaillerais
EDIT: Juste pour savoir s'il y a une modification du temps d'exécution en fonction des machines, Bisam, je t'envoi, par MP, mon algorithme. Pourrais-tu mesurer son temps d'exécution?
-
davidElmalehProgrammeur
Niveau 14: CI (Calculateur de l'Infini)- Messages: 409
- Images: 9
- Inscription: 14 Oct 2012, 23:30
- Localisation: Paris 19
- Genre:
- Calculatrice(s):→ MyCalcs profile
- Classe: PSI*
Re: [Mini-Challenge Basic #8] : Comment tu paies ?
Je regarderai demain ton algorithme, david... mais je devine où tu t'es inspiré, et j'ai quasiment la même chose.
-
BisamAdmin
Niveau 15: CC (Chevalier des Calculatrices)- Messages: 5665
- Inscription: 11 Mar 2008, 00:00
- Localisation: Lyon
- Genre:
- Calculatrice(s):→ MyCalcs profile
Re: [Mini-Challenge Basic #8] : Comment tu paies ?
Voila ma réponse :
- Code: Tout sélectionner
Define coins(tot,list)=
Func
Local chemins,i,j
chemins:=newList(tot+1)
chemins[1]:=1
For i,1,dim(list)
For j,list[i]+1,tot+1
chemins[j]:=chemins[j]+chemins[j-list[i]]
EndFor
EndFor
chemins[tot+1]
EndFunc
-
davidElmalehProgrammeur
Niveau 14: CI (Calculateur de l'Infini)- Messages: 409
- Images: 9
- Inscription: 14 Oct 2012, 23:30
- Localisation: Paris 19
- Genre:
- Calculatrice(s):→ MyCalcs profile
- Classe: PSI*
Re: [Mini-Challenge Basic #8] : Comment tu paies ?
La méthode est excellente... mais on peut encore un peu améliorer !
Voici ce que j'avais fait :
Voici ce que j'avais fait :
- Code: Tout sélectionner
Define pieces(n,pcs)=
Func
Local paie,p,pc,i,j
paie:=newList(n+1)
paie[1]:=1
p:=dim(pcs)
For i,1,p
pc:=pcs[i]
For j,pc+1,n+1
paie[j]:=paie[j]+paie[j-pc]
EndFor
EndFor
paie[n+1]
EndFunc
-
BisamAdmin
Niveau 15: CC (Chevalier des Calculatrices)- Messages: 5665
- Inscription: 11 Mar 2008, 00:00
- Localisation: Lyon
- Genre:
- Calculatrice(s):→ MyCalcs profile
Re: [Mini-Challenge Basic #8] : Comment tu paies ?
Bon, je te déclare officiellement vainqueur, david !
-
BisamAdmin
Niveau 15: CC (Chevalier des Calculatrices)- Messages: 5665
- Inscription: 11 Mar 2008, 00:00
- Localisation: Lyon
- Genre:
- Calculatrice(s):→ MyCalcs profile
Re: [Mini-Challenge Basic #8] : Comment tu paies ?
Merci, mais tu mérites la victoire!
btw : je vais essayer de préparer un nouveau défi, vu que ça n'avance pas trop (peut être en Lua cette fois-ci? )
btw : je vais essayer de préparer un nouveau défi, vu que ça n'avance pas trop (peut être en Lua cette fois-ci? )
-
davidElmalehProgrammeur
Niveau 14: CI (Calculateur de l'Infini)- Messages: 409
- Images: 9
- Inscription: 14 Oct 2012, 23:30
- Localisation: Paris 19
- Genre:
- Calculatrice(s):→ MyCalcs profile
- Classe: PSI*
Re: [Mini-Challenge Basic #8] : Comment tu paies ?
(Pour le Lua (si tu veux le faire dans cette catégorie), il faudrait si possible que ce soit relatif à l'usage de l'API Nspire, sinon on trouve trop de problèmes/solutions sur le net, et c'est moins drôle )
MyCalcs: Help the community's calculator documentations by filling out your calculators info!
MyCalcs: Aidez la communauté à documenter les calculatrices en donnant des infos sur vos calculatrices !
Inspired-Lua.org: All about TI-Nspire Lua programming (tutorials, wiki/docs...)-
AdriwebAdmin
Niveau 16: CC2 (Commandeur des Calculatrices)- Messages: 14616
- Images: 1218
- Inscription: 01 Juin 2007, 00:00
- Localisation: France
- Genre:
- Calculatrice(s):→ MyCalcs profile
- Twitter/X: adriweb
- GitHub: adriweb
-
davidElmalehProgrammeur
Niveau 14: CI (Calculateur de l'Infini)- Messages: 409
- Images: 9
- Inscription: 14 Oct 2012, 23:30
- Localisation: Paris 19
- Genre:
- Calculatrice(s):→ MyCalcs profile
- Classe: PSI*
20 messages
• Page 2 sur 2 • 1, 2
Retourner vers Mini-Challenges
Qui est en ligne
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités