[nosmile]
Slt !
Je viens d'inventer une méthode pour récupérer le N-ième chiffre B d'un nombre A :
B = 10 fPart (.1 int (A .1^int (1-N + log (A
C'est la méthode la plus rapide que j'aie pu trouver. (28,78 ms ^^)
Ca peut permettre dans certains cas de créer un espace de stockage à 3 dimensions en utilisant cette méthode dans une matrice.
Voilà !
[nosmile]Oui j'avais imaginé qu'on pouvait facilement faire ça, bravo.
J'ai trouvé la formule pour stocker (remplacer) un chiffre dans un nombre. Je prends les mêmes notations que pour les listes, càd A(2) signifie le 2e chiffre de A, donné par la formule postée précédemment.
X->A(N) équivaut à :
A + (X-A(N)) 10^(int (1-N + log (A -> A
D'ailleurs, on peut généraliser et ne pas stocker un chiffre mais une série de chiffres. Ainsi, on peut partitionner un nombre en plusieurs nombres.
Tres très pratique, j'utilise notamment ces méthodes pour compresser les données stockées dans les listes de Football Simulation et Third Life (ca permet entre autres de stocker la ville de 700 batiments dans un espace raisonnable dans ce dernier)
A oui ? Cool de voir que ça a déjà été appliqué. A propos, j'en profite : j'ai trouvé Football Simulation génial ^^.
very Le 21/04/2008 à 02:55 Heu si on veut stocker (donc a priori on connait 'bien' le format puisqu'on la construit nous-mêmes) ça devrait être plus rapide de stocker dans des puissance de 10 (ie, en gros, au lieu d'énumérer les digits en gauche->droite, aller dans l'autre sens), s'il n'y a pas une abération dont TI a parfois le secret. (ça évite de calculer le log). Bon si on connait pas assez bien le nombre (sa taille), ça revient au même.
Sinon, c'est plus limité en taille, mais c'est plus simple de stocker derrière la virgule (justement pasque on part du point fixe..)
Ha les hacks hallucinants du basic !
«Les gens exigent la liberté d’expression pour compenser la liberté de pensée qu’ils préfèrent éviter.» - Sören Kierkegaard
La République, c’est comme la syphilis : quand on l’a attrapée, soit on se fait sauter le caisson, soit on essaie de vivre avec.
gon33 Le 21/04/2008 à 11:18 Sauf que pour la vitesse... arg^^
J'ai pour la première fois expérimenté ce système dans un jeu, et je pense qu'on peux rajouter des infos sur le stockage d'informations dans des nombres.
En plus des 10 chiffres du nombre, on peut rajouter une virgule, qui selon sa position donne un nombre compris entre 0 et 9 (un chiffre enfait). On peut utiliser la formule :
int (log (A
Mais il faut alors se méfier des 0, qui peuvent poser problème lorsqu'ils se trouvent au début de la partie entière, ou à la fin de la partie décimale.
On peut également ajouter un - , ce qui inclut dans le nombre une variable binaire.
Un élément contenant un nombre complexe dans une liste prend la même place que 2 éléments, donc c'est plutôt inutile.
Oui, et d'ailleurs, j'ai trouvé mieux ^^.
On peut stocker 12 chiffres (0 à 9), avec la forme 0.123456789 E12
Pas bete d'utiliser la puissance pour y stocker des nombres. C'est la premiere fois que je vois ca.
Un élément complexe prend la place de 2 éléments réels.
On peut bien entendu stocker des nombres plus grands que 9, voir le post 2. Négatif ? Débrouille-toi ^^. Pour coder des infos autres que des chiffres, il faut assigner aux chiffres des valeurs spécifiques, et ça tu fais comme tu veux.
D'ailleurs j'en profite : suite à une remarque de tama, j'ai découvert qu'on peut stocker jusqu'à 16 chiffres dans un nombre.
Exemple : 1.2345678901234 E 12
Les 10 premiers chiffres sont affichés à l'écran, les 4 suivants ne le sont pas mais sont quand même gardés en mémoire, et reste les 2 de la puissance ; d'où 16 chiffres.
very Le 26/09/2008 à 23:01 + un nombre binaire qui correspond au signe, et là t'utilises bine toute la place prévu par le format de la calc
«Les gens exigent la liberté d’expression pour compenser la liberté de pensée qu’ils préfèrent éviter.» - Sören Kierkegaard
La République, c’est comme la syphilis : quand on l’a attrapée, soit on se fait sauter le caisson, soit on essaie de vivre avec.
et encore un autre par rapport à la position de la virgule, si j'ai bien suivi jusqu'à présent.
Mais à moins que je ne me trompe, les nombres trop grand sont arrondis quand on éteint la calto et la rallume, il me semble.
Ah ok dsl. Ca sert pas à grand chose, puisque dès qu'on utilise les puissances de 10, la virgule ne bouge plus.
Oui mais à part minimiser l'espace de stockage, je vois pas à quoi ça peut servir.