Astuce mathématique

Soyez le premier à donner votre avis sur cette source.

Snippet vu 6 790 fois - Téléchargée 18 fois

Contenu du snippet

Une astuce intéressante mais totalement inutile en mode programmation !
Comment déterminer le nombre de chiffres d'un nombre par une méthode purement mathématique ?

Source / Exemple :


Exemple: soit le nombre 95874
Pour connaitre le nombre de chiffres de ce nombre (ici 5) on peut faire appel au logarithme décimal du nombre.
log(95874)=4,981....
On prend la partie entière et on ajoute 1 -> 4 + 1 = 5 chiffres

Fonctionne avec toutes les nombres.

Conclusion :


CQFD ......

A voir également

Ajouter un commentaire

Commentaires

Messages postés
2065
Date d'inscription
lundi 11 avril 2005
Statut
Membre
Dernière intervention
14 mars 2016
8
... et comme disait le plus grand théoricien : "La théorie c'est bien, la pratique c'est mieux"...

Amicalement,
Us.
Messages postés
52
Date d'inscription
vendredi 20 octobre 2006
Statut
Membre
Dernière intervention
11 juin 2014

Je raisonne sur ce problème de façon théorique et non pratique. En théorie, il ne pourra jamais avoir un autre résultat que celui énoncé. C'est la propriété même d'un logarithme décimal que personne ne pourra remettre en cause.
Bonnes fêtes de fin d'année.
Messages postés
2065
Date d'inscription
lundi 11 avril 2005
Statut
Membre
Dernière intervention
14 mars 2016
8
Je ferais une autre remarque qui n'aura échappé à personne... La limitation pratique du calcul, qui sera arrondi nécessairement rends faux le calcul au-delà d'un certain nombre...

Exemple en VB :

Debug.Print Log(999999999999#) / Log(10) ' 11 décimale => renvoi 11,9999999999996
Debug.Print Log(9999999999999#) / Log(10) ' 12 décimale => renvoi 13 au lieu de 12,99999999999999999

Il est important de connaître les limitations aussi...

Amicalement,
Us.
Messages postés
52
Date d'inscription
vendredi 20 octobre 2006
Statut
Membre
Dernière intervention
11 juin 2014

Réponse à US_30:
Quand j'écrivais log(95874) je précisais bien en toutes lettres qu'il s'agissait du logarithme décimal.
Dans certains livres ou calculette on trouve log(pour logarithme décimal) et ln (pour logarithme népérien)
Quand à la rapidité du calcul, effectivement c'est lent, mais l'objet de mon écrit ne ciblait pas ce problème.
Merci et bonne soirée.
Messages postés
2065
Date d'inscription
lundi 11 avril 2005
Statut
Membre
Dernière intervention
14 mars 2016
8
Ah tient ! j'avais pas fait attention, mais ce que dit dheroux est incomplet !!

La fonction LOG est en base 2 => logarithme népérien...

Il faut donc diviser le nombre par LOG(10) pour le mettre sur la base 10... Soit log(95874)/log(10)=4,981 au lieu de log(95874)=4,981...

CQFD... Encore un mauvais point pour la rapidité...

Amicalement,
Us.
Afficher les 27 commentaires

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.