Some random musings
Hi Pharoers, some random musings about Random numbers :-) In the context of the CORMAS project: http://cormas.cirad.fr/indexeng.htm I would like to propose an API for manipulating random numbers to users who are not developers but modelers of complex systems. In CORMAS, people need to generate a lot of random numbers for simulation for exemple. For example, you can do: Cormas randomFloatFrom: -4.1 to: 2.5 âAt the moment, there is no Pharo API to generate with a one-liner a random float number between two values for example. You can do this for integers: 10 atRandom to generate an integer between 1 to 10. There is atRandom defined on Interval, so can you say : (2.3 to: 4.5) atRandom but it will not generate a random float numbers between 2.3 and 4.5 but numbers like: 2.3, 3.3 or 4.3. because Interval are considered as a Collection. âAny comments about that ? How we can enhance the situation ?â Any interest to introduce a method to produce random float numbers in an interval in Pharo ? âThank youâ -- Serge Stinckwich UMI UMMISCO 209 (SU/IRD/UY1) "Programs must be written for people to read, and only incidentally for machines to execute."http://www.doesnotunderstand.org/
I think Float randomFrom: -4.1 to: 2.5 or Float randomBetween: -4.1 and: 2.5 would be the most descriptive and compliant to your signature ;-) An interval does not necessarily contain Floats. Going to the class side of Float makes sense because you create a new instance.
On 16 Apr 2018, at 11:51, Serge Stinckwich <serge.stinckwich@gmail.com> wrote:
Hi Pharoers,
some random musings about Random numbers :-)
In the context of the CORMAS project: http://cormas.cirad.fr/indexeng.htm I would like to propose an API for manipulating random numbers to users who are not developers but modelers of complex systems.
In CORMAS, people need to generate a lot of random numbers for simulation for exemple. For example, you can do:
Cormas randomFloatFrom: -4.1 to: 2.5
âAt the moment, there is no Pharo API to generate with a one-liner a random float number between two values for example.
You can do this for integers: 10 atRandom to generate an integer between 1 to 10.
There is atRandom defined on Interval, so can you say : (2.3 to: 4.5) atRandom but it will not generate a random float numbers between 2.3 and 4.5
but numbers like: 2.3, 3.3 or 4.3. because Interval are considered as a Collection.
âAny comments about that ? How we can enhance the situation ?â Any interest to introduce a method to produce random float numbers in an interval in Pharo ?
âThank youâ -- Serge Stinckwich UMI UMMISCO 209 (SU/IRD/UY1) "Programs must be written for people to read, and only incidentally for machines to execute." http://www.doesnotunderstand.org/
Hello, Then this should be added to Integer class as well no? So the API is uniform. Because, if I am not wrong, for now if you want to generate an integer that could be negative you have to use an Interval (-10 to: 10) atRandom Since 10 atRandom In fact generates a Natural number and not an Integer⦠:-) Julien --- Julien Delplanque Doctorant à lâUniversité de Lille 1 http://juliendelplanque.be/phd.html Equipe Rmod, Inria Bâtiment B 40, Avenue Halley 59650 Villeneuve d'Ascq Numéro de téléphone: +333 59 35 86 40
Le 16 avr. 2018 à 12:51, Sven Van Caekenberghe <sven@stfx.eu> a écrit :
I think
Float randomFrom: -4.1 to: 2.5
or
Float randomBetween: -4.1 and: 2.5
would be the most descriptive and compliant to your signature ;-)
An interval does not necessarily contain Floats. Going to the class side of Float makes sense because you create a new instance.
On 16 Apr 2018, at 11:51, Serge Stinckwich <serge.stinckwich@gmail.com> wrote:
Hi Pharoers,
some random musings about Random numbers :-)
In the context of the CORMAS project: http://cormas.cirad.fr/indexeng.htm I would like to propose an API for manipulating random numbers to users who are not developers but modelers of complex systems.
In CORMAS, people need to generate a lot of random numbers for simulation for exemple. For example, you can do:
Cormas randomFloatFrom: -4.1 to: 2.5
âAt the moment, there is no Pharo API to generate with a one-liner a random float number between two values for example.
You can do this for integers: 10 atRandom to generate an integer between 1 to 10.
There is atRandom defined on Interval, so can you say : (2.3 to: 4.5) atRandom but it will not generate a random float numbers between 2.3 and 4.5
but numbers like: 2.3, 3.3 or 4.3. because Interval are considered as a Collection.
âAny comments about that ? How we can enhance the situation ?â Any interest to introduce a method to produce random float numbers in an interval in Pharo ?
âThank youâ -- Serge Stinckwich UMI UMMISCO 209 (SU/IRD/UY1) "Programs must be written for people to read, and only incidentally for machines to execute." http://www.doesnotunderstand.org/
On 16 Apr 2018, at 12:57, Julien <julien.delplanque@inria.fr> wrote:
Hello,
Then this should be added to Integer class as well no?
So the API is uniform.
Probably yes.
Because, if I am not wrong, for now if you want to generate an integer that could be negative you have to use an Interval
(-10 to: 10) atRandom
Since
10 atRandom
In fact generates a Natural number and not an Integer⦠:-)
Indeed
Julien
--- Julien Delplanque Doctorant à lâUniversité de Lille 1 http://juliendelplanque.be/phd.html Equipe Rmod, Inria Bâtiment B 40, Avenue Halley 59650 Villeneuve d'Ascq Numéro de téléphone: +333 59 35 86 40
Le 16 avr. 2018 à 12:51, Sven Van Caekenberghe <sven@stfx.eu> a écrit :
I think
Float randomFrom: -4.1 to: 2.5
or
Float randomBetween: -4.1 and: 2.5
would be the most descriptive and compliant to your signature ;-)
An interval does not necessarily contain Floats. Going to the class side of Float makes sense because you create a new instance.
On 16 Apr 2018, at 11:51, Serge Stinckwich <serge.stinckwich@gmail.com> wrote:
Hi Pharoers,
some random musings about Random numbers :-)
In the context of the CORMAS project: http://cormas.cirad.fr/indexeng.htm I would like to propose an API for manipulating random numbers to users who are not developers but modelers of complex systems.
In CORMAS, people need to generate a lot of random numbers for simulation for exemple. For example, you can do:
Cormas randomFloatFrom: -4.1 to: 2.5
âAt the moment, there is no Pharo API to generate with a one-liner a random float number between two values for example.
You can do this for integers: 10 atRandom to generate an integer between 1 to 10.
There is atRandom defined on Interval, so can you say : (2.3 to: 4.5) atRandom but it will not generate a random float numbers between 2.3 and 4.5
but numbers like: 2.3, 3.3 or 4.3. because Interval are considered as a Collection.
âAny comments about that ? How we can enhance the situation ?â Any interest to introduce a method to produce random float numbers in an interval in Pharo ?
âThank youâ -- Serge Stinckwich UMI UMMISCO 209 (SU/IRD/UY1) "Programs must be written for people to read, and only incidentally for machines to execute." http://www.doesnotunderstand.org/
Sven, Serge, Especially in the case of Floats, I think between:and: is *not* a good name. As always, the question is if between:and: is exclusive or inclusive of the border values... So I think the better name is from:to:. I think this name indicates it includes the border values. Joachim Am 16.04.18 um 12:51 schrieb Sven Van Caekenberghe:
I think
Float randomFrom: -4.1 to: 2.5
or
Float randomBetween: -4.1 and: 2.5
would be the most descriptive and compliant to your signature ;-)
An interval does not necessarily contain Floats. Going to the class side of Float makes sense because you create a new instance.
On 16 Apr 2018, at 11:51, Serge Stinckwich <serge.stinckwich@gmail.com> wrote:
Hi Pharoers,
some random musings about Random numbers :-)
In the context of the CORMAS project: http://cormas.cirad.fr/indexeng.htm I would like to propose an API for manipulating random numbers to users who are not developers but modelers of complex systems.
In CORMAS, people need to generate a lot of random numbers for simulation for exemple. For example, you can do:
Cormas randomFloatFrom: -4.1 to: 2.5
âAt the moment, there is no Pharo API to generate with a one-liner a random float number between two values for example.
You can do this for integers: 10 atRandom to generate an integer between 1 to 10.
There is atRandom defined on Interval, so can you say : (2.3 to: 4.5) atRandom but it will not generate a random float numbers between 2.3 and 4.5
but numbers like: 2.3, 3.3 or 4.3. because Interval are considered as a Collection.
âAny comments about that ? How we can enhance the situation ?â Any interest to introduce a method to produce random float numbers in an interval in Pharo ?
âThank youâ -- Serge Stinckwich UMI UMMISCO 209 (SU/IRD/UY1) "Programs must be written for people to read, and only incidentally for machines to execute." http://www.doesnotunderstand.org/
-- ----------------------------------------------------------------------- Objektfabrik Joachim Tuchel mailto:jtuchel@objektfabrik.de Fliederweg 1Â Â Â Â Â Â Â Â Â Â Â Â Â http://www.objektfabrik.de D-71640 Ludwigsburg http://joachimtuchel.wordpress.com Telefon: +49 7141 56 10 86 0Â Â Â Â Â Fax: +49 7141 56 10 86 1
#between:and: is a well known test selector, which is inclusive on both ends.
On 16 Apr 2018, at 12:59, jtuchel@objektfabrik.de wrote:
Sven, Serge,
Especially in the case of Floats, I think between:and: is *not* a good name. As always, the question is if between:and: is exclusive or inclusive of the border values... So I think the better name is from:to:. I think this name indicates it includes the border values.
Joachim
Am 16.04.18 um 12:51 schrieb Sven Van Caekenberghe:
I think
Float randomFrom: -4.1 to: 2.5
or
Float randomBetween: -4.1 and: 2.5
would be the most descriptive and compliant to your signature ;-)
An interval does not necessarily contain Floats. Going to the class side of Float makes sense because you create a new instance.
On 16 Apr 2018, at 11:51, Serge Stinckwich <serge.stinckwich@gmail.com> wrote:
Hi Pharoers,
some random musings about Random numbers :-)
In the context of the CORMAS project: http://cormas.cirad.fr/indexeng.htm I would like to propose an API for manipulating random numbers to users who are not developers but modelers of complex systems.
In CORMAS, people need to generate a lot of random numbers for simulation for exemple. For example, you can do:
Cormas randomFloatFrom: -4.1 to: 2.5
âAt the moment, there is no Pharo API to generate with a one-liner a random float number between two values for example.
You can do this for integers: 10 atRandom to generate an integer between 1 to 10.
There is atRandom defined on Interval, so can you say : (2.3 to: 4.5) atRandom but it will not generate a random float numbers between 2.3 and 4.5
but numbers like: 2.3, 3.3 or 4.3. because Interval are considered as a Collection.
âAny comments about that ? How we can enhance the situation ?â Any interest to introduce a method to produce random float numbers in an interval in Pharo ?
âThank youâ -- Serge Stinckwich UMI UMMISCO 209 (SU/IRD/UY1) "Programs must be written for people to read, and only incidentally for machines to execute." http://www.doesnotunderstand.org/
-- ----------------------------------------------------------------------- Objektfabrik Joachim Tuchel mailto:jtuchel@objektfabrik.de Fliederweg 1 http://www.objektfabrik.de D-71640 Ludwigsburg http://joachimtuchel.wordpress.com Telefon: +49 7141 56 10 86 0 Fax: +49 7141 56 10 86 1
"Float randomBetween: -4.1 and: 2.5 would be the most descriptive and compliant to your signature ;-)" I also prefer #randomBetween:and: . "Going to the class side of Float makes sense because you create a new instance." But I'm not so sure about putting this on the class side. In fact, right now #atRandom is on the instance side and it's been that way since the beginning. It would be akward to have one method of generating random numbers on the class side and all others on the instance side. And moving everything on the class side would break tons of code and legacy code. Besides, random numbers have always been seen and/or dealt with as streams : the intent was to get "the next one" in the stream, not create "a new instance" ----------------- Benoît St-Jean Yahoo! Messenger: bstjean Twitter: @BenLeChialeux Pinterest: benoitstjean Instagram: Chef_Benito IRC: lamneth Blogue: endormitoire.wordpress.com "A standpoint is an intellectual horizon of radius zero". (A. Einstein)
"Any interest to introduce a method to produce random float numbers in an interval in Pharo ?" Yes, that would definitely be useful !!!! And it would not only be useful for Float but for all numbers. Would save us from the usual "#truncated and +1" trick we always have to write!! ----------------- Benoît St-Jean Yahoo! Messenger: bstjean Twitter: @BenLeChialeux Pinterest: benoitstjean Instagram: Chef_Benito IRC: lamneth Blogue: endormitoire.wordpress.com "A standpoint is an intellectual horizon of radius zero". (A. Einstein)
participants (5)
-
Benoit St-Jean -
jtuchel@objektfabrik.de -
Julien -
Serge Stinckwich -
Sven Van Caekenberghe