π
<-

[Mini-Challenge Basic #8] : Comment tu paies ?

Sous-forums réunissant les mini-challenges en TI-Basic Nspire

Re: [Mini-Challenge Basic #8] : Comment tu paies ?

Unread postby Hayleia » 10 Jul 2014, 11:17

Non mais je rigole :P
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 :P

Image
ImageImageImage
Pokemon Topaze (Axe) discussion and download links here
(19:29:36) noelnadal: plus sérieusemen​t, j'ai très peu de problèmes
(22:45:44) Clifward: J'aime rire du malheur des autres :troll:

(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
User avatar
HayleiaGénéreux
Niveau 17: GM (Grand Maître des calculatrices)
Niveau 17: GM (Grand Maître des calculatrices)
Level up: 43.8%
 
Posts: 2509
Images: 2
Joined: 30 Aug 2011, 08:22
Gender: Not specified
Calculator(s):
MyCalcs profile
Class: Templar

Re: [Mini-Challenge Basic #8] : Comment tu paies ?

Unread postby critor » 10 Jul 2014, 23:27

Bisam wrote: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 ;)
Image
User avatar
critorAdmin
Niveau 19: CU (Créateur Universel)
Niveau 19: CU (Créateur Universel)
Level up: 53.4%
 
Posts: 42393
Images: 17091
Joined: 25 Oct 2008, 00:00
Location: Montpellier
Gender: Male
Calculator(s):
MyCalcs profile
YouTube: critor3000
Twitter: critor2000
GitHub: critor

Re: [Mini-Challenge Basic #8] : Comment tu paies ?

Unread postby davidElmaleh » 11 Jul 2014, 17:18

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 :D) et sur Nspire CX CAS OS 3.6 sans ndless : 25460 ms soit 25 secondes :p
Je n'ai donc pas encore battu le grand Bisam :D
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?
Image
User avatar
davidElmalehProgrammeur
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Level up: 19.6%
 
Posts: 409
Images: 9
Joined: 14 Oct 2012, 23:30
Location: Paris 19
Gender: Male
Calculator(s):
MyCalcs profile
Class: PSI*

Re: [Mini-Challenge Basic #8] : Comment tu paies ?

Unread postby Bisam » 11 Jul 2014, 22:47

Je regarderai demain ton algorithme, david... mais je devine où tu t'es inspiré, et j'ai quasiment la même chose.
User avatar
BisamAdmin
Niveau 15: CC (Chevalier des Calculatrices)
Niveau 15: CC (Chevalier des Calculatrices)
Level up: 69.6%
 
Posts: 5670
Joined: 11 Mar 2008, 00:00
Location: Lyon
Gender: Male
Calculator(s):
MyCalcs profile

Re: [Mini-Challenge Basic #8] : Comment tu paies ?

Unread postby davidElmaleh » 12 Jul 2014, 23:59

Voila ma réponse :

Code: Select all
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
Image
User avatar
davidElmalehProgrammeur
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Level up: 19.6%
 
Posts: 409
Images: 9
Joined: 14 Oct 2012, 23:30
Location: Paris 19
Gender: Male
Calculator(s):
MyCalcs profile
Class: PSI*

Re: [Mini-Challenge Basic #8] : Comment tu paies ?

Unread postby Bisam » 13 Jul 2014, 01:12

La méthode est excellente... mais on peut encore un peu améliorer !

Voici ce que j'avais fait :
Code: Select all
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
User avatar
BisamAdmin
Niveau 15: CC (Chevalier des Calculatrices)
Niveau 15: CC (Chevalier des Calculatrices)
Level up: 69.6%
 
Posts: 5670
Joined: 11 Mar 2008, 00:00
Location: Lyon
Gender: Male
Calculator(s):
MyCalcs profile

Re: [Mini-Challenge Basic #8] : Comment tu paies ?

Unread postby Bisam » 25 Jul 2014, 21:28

Bon, je te déclare officiellement vainqueur, david !
User avatar
BisamAdmin
Niveau 15: CC (Chevalier des Calculatrices)
Niveau 15: CC (Chevalier des Calculatrices)
Level up: 69.6%
 
Posts: 5670
Joined: 11 Mar 2008, 00:00
Location: Lyon
Gender: Male
Calculator(s):
MyCalcs profile

Re: [Mini-Challenge Basic #8] : Comment tu paies ?

Unread postby davidElmaleh » 27 Jul 2014, 03:38

Merci, mais tu mérites la victoire! :D
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? ;))
Image
User avatar
davidElmalehProgrammeur
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Level up: 19.6%
 
Posts: 409
Images: 9
Joined: 14 Oct 2012, 23:30
Location: Paris 19
Gender: Male
Calculator(s):
MyCalcs profile
Class: PSI*

Re: [Mini-Challenge Basic #8] : Comment tu paies ?

Unread postby Adriweb » 27 Jul 2014, 11:33

(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 :P)

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...)
My calculator programs
Mes programmes pour calculatrices
User avatar
AdriwebAdmin
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Level up: 79.9%
 
Posts: 14839
Images: 1131
Joined: 01 Jun 2007, 00:00
Location: France
Gender: Male
Calculator(s):
MyCalcs profile
Twitter: adriweb
GitHub: adriweb

Re: [Mini-Challenge Basic #8] : Comment tu paies ?

Unread postby davidElmaleh » 27 Jul 2014, 12:50

Ok j'y penserai :)
Image
User avatar
davidElmalehProgrammeur
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Level up: 19.6%
 
Posts: 409
Images: 9
Joined: 14 Oct 2012, 23:30
Location: Paris 19
Gender: Male
Calculator(s):
MyCalcs profile
Class: PSI*

Previous

Return to Mini-Challenges

Who is online

Users browsing this forum: ClaudeBot [spider] and 0 guests

-
Search
-
Social TI-Planet
-
Featured topics
Comparaisons des meilleurs prix pour acheter sa calculatrice !
"1 calculatrice pour tous", le programme solidaire de Texas Instruments. Reçois gratuitement et sans aucune obligation d'achat, 5 calculatrices couleur programmables en Python à donner aux élèves les plus nécessiteux de ton lycée. Tu peux recevoir au choix 5 TI-82 Advanced Edition Python ou bien 5 TI-83 Premium CE Edition Python.
Enseignant(e), reçois gratuitement 1 exemplaire de test de la TI-82 Advanced Edition Python. À demander d'ici le 31 décembre 2024.
Aidez la communauté à documenter les révisions matérielles en listant vos calculatrices graphiques !
1234
-
Donations / Premium
For more contests, prizes, reviews, helping us pay the server and domains...
Donate
Discover the the advantages of a donor account !
JoinRejoignez the donors and/or premium!les donateurs et/ou premium !


Partner and ad
Notre partenaire Jarrety Calculatrices à acheter chez Calcuso
-
Stats.
1968 utilisateurs:
>1952 invités
>8 membres
>8 robots
Record simultané (sur 6 mois):
6892 utilisateurs (le 07/06/2017)
-
Other interesting websites
Texas Instruments Education
Global | France
 (English / Français)
Banque de programmes TI
ticalc.org
 (English)
La communauté TI-82
tout82.free.fr
 (Français)