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)
|
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 <[hidden email]> 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
|
In reply to this post by Sven Van Caekenberghe-2
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 <[hidden email]> 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:[hidden email] 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 |
In reply to this post by Julien Delplanque-2
> On 16 Apr 2018, at 12:57, Julien <[hidden email]> 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 <[hidden email]> 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 <[hidden email]> 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/ >> >> > |
In reply to this post by jtuchel
#between:and: is a well known test selector, which is inclusive on both ends.
> On 16 Apr 2018, at 12:59, [hidden email] 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 <[hidden email]> 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:[hidden email] > 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 > > |
In reply to this post by SergeStinckwich
"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) |
In reply to this post by Sven Van Caekenberghe-2
"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) |
Free forum by Nabble | Edit this page |