Nombre de chiffres d'un entier naturel

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
13 messages Options
Reply | Threaded
Open this post in threaded view
|

Nombre de chiffres d'un entier naturel

Rene Paul Mages (ramix)
Chers Smalltalkers,

Je n'arrive pas à trouver la méthode donnant le nombre de chiffres
d'un nombre entier (un LargePositiveInteger).

Suis-je dans les ~bons~ menus du System Browser de Pharo 1.1.1 :

http://www.ffii.fr/ramix/pharo/digitLength.png


Merci pour votre aide.
--
Amicalement.
Rene Mages ( GnuPG_key 1024D/2CC455D9 )
http://sites.google.com/site/logiciellibre/pharo
La protection des biens communs une urgente nécessité
Reply | Threaded
Open this post in threaded view
|

Re: Nombre de chiffres d'un entier naturel

Jean-François LEFEVRE-2
Bonjour,

La primitive référencée sert à donner le nombre de slots indexés du LargeInteger, ce n'est pas le nombre de digits.

Personnellement, si je me posais la question je ferais un simple "n printString size"
Et si je voulais optimiser pour éviter de passer par la construction d'une chaine, j'irais regarder comment est fait le printString

Cordialement,
Jean-François

Le 23 février 2011 11:39, Rene Mages (ramix) <[hidden email]> a écrit :
Chers Smalltalkers,

Je n'arrive pas à trouver la méthode donnant le nombre de chiffres
d'un nombre entier (un LargePositiveInteger).

Suis-je dans les ~bons~ menus du System Browser de Pharo 1.1.1 :

http://www.ffii.fr/ramix/pharo/digitLength.png


Merci pour votre aide.
--
Amicalement.
Rene Mages ( GnuPG_key 1024D/2CC455D9 )
http://sites.google.com/site/logiciellibre/pharo
La protection des biens communs une urgente nécessité



--
Jean-François LEFEVRE
Consultant/Formateur
[hidden email]
06.80.38.01.29
Reply | Threaded
Open this post in threaded view
|

Re: Nombre de chiffres d'un entier naturel

Benoit St-Jean
In reply to this post by Rene Paul Mages (ramix)
123 log floor + 1

ou

123 printString size
 
-----------------
Benoit St-Jean
Yahoo! Messenger: bstjean
A standpoint is an intellectual horizon of radius zero.
(Albert Einstein)



From: Rene Mages (ramix) <[hidden email]>
To: [hidden email]
Sent: Wed, February 23, 2011 5:39:55 AM
Subject: Nombre de chiffres d'un entier naturel

Chers Smalltalkers,

Je n'arrive pas à trouver la méthode donnant le nombre de chiffres
d'un nombre entier (un LargePositiveInteger).

Suis-je dans les ~bons~ menus du System Browser de Pharo 1.1.1 :

http://www.ffii.fr/ramix/pharo/digitLength.png


Merci pour votre aide.
--
Amicalement.
Rene Mages ( GnuPG_key 1024D/2CC455D9 )
http://sites.google.com/site/logiciellibre/pharo
La protection des biens communs une urgente nécessité

Reply | Threaded
Open this post in threaded view
|

Re: Nombre de chiffres d'un entier naturel

Rene Paul Mages (ramix)
Le 23 février 2011 13:30, Benoit St-Jean <[hidden email]> a écrit :
> 123 log floor + 1
>
> ou
>
> 123 printString size

Merci Benoit et Jean-François,

   printString size convient parfaitement.

--
Amicalement.
Rene Mages ( GnuPG_key 1024D/2CC455D9 )
http://sites.google.com/site/logiciellibre/pharo
Reply | Threaded
Open this post in threaded view
|

Re: Nombre de chiffres d'un entier naturel

Alexandre Jasmin
In reply to this post by Benoit St-Jean
> 123 log floor + 1

Ça ne fonctionne pas avec zéro.
Reply | Threaded
Open this post in threaded view
|

Re: Nombre de chiffres d'un entier naturel

Benoit St-Jean
Considérant que les entiers naturels n'incluent pas le zéro, ça ne devrais pas trop déranger...  :)
 
-----------------
Benoit St-Jean
Yahoo! Messenger: bstjean
A standpoint is an intellectual horizon of radius zero.
(Albert Einstein)



From: Alexandre Jasmin <[hidden email]>
To: [hidden email]
Sent: Wed, February 23, 2011 1:08:51 PM
Subject: Re: Nombre de chiffres d'un entier naturel

> 123 log floor + 1

Ça ne fonctionne pas avec zéro.

Reply | Threaded
Open this post in threaded view
|

Re: Nombre de chiffres d'un entier naturel

Rene Paul Mages (ramix)
In reply to this post by Rene Paul Mages (ramix)
Le 23 février 2011 22:33, Pottier Bernard <[hidden email]> a écrit :

> Le 23/02/2011 11:39, Rene Mages (ramix) a écrit :
>>
>> Chers Smalltalkers,
>>
>> Je n'arrive pas à trouver la méthode donnant le nombre de chiffres
>> d'un nombre entier (un LargePositiveInteger).
>>
>> Suis-je dans les ~bons~ menus du System Browser de Pharo 1.1.1 :
>>
>> http://www.ffii.fr/ramix/pharo/digitLength.png
>>
>>
>> Merci pour votre aide.
>
> Bonsoir,
>
> Avez vous essayé basicSize ?

Oui mais j'ai vite abandonné devant cette réponse :  123456789 basicSize   -> 0

Merci encore à tous pour votre aide.

By the way : zéro est bien un entier naturel
--
Amicalement.
Rene Mages ( GnuPG_key 1024D/2CC455D9 )
http://sites.google.com/site/logiciellibre/pharo
Reply | Threaded
Open this post in threaded view
|

Re: Nombre de chiffres d'un entier naturel

cedreek
In reply to this post by Benoit St-Jean
<base href="x-msg://151/">Sinon

Integer>>numberOfDigit

i := 0.
[true] whileTrue: [
(self abs // (10 raisedTo: i)) between: 0 and: 9)  ifTrue: [^ i + 1].
i := i + 1.] 


ca semble etre plus rapide que la version avec floor (8x). 

Mes 2 centimes ;)


Le 23 févr. 2011 à 19:26, Benoit St-Jean a écrit :

Considérant que les entiers naturels n'incluent pas le zéro, ça ne devrais pas trop déranger...  :)
 
-----------------
Benoit St-Jean
Yahoo! Messenger: bstjean
A standpoint is an intellectual horizon of radius zero.
(Albert Einstein)



From: Alexandre Jasmin <[hidden email]>
To: [hidden email]
Sent: Wed, February 23, 2011 1:08:51 PM
Subject: Re: Nombre de chiffres d'un entier naturel

> 123 log floor + 1

Ça ne fonctionne pas avec zéro.



Reply | Threaded
Open this post in threaded view
|

Re: Nombre de chiffres d'un entier naturel

Rene Paul Mages (ramix)
2011/2/24 Cédrick Béler <[hidden email]>:
> Sinon
> Integer>>numberOfDigit
> i := 0.
> [true] whileTrue: [
> (self abs // (10 raisedTo: i)) between: 0 and: 9)  ifTrue: [^ i + 1].
> i := i + 1.]
>
> ca semble etre plus rapide que la version avec floor (8x).

Merci beaucoup , voilà très exactement la méthode que je cherchais (
du coup j'ai aussi pigé ma maladresse dans la recherche ) .

--
Amicalement.
Rene Mages ( GnuPG_key 1024D/2CC455D9 )
http://sites.google.com/site/logiciellibre/
Reply | Threaded
Open this post in threaded view
|

Re: Nombre de chiffres d'un entier naturel

Benoit St-Jean
1234 numberOfDigitsInBase: 10

Bref, une multitude de solutions possibles
 


-----------------
Benoit St-Jean
Yahoo! Messenger: bstjean
A standpoint is an intellectual horizon of radius zero.
(Albert Einstein)

Reply | Threaded
Open this post in threaded view
|

Re: Nombre de chiffres d'un entier naturel

cedreek
In reply to this post by Rene Paul Mages (ramix)

Le 24 févr. 2011 à 14:25, Rene Mages (ramix) a écrit :

> 2011/2/24 Cédrick Béler <[hidden email]>:
>> Sinon
>> Integer>>numberOfDigit
>> i := 0.
>> [true] whileTrue: [
>> (self abs // (10 raisedTo: i)) between: 0 and: 9)  ifTrue: [^ i + 1].
>> i := i + 1.]
>>
>> ca semble etre plus rapide que la version avec floor (8x).
>
> Merci beaucoup , voilà très exactement la méthode que je cherchais (
> du coup j'ai aussi pigé ma maladresse dans la recherche ) .

en fait, je l'avais même pas cherché... :)

mais effectivement, une similaire existe déjà plus générale, optimisée et documentée...

@+


>
> --
> Amicalement.
> Rene Mages ( GnuPG_key 1024D/2CC455D9 )
> http://sites.google.com/site/logiciellibre/

Reply | Threaded
Open this post in threaded view
|

Re: Nombre de chiffres d'un entier naturel

Benoit St-Jean
In reply to this post by Rene Paul Mages (ramix)
René, est-ce que tu essaies de trouver le nombre de chiffres d'un entier très très gros, par exemple d'un nombre avec des millions de chiffres (comme pour certains projets de projecteuler.net) ?

En ce qui concerne le nombre zéro, ça dépend des interprétations,

c.f.    http://fr.wikipedia.org/wiki/Entiers_naturels

:)

 -----------------
Benoit St-Jean
Yahoo! Messenger: bstjean
A standpoint is an intellectual horizon of radius zero.
(Albert Einstein)



From: Rene Mages (ramix) <[hidden email]>
To: [hidden email]
Sent: Wed, February 23, 2011 7:09:09 PM
Subject: Re: Nombre de chiffres d'un entier naturel

Le 23 février 2011 22:33, Pottier Bernard <[hidden email]> a écrit :

> Le 23/02/2011 11:39, Rene Mages (ramix) a écrit :
>>
>> Chers Smalltalkers,
>>
>> Je n'arrive pas à trouver la méthode donnant le nombre de chiffres
>> d'un nombre entier (un LargePositiveInteger).
>>
>> Suis-je dans les ~bons~ menus du System Browser de Pharo 1.1.1 :
>>
>> http://www.ffii.fr/ramix/pharo/digitLength.png
>>
>>
>> Merci pour votre aide.
>
> Bonsoir,
>
> Avez vous essayé basicSize ?

Oui mais j'ai vite abandonné devant cette réponse :  123456789 basicSize  -> 0

Merci encore à tous pour votre aide.

By the way : zéro est bien un entier naturel
--
Amicalement.
Rene Mages ( GnuPG_key 1024D/2CC455D9 )
http://sites.google.com/site/logiciellibre/pharo

Reply | Threaded
Open this post in threaded view
|

Re: Nombre de chiffres d'un entier naturel

Rene Paul Mages (ramix)
Le 25 février 2011 06:40, Benoit St-Jean <[hidden email]> a écrit :
> René, est-ce que tu essaies de trouver le nombre de chiffres d'un entier
> très très gros, par exemple d'un nombre avec des millions de chiffres (comme
> pour certains projets de projecteuler.net) ?

Chers Smalltalkers,

Je suis resté vraiment très raisonnable Benoit, de sorte qu'un
résultat comme celui-ci me suffit amplement :

1000 factorial numberOfDigits        ->  2568

Pour être très franc je n'en reviens toujours pas : dans la seconde
qui a suivi le clic sur
"print it" le résultat est apparu sur mon NetBook (à moins de 300 euros).
Mes premiers pas en Fortran ont été effectués sur un IBM 1130 dans les
années 1970 :

 http://www.mines.inpl-nancy.fr/~tisseran/cours/FORTRAN/ibm1130.gif

Vous comprenez encore mieux le choc :-)
--
Amicalement.
Rene Mages ( GnuPG_key 1024D/2CC455D9 )
http://sites.google.com/site/logiciellibre/pharo