Posté le 16/02/2013 23:54
Planète Casio v4.3 © créé par Neuronix et Muelsaco 2004 - 2024 | Il y a 118 connectés | Nous contacter | Qui sommes-nous ? | Licences et remerciements
Planète Casio est un site communautaire non affilié à Casio. Toute reproduction de Planète Casio, même partielle, est interdite.
Les programmes et autres publications présentes sur Planète Casio restent la propriété de leurs auteurs et peuvent être soumis à des licences ou copyrights.
CASIO est une marque déposée par CASIO Computer Co., Ltd
Citer : Posté le 20/02/2013 20:47 | #
Justement c'est ça l'optimisation ! On travail pas deux fois sur une liste mais une fois sur une liste puis une fois sur un nombre
Par contre l'ancien est faux, celui là est correct :
Prod ({1,2,3})=1->B
Next
Après il existe certaines combinaisons notamment avec les négatifs qui font bugger le code :/
Citer : Posté le 20/02/2013 21:15 | #
...
Prod ({1,2,3}) est égal à 6
donc si tu fait Prod ({1,2,3})=1 tu teste juste si 6=1
alors que Prod ({1,2,3}=1) tu teste si tous les nombres de la liste sont égaux à 1
Pour ce qui est de la place prise en fait l'astuce permet d'économiser 1 octet par valeur de liste à partir de 4 valeurs
Ajouté le 20/02/2013 à 21:23 :
l\'éventuel avantage supplémentaire de l\'astuce est sa malléabilité: on les valeurs à tester ne sont pas figées comme pourraient l\'être celles sur des conditions and.
Prod (List 1!=42)->A
{34,42,63,69,256,1337,9001-> List 1
Prod (List 1!=42)->B
On peut ainsi changer le nombre de valeurs à tester dans une même condition de façon bien plus dynamique.
Citer : Posté le 20/02/2013 21:50 | #
donc si tu fait Prod ({1,2,3})=1 tu teste juste si 6=1
Oui mais pour que Prod ({A,B,C}=1), il faut que A=B=C=1
Après ca foire si A=0.5 B=2 C=1 ou A=-1 B=-1 C=1 :/ et puis ça fonctionne que pour =1 donc c'est vraiment nul.
Oui dans ce cas ça peut être pratique, même si je n'ai aucune idée du moment où ça pourrait me servir Mdr