bouv
Messages postés1411Date d'inscriptionmercredi 6 août 2003StatutMembreDernière intervention 3 mars 2019
-
23 mai 2004 à 20:46
vlad2i
Messages postés285Date d'inscriptionmercredi 20 août 2003StatutMembreDernière intervention13 février 2005
-
2 déc. 2004 à 18:26
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.
vlad2i
Messages postés285Date d'inscriptionmercredi 20 août 2003StatutMembreDernière intervention13 février 2005 2 déc. 2004 à 18:26
Plein de gens l'ont codée la racine ...
Développement en suite de Newton, en série, ou pour de grands entiers, tu peux utiliser cet algo simple (qui ne donne que la valeur entière)
nNombreImpair=1
Do while nRacine<nNombre
nRacine = nRacine + nNombreImpair
nNombreImpair = nNombreImpair+2
nValeur = nValeur +1
Loop
Quand la boucle est finie, nValeur contient la valeur entière de la racine de ton nombre...
Une méthode primitive mais rapide si on n'a pas besoin des décimales :)
Vlad
MadM@tt
Messages postés2167Date d'inscriptionmardi 11 novembre 2003StatutMembreDernière intervention16 juillet 20091 30 nov. 2004 à 19:54
Et la racine carré que je recherche désespérement...
personne ne l'a codée ?
bouv
Messages postés1411Date d'inscriptionmercredi 6 août 2003StatutMembreDernière intervention 3 mars 20191 1 juil. 2004 à 13:02
Désolé j'ai pas le temps de mettre à jour avec Division et Multiplication. On verra dans quelques temps.
Si quelqu'un est partant bonne prog.
++
DeadlyPredator
Messages postés222Date d'inscriptionjeudi 15 janvier 2004StatutMembreDernière intervention30 juin 2008 5 juin 2004 à 01:29
T'es-tu un prof de math?
cs_bayosky
Messages postés17Date d'inscriptionsamedi 5 avril 2003StatutMembreDernière intervention23 juillet 2007 5 juin 2004 à 01:24
Remarques concernant ce qui a été dit:
1. Un nombre peut posséder des milliards de chiffres après la virgule et "s'arréter un jour".
2. Les nombres rationnels sont caractérisés par le fait que le développement décimal est "périodique à partir d'un certain rang"
( comme 3,4578 123 123 123 123 ... )
3. Les décimaux sont des rationnels particuliers...
4. Les irrationnels ont donc un dévelopement décimal illimité et non-périodique .
5. Parmi les irrationnels, les nombres comme pi et autres e ( exp(1) )
ont une position particulière : Il ne sont pas solution d'un équation algébrique .... On les qualifie de "transcendants" ...
6. Les calculs en "multiprécision" sont programmés en général dans des idiomes "près des machines" et de nombreux programmes font cela très bien et très vite, y compris sur les bécanes avec peu de mémoire mais les algorithmes utilisés ne sont pas "naifs" et prennent en compte le necessaire contrôle des erreurs pour que la précision anoncée soit réelle ...
Exemple : je mesure l'arete d'un cube et je trouve 10 cm +/- 0,1
erreur maximale 1 mm
cela signifie que le volume est entre 9,9^3 et 10,1^3 c'est à dire
entre 970,299 et 1030,301 soit, en gros 1000 +/- 30
l'erreur maximale est donc un peu plus grande que 30 cm3 soit
30 000 mm3
( valeur à comparer au "1 mm " )
ouala, ouala... bref l'entreprise est louable mais le problème très complexe,
surtout si l'on veut attaquer ainsi autre chose que + - * et /
vlad2i
Messages postés285Date d'inscriptionmercredi 20 août 2003StatutMembreDernière intervention13 février 2005 27 mai 2004 à 21:49
Tu as compris mec :)
bouv
Messages postés1411Date d'inscriptionmercredi 6 août 2003StatutMembreDernière intervention 3 mars 20191 27 mai 2004 à 21:24
Petie MAJ, modifiée par les soins de vladi2i.
Effectivement plus rapide et à l'air de prendre des montant plus importants.
Merci vladi2i
Petite question sur Modulo.
Si j'ai bien compris.
Si je fais 11 / 3 , j'obtiens 3 et modulo = 2 ?
++
vlad2i
Messages postés285Date d'inscriptionmercredi 20 août 2003StatutMembreDernière intervention13 février 2005 27 mai 2004 à 17:55
C'est un plaisir de t'expliquer...
Alors : 1) on note A mod B comme ça A[B]
2) Le "modulo" est le reste d'une division (ex 5:2 -> quotient 2 / reste (= modulo) 1)
Voila :P
J'essayes d'etre clair mais j'ai du mal :P
bouv
Messages postés1411Date d'inscriptionmercredi 6 août 2003StatutMembreDernière intervention 3 mars 20191 26 mai 2004 à 07:53
vladi2i>>
Merci,
j'ai pas eu le temps de m'y remettre, effectivement je me suis dis que cela pouvait etre IsNumeric qui posait probleme. C'est à mon avis ce qui à causé l'erreur de DeadlyPredator, car si la chaine est trop grande, VB ne la voit plus comme un nombre mais une simple chaine (enfin je pense).
Oui, je veux bien que tu m'envoi le code, cela sera sympa.
Mon email : BouvetDavid@hotmail.com
Autre chose, à quoi sert la fonction Modulo, je connu cette fonction sur le site, mais je ne sais absolument pas a quoi elle peut servir. Il faut dire que je n'ai fait n'y d'étude de Maths ni d'informatique, je suis comptable. SI tu pouvait m'expliquer en quelques lignes.
Merci encore.
vlad2i
Messages postés285Date d'inscriptionmercredi 20 août 2003StatutMembreDernière intervention13 février 2005 25 mai 2004 à 16:15
Oho !!!
Que vois je !!!
Une erreur gravissimissime !!!
:P
Je te corrige ton code, si tu le veux tu me demandes :P
Mais sache que envoyer 3.141592653589793238462 à IsNumeric renverra False...
héhé j'ai réglé 5-6 bugs et acceleré le tout, si tu veux, je suis la :
vlad2i@hotmail.com
vlad2i
Messages postés285Date d'inscriptionmercredi 20 août 2003StatutMembreDernière intervention13 février 2005 25 mai 2004 à 15:55
Je suis pas d'accord avec le piti prédator...
Ca peut etre TRES TRES utile
Na
Ne serait-ce que pour approcher une intégrale...
Calculer 100 000 000 décimales de pi...
Approcher un nombre de plus de 32 bits ...
Ca peut servir (en soi). Et ce n'est pas bête qu'il ait essayé avec des décimaux.
Voila voila, je te donnes des idées :P
Ca m'a l'air bien interessant :P
DeadlyPredator
Messages postés222Date d'inscriptionjeudi 15 janvier 2004StatutMembreDernière intervention30 juin 2008 24 mai 2004 à 19:08
Selon moi, le max d'un tableau doit être une valeur en long donc sur 8 octets alors le max va être de 4294967295.
bouv
Messages postés1411Date d'inscriptionmercredi 6 août 2003StatutMembreDernière intervention 3 mars 20191 24 mai 2004 à 08:04
DeadlyPredator>>
Il y a effectivement peut-etre un probleme de memoire. Moi j'ai 512Mo
Si je fais le calcul du tu m'as donné j'obtiens:
100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
Pour le prouvé je poste une nouvelle capture d'écran avec un calcul bcp plus grand.
Merci qd meme pour ces infos
Autre chose, effectivement, si les valeurs que tu utilise ne sont pas numeric je demande de renvoyer la valeur 0. Peut-etre renvoit-il cette meme valeur si le nombre est trop grand ? Mais il est tres facile de renvoyer un autre message..
Maintenant si tu veux une approximation de PI, je n'ai pas la valeur exact, mais avec cette source je peux te calculer pas moins de 30000 decimales voir plus si tu le veux.
++
DeadlyPredator
Messages postés222Date d'inscriptionjeudi 15 janvier 2004StatutMembreDernière intervention30 juin 2008 24 mai 2004 à 07:19
lol désolé pour ce bug bizzare. Flush le prémier commentaire ...
******************************************************
précision mon cul oui. Check. selon moi, c'est inutile. En général (je ne crois pas me trompé) quand un nombre à 6 chiffres ou plus après la virgule, on peut en conclure que c'est un nom irrationnel (essais de me trouver la vrai valeur de pi) donc c'est ... comme chercher à voir la base d'un arc-en-ciel... donc il va quand même falloir arrondir pi on va perdre de la précision. Par contre, pour les gros nombres (les milliards de milliard...) ça a un peut plus de sens. C'est judicieux d'utiliser les tableux de vb ... mais il faut bien qu'ils aient une propriétées pour dire leur "count" donc cette propriétée, elle est d'un certain type (variant, integer, long,...) donc ça risque de débordé. Et vb est un language de programmation lent donc ça risque de créer des problèmes.
*****************
je viens de faire un test sur les tableux :
à 1473533 ça a boguer : mémoire insufisante (j'ai 128mo)
je refais le test et c'est la même chose (même même chose)
Donc je crois avoir atteint le "top"
*****************
Donc il y a une limite. Mais c'est très bien car au moins, ça montre "redim", "preserve" et comment on additione/soustrait à la main ;-). Et un dernier p.s. je crois que variant supporte plus que string mais faudrait vérifier.
DeadlyPredator
Messages postés222Date d'inscriptionjeudi 15 janvier 2004StatutMembreDernière intervention30 juin 2008 24 mai 2004 à 07:17
précision mon cul oui. Check. selon moi, c'est inutile. En général (je ne crois pas me trompé) quand un nombre à 6 chiffres ou plus après la virgule, on peut en conclure que c'est un nom irrationnel (essais de me trouver la vrai valeur de pi) donc c'est ... comme chercher à voir la base d'un arc-en-ciel... donc il va quand même falloir arrondir pi on va perdre de la précision. Par contre, pour les gros nombres (les milliards de milliard...) ça a un peut plus de sens. C'est judicieux d'utiliser les tableux de vb ... mais il faut bien qu'ils aient une propriétées pour dire leur "count" donc cette propriétée, elle est d'un certain type (variant, integer, long,...) donc ça risque de débordé. Et vb est un language de programmation lent donc ça risque de créer des problèmes.
*****************
je viens de faire un test sur les tableux :
à 1473533 ça a boguer : mémoire insufisante (j'ai 128mo)
je refais le test et c'est la même chose (même même chose)
Donc je crois avoir atteint le "top"
*****************
Donc il y a une limite. Mais c'est très bien car au moins, ça montre "redim", "preserve" et comment on additione/soustrait à la main ;-). Et un dernier p.s. je crois que variant supporte plus que string mais faudrait vérifier.
essais 99999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999 + 1 je crois pas que ça donne 0. C'est le max de ton prog je crois.
bouv
Messages postés1411Date d'inscriptionmercredi 6 août 2003StatutMembreDernière intervention 3 mars 20191 23 mai 2004 à 20:46
z'allais oublier, les valeurs doivent etre des String.
++
2 déc. 2004 à 18:26
Développement en suite de Newton, en série, ou pour de grands entiers, tu peux utiliser cet algo simple (qui ne donne que la valeur entière)
nNombreImpair=1
Do while nRacine<nNombre
nRacine = nRacine + nNombreImpair
nNombreImpair = nNombreImpair+2
nValeur = nValeur +1
Loop
Quand la boucle est finie, nValeur contient la valeur entière de la racine de ton nombre...
Une méthode primitive mais rapide si on n'a pas besoin des décimales :)
Vlad
30 nov. 2004 à 19:54
personne ne l'a codée ?
1 juil. 2004 à 13:02
Si quelqu'un est partant bonne prog.
++
5 juin 2004 à 01:29
5 juin 2004 à 01:24
1. Un nombre peut posséder des milliards de chiffres après la virgule et "s'arréter un jour".
2. Les nombres rationnels sont caractérisés par le fait que le développement décimal est "périodique à partir d'un certain rang"
( comme 3,4578 123 123 123 123 ... )
3. Les décimaux sont des rationnels particuliers...
4. Les irrationnels ont donc un dévelopement décimal illimité et non-périodique .
5. Parmi les irrationnels, les nombres comme pi et autres e ( exp(1) )
ont une position particulière : Il ne sont pas solution d'un équation algébrique .... On les qualifie de "transcendants" ...
6. Les calculs en "multiprécision" sont programmés en général dans des idiomes "près des machines" et de nombreux programmes font cela très bien et très vite, y compris sur les bécanes avec peu de mémoire mais les algorithmes utilisés ne sont pas "naifs" et prennent en compte le necessaire contrôle des erreurs pour que la précision anoncée soit réelle ...
Exemple : je mesure l'arete d'un cube et je trouve 10 cm +/- 0,1
erreur maximale 1 mm
cela signifie que le volume est entre 9,9^3 et 10,1^3 c'est à dire
entre 970,299 et 1030,301 soit, en gros 1000 +/- 30
l'erreur maximale est donc un peu plus grande que 30 cm3 soit
30 000 mm3
( valeur à comparer au "1 mm " )
ouala, ouala... bref l'entreprise est louable mais le problème très complexe,
surtout si l'on veut attaquer ainsi autre chose que + - * et /
27 mai 2004 à 21:49
27 mai 2004 à 21:24
Effectivement plus rapide et à l'air de prendre des montant plus importants.
Merci vladi2i
Petite question sur Modulo.
Si j'ai bien compris.
Si je fais 11 / 3 , j'obtiens 3 et modulo = 2 ?
++
27 mai 2004 à 17:55
Alors : 1) on note A mod B comme ça A[B]
2) Le "modulo" est le reste d'une division (ex 5:2 -> quotient 2 / reste (= modulo) 1)
Voila :P
J'essayes d'etre clair mais j'ai du mal :P
26 mai 2004 à 07:53
Merci,
j'ai pas eu le temps de m'y remettre, effectivement je me suis dis que cela pouvait etre IsNumeric qui posait probleme. C'est à mon avis ce qui à causé l'erreur de DeadlyPredator, car si la chaine est trop grande, VB ne la voit plus comme un nombre mais une simple chaine (enfin je pense).
Oui, je veux bien que tu m'envoi le code, cela sera sympa.
Mon email : BouvetDavid@hotmail.com
Autre chose, à quoi sert la fonction Modulo, je connu cette fonction sur le site, mais je ne sais absolument pas a quoi elle peut servir. Il faut dire que je n'ai fait n'y d'étude de Maths ni d'informatique, je suis comptable. SI tu pouvait m'expliquer en quelques lignes.
Merci encore.
25 mai 2004 à 16:15
Que vois je !!!
Une erreur gravissimissime !!!
:P
Je te corrige ton code, si tu le veux tu me demandes :P
Mais sache que envoyer 3.141592653589793238462 à IsNumeric renverra False...
héhé j'ai réglé 5-6 bugs et acceleré le tout, si tu veux, je suis la :
vlad2i@hotmail.com
25 mai 2004 à 15:55
Ca peut etre TRES TRES utile
Na
Ne serait-ce que pour approcher une intégrale...
Calculer 100 000 000 décimales de pi...
Approcher un nombre de plus de 32 bits ...
Ca peut servir (en soi). Et ce n'est pas bête qu'il ait essayé avec des décimaux.
Au passage : des idées. × et div c'est facile...
Modulo
Racine (racine carrée, cubique...)
Factorisation (n!)
Logarithmes (log, e)
Puissances (x^y)
et des op avec bcp plus que 2 opérandes :P
Voila voila, je te donnes des idées :P
Ca m'a l'air bien interessant :P
24 mai 2004 à 19:08
24 mai 2004 à 08:04
Il y a effectivement peut-etre un probleme de memoire. Moi j'ai 512Mo
Si je fais le calcul du tu m'as donné j'obtiens:
100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
Pour le prouvé je poste une nouvelle capture d'écran avec un calcul bcp plus grand.
Merci qd meme pour ces infos
Autre chose, effectivement, si les valeurs que tu utilise ne sont pas numeric je demande de renvoyer la valeur 0. Peut-etre renvoit-il cette meme valeur si le nombre est trop grand ? Mais il est tres facile de renvoyer un autre message..
Maintenant si tu veux une approximation de PI, je n'ai pas la valeur exact, mais avec cette source je peux te calculer pas moins de 30000 decimales voir plus si tu le veux.
++
24 mai 2004 à 07:19
******************************************************
précision mon cul oui. Check. selon moi, c'est inutile. En général (je ne crois pas me trompé) quand un nombre à 6 chiffres ou plus après la virgule, on peut en conclure que c'est un nom irrationnel (essais de me trouver la vrai valeur de pi) donc c'est ... comme chercher à voir la base d'un arc-en-ciel... donc il va quand même falloir arrondir pi on va perdre de la précision. Par contre, pour les gros nombres (les milliards de milliard...) ça a un peut plus de sens. C'est judicieux d'utiliser les tableux de vb ... mais il faut bien qu'ils aient une propriétées pour dire leur "count" donc cette propriétée, elle est d'un certain type (variant, integer, long,...) donc ça risque de débordé. Et vb est un language de programmation lent donc ça risque de créer des problèmes.
*****************
je viens de faire un test sur les tableux :
à 1473533 ça a boguer : mémoire insufisante (j'ai 128mo)
je refais le test et c'est la même chose (même même chose)
Donc je crois avoir atteint le "top"
*****************
Donc il y a une limite. Mais c'est très bien car au moins, ça montre "redim", "preserve" et comment on additione/soustrait à la main ;-). Et un dernier p.s. je crois que variant supporte plus que string mais faudrait vérifier.
24 mai 2004 à 07:17
*****************
je viens de faire un test sur les tableux :
à 1473533 ça a boguer : mémoire insufisante (j'ai 128mo)
je refais le test et c'est la même chose (même même chose)
Donc je crois avoir atteint le "top"
*****************
Donc il y a une limite. Mais c'est très bien car au moins, ça montre "redim", "preserve" et comment on additione/soustrait à la main ;-). Et un dernier p.s. je crois que variant supporte plus que string mais faudrait vérifier.
essais 99999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999 + 1 je crois pas que ça donne 0. C'est le max de ton prog je crois.
23 mai 2004 à 20:46
++