π
<-
Chat plein-écran
[^]

[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 ?

Message non lude Hayleia » 10 Juil 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
Avatar de l’utilisateur
HayleiaGénéreux
Niveau 17: GM (Grand Maître des calculatrices)
Niveau 17: GM (Grand Maître des calculatrices)
Prochain niv.: 43.8%
 
Messages: 2509
Images: 2
Inscription: 30 Aoû 2011, 08:22
Genre: Non spécifié
Calculatrice(s):
MyCalcs profile
Classe: Templar

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

Message non lude critor » 10 Juil 2014, 23:27

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 ;)
Image
Avatar de l’utilisateur
critorAdmin
Niveau 19: CU (Créateur Universel)
Niveau 19: CU (Créateur Universel)
Prochain niv.: 42.5%
 
Messages: 41498
Images: 14695
Inscription: 25 Oct 2008, 00:00
Localisation: Montpellier
Genre: Homme
Calculatrice(s):
MyCalcs profile
YouTube: critor3000
Twitter/X: critor2000
GitHub: critor

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

Message non lude davidElmaleh » 11 Juil 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
Avatar de l’utilisateur
davidElmalehProgrammeur
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Prochain niv.: 19.6%
 
Messages: 409
Images: 9
Inscription: 14 Oct 2012, 23:30
Localisation: Paris 19
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: PSI*

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

Message non lude Bisam » 11 Juil 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.
Avatar de l’utilisateur
BisamAdmin
Niveau 15: CC (Chevalier des Calculatrices)
Niveau 15: CC (Chevalier des Calculatrices)
Prochain niv.: 69.6%
 
Messages: 5665
Inscription: 11 Mar 2008, 00:00
Localisation: Lyon
Genre: Homme
Calculatrice(s):
MyCalcs profile

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

Message non lude davidElmaleh » 12 Juil 2014, 23:59

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
Image
Avatar de l’utilisateur
davidElmalehProgrammeur
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Prochain niv.: 19.6%
 
Messages: 409
Images: 9
Inscription: 14 Oct 2012, 23:30
Localisation: Paris 19
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: PSI*

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

Message non lude Bisam » 13 Juil 2014, 01:12

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

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
Avatar de l’utilisateur
BisamAdmin
Niveau 15: CC (Chevalier des Calculatrices)
Niveau 15: CC (Chevalier des Calculatrices)
Prochain niv.: 69.6%
 
Messages: 5665
Inscription: 11 Mar 2008, 00:00
Localisation: Lyon
Genre: Homme
Calculatrice(s):
MyCalcs profile

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

Message non lude Bisam » 25 Juil 2014, 21:28

Bon, je te déclare officiellement vainqueur, david !
Avatar de l’utilisateur
BisamAdmin
Niveau 15: CC (Chevalier des Calculatrices)
Niveau 15: CC (Chevalier des Calculatrices)
Prochain niv.: 69.6%
 
Messages: 5665
Inscription: 11 Mar 2008, 00:00
Localisation: Lyon
Genre: Homme
Calculatrice(s):
MyCalcs profile

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

Message non lude davidElmaleh » 27 Juil 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
Avatar de l’utilisateur
davidElmalehProgrammeur
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Prochain niv.: 19.6%
 
Messages: 409
Images: 9
Inscription: 14 Oct 2012, 23:30
Localisation: Paris 19
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: PSI*

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

Message non lude Adriweb » 27 Juil 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)
Image

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...)
Avatar de l’utilisateur
AdriwebAdmin
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Prochain niv.: 80.2%
 
Messages: 14616
Images: 1218
Inscription: 01 Juin 2007, 00:00
Localisation: France
Genre: Homme
Calculatrice(s):
MyCalcs profile
Twitter/X: adriweb
GitHub: adriweb

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

Message non lude davidElmaleh » 27 Juil 2014, 12:50

Ok j'y penserai :)
Image
Avatar de l’utilisateur
davidElmalehProgrammeur
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Prochain niv.: 19.6%
 
Messages: 409
Images: 9
Inscription: 14 Oct 2012, 23:30
Localisation: Paris 19
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: PSI*

Précédente

Retourner vers Mini-Challenges

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités

-
Rechercher
-
Social TI-Planet
-
Sujets à la une
Comparaisons des meilleurs prix pour acheter sa calculatrice !
Aidez la communauté à documenter les révisions matérielles en listant vos calculatrices graphiques !
Phi NumWorks jailbreak
123
-
Faire un don / Premium
Pour plus de concours, de lots, de tests, nous aider à payer le serveur et les domaines...
Faire un don
Découvrez les avantages d'un compte donateur !
JoinRejoignez the donors and/or premium!les donateurs et/ou premium !


Partenaires et pub
Notre partenaire Jarrety Calculatrices à acheter chez Calcuso
-
Stats.
1454 utilisateurs:
>1379 invités
>70 membres
>5 robots
Record simultané (sur 6 mois):
6892 utilisateurs (le 07/06/2017)
-
Autres sites intéressants
Texas Instruments Education
Global | France
 (English / Français)
Banque de programmes TI
ticalc.org
 (English)
La communauté TI-82
tout82.free.fr
 (Français)