π
<-

Nombres Digisibles

Nombres Digisibles

Messagede Persalteas » 12 Mai 2013, 13:57

Salut,

Maintenant que le tour 2 du TI-Concours est fini, j'avais envie de partager mon programme NBDIG, histoire de voir si quelqu'un aurait réussi a faire mieux :P (PARCE QUE VISIBLEMENT OUI, HEIN SAMOS/LINKAKRO ! )...

Rappel du sujet du tour2, les nombres digisibles:

Sujet : Un nombre est dit digisible s’il respecte les trois conditions suivantes :

- il ne comporte aucun 0 ;
- tous les chiffres qui le composent sont différents les uns par rapport aux autres ;
- il est divisible par chacun des chiffres qui le composent.

Vous réaliserez un programme qui demande un nombre entier naturel supérieur ou égal à 10 et qui affiche 1 s’il est digisible, 0 s’il ne l’est pas.

Note : ce sujet est fortement inspiré des Olympiades de mathématiques 2012.

Consignes :

Les consignes sont d’ores et déjà données plus haut. A cela est rajoutée une contrainte supplémentaire : vous devrez réaliser le programme le plus rigoureux possible, c’est-à-dire que celui-ci devra tout faire pour qu’il n’y ait aucune erreur signalée par l’interpréteur de la calculatrice quoi qu’il arrive (dans la mesure du possible).

Nom du programme : votre programme aura comme nom NBDIG suivi de votre code personnel à deux chiffres (disponible sur le site internet dans le menu en haut à gauche). Les sous-programmes ne sont pas autorisés.

Durée : une semaine, soit jusqu’au 7 avril 2013 à 23h 59mn 59s (GMT+2) : au-delà de cette limite, il y aura un point de pénalité tous les quarts d’heure (la note devant toujours être supérieure ou égale à 1).

Barème :50 points sont consacrés au respect des consignes et au bon fonctionnement du programme, 30 points portent sur l’optimisation du programme, et enfin les 20 derniers points concernent la rigueur (voir plus haut).

Coefficient : le coefficient est de un dans la note finale.


et donc, mon humble participation:

Code: Tout sélectionner
Repeat A>=10
Input "ENTIER >=10:",Str1
If min(seq(inString("0123456789",sub(Str1,K,1)),K,1,length(Str1
expr(Str1->A
End
1+iPart(log(A->B
seq(int(10fPart(A/10^B+1-K))),K,1,B->L1
SortA(L1
not(not(min(L1))+not(min(DeltaList(L1
If Ans
min(seq(not(fPart(A/L1(K))),K,1,B
DelVar L1DelVar ADelVar BDelVar KDelVar Str1Ans


Qui dit mieux ? ;)
Avatar de l’utilisateur
PersalteasMembre UPECS
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Prochain niv.: 6.2%
 
Messages: 2337
Images: 113
Inscription: 04 Fév 2010, 00:00
Localisation: Evry (France)
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: PhD candidate, Bioinformatics

Re: Nombres Digisibles

Messagede noelnadal » 12 Mai 2013, 14:14

Ahah, j'ai les barèmes si vous voulez :P
Entre vous trois ça s'était joué sur l'optimisation, il me semble. Linkakro et Samos avaient réalisé un code strictement identique, d'où le même score. :P
Avatar de l’utilisateur
noelnadalEcrivain
Niveau 17: GM (Grand Maître des calculatrices)
Niveau 17: GM (Grand Maître des calculatrices)
Prochain niv.: 41%
 
Messages: 2271
Images: 0
Inscription: 10 Mar 2011, 00:00
Localisation: France, Melun (77)
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: INRIA Paris
Twitter/X: nadalnoel
Facebook: noel.nadal1
GitHub: noelnadal

Re: Nombres Digisibles

Messagede Persalteas » 12 Mai 2013, 14:15

Mais justement !
Pour le coup, je ne trouve plus rien à optimiser dans mon code... :o
Avatar de l’utilisateur
PersalteasMembre UPECS
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Prochain niv.: 6.2%
 
Messages: 2337
Images: 113
Inscription: 04 Fév 2010, 00:00
Localisation: Evry (France)
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: PhD candidate, Bioinformatics

Re: Nombres Digisibles

Messagede noelnadal » 12 Mai 2013, 14:16

Le programme le plus optimisé était largement celui de 42maelstrom. Là, y'avait pas photo :D
Mais en termes de rigueur, par conter, ça y était pas. :D
Avatar de l’utilisateur
noelnadalEcrivain
Niveau 17: GM (Grand Maître des calculatrices)
Niveau 17: GM (Grand Maître des calculatrices)
Prochain niv.: 41%
 
Messages: 2271
Images: 0
Inscription: 10 Mar 2011, 00:00
Localisation: France, Melun (77)
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: INRIA Paris
Twitter/X: nadalnoel
Facebook: noel.nadal1
GitHub: noelnadal

Re: Nombres Digisibles

Messagede Persalteas » 12 Mai 2013, 14:18

AH j'ai trouvé ! eux, ils ont pas mis d'espace entre le "ENTIER" et le ">=10:" :P
Avatar de l’utilisateur
PersalteasMembre UPECS
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Prochain niv.: 6.2%
 
Messages: 2337
Images: 113
Inscription: 04 Fév 2010, 00:00
Localisation: Evry (France)
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: PhD candidate, Bioinformatics

Re: Nombres Digisibles

Messagede mdr1 » 12 Mai 2013, 14:19

On s'en fout de la "rigueur" dans ces langages, on sait tous très bien que les programmes les plus optimisés sont incompréhensibles.
Image ImageImage
Avatar de l’utilisateur
mdr1Premium
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Prochain niv.: 44%
 
Messages: 1083
Images: 12
Inscription: 28 Mar 2011, 00:00
Genre: Non spécifié
Calculatrice(s):
MyCalcs profile
Classe: Je voyage toujours en première.

Re: Nombres Digisibles

Messagede Persalteas » 12 Mai 2013, 14:21

Ce que Noelthebest appelle rigueur, c'est le fait que quoique l'utilisateur rentre, ça ne renvoie pas de message d'erreur de la part de l'interpréteur de la calculatrice.

C'est pourquoi je m'embête à utiliser une chaine pour l'input.
Avatar de l’utilisateur
PersalteasMembre UPECS
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Prochain niv.: 6.2%
 
Messages: 2337
Images: 113
Inscription: 04 Fév 2010, 00:00
Localisation: Evry (France)
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: PhD candidate, Bioinformatics

Re: Nombres Digisibles

Messagede noelnadal » 12 Mai 2013, 14:21

et surtout >9 c'est plus optimisé que >=10 :troll:

mdr1 -> le sujet indiquait clairement que la rigueur était de mise. C'était possible d'avoir 100/100, vous savez...

et puis persalteas, c'était pas que ça, la rigueur, vous vous êtes presque tous pris 10 points parce que vous avez presque tous oublié qqch :troll:
Avatar de l’utilisateur
noelnadalEcrivain
Niveau 17: GM (Grand Maître des calculatrices)
Niveau 17: GM (Grand Maître des calculatrices)
Prochain niv.: 41%
 
Messages: 2271
Images: 0
Inscription: 10 Mar 2011, 00:00
Localisation: France, Melun (77)
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: INRIA Paris
Twitter/X: nadalnoel
Facebook: noel.nadal1
GitHub: noelnadal

Re: Nombres Digisibles

Messagede mdr1 » 12 Mai 2013, 14:23

Eh bien tu t'es embêté pour rien car un bon programme est censé indiquer à l'utilisateur l'erreur s'il en fait une, ce qui ici est pris en partie en charge par l'OS en demandant un nombre.
Image ImageImage
Avatar de l’utilisateur
mdr1Premium
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Prochain niv.: 44%
 
Messages: 1083
Images: 12
Inscription: 28 Mar 2011, 00:00
Genre: Non spécifié
Calculatrice(s):
MyCalcs profile
Classe: Je voyage toujours en première.

Re: Nombres Digisibles

Messagede Persalteas » 12 Mai 2013, 14:25

et surtout >9 c'est plus optimisé que >=10 :troll:


MEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEERDEEEEE !!!

*Persalteas s'excuse pour tant de vulgarité concentrée

mais mdr1, mon programme redemande à l'utilisateur un ENTIER >=10, c'est clair comme message, non ?

Si ça passe pas, l'utilisateur est en mesure de deviner que c'est que ça ne respecte pas la seule condition que je lui ai demandée...
Avatar de l’utilisateur
PersalteasMembre UPECS
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Prochain niv.: 6.2%
 
Messages: 2337
Images: 113
Inscription: 04 Fév 2010, 00:00
Localisation: Evry (France)
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: PhD candidate, Bioinformatics

Suivante

Retourner vers TI-Basic

Qui est en ligne

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

-
Rechercher
-
Social TI-Planet
-
Sujets à la une
Ndless for CX 4.5.5 / CX II 6.2.0
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 !
12345
-
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.
4796 utilisateurs:
>4777 invités
>10 membres
>9 robots
Record simultané (sur 6 mois):
43991 utilisateurs (le 10/09/2025)
-
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)