Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.java.programmer > #33932

Re: Random permutations [was Re: Libraries for sysadmins?]

From Brixomatic <brixomatic@yahoo.com>
Newsgroups comp.lang.java.programmer
Subject Re: Random permutations [was Re: Libraries for sysadmins?]
Date 2016-03-05 19:20 +0100
Organization Aioe.org NNTP Server
Message-ID <MPG.314541d29a607e059896ad@news.aioe.org> (permalink)
References (3 earlier) <dju62bFf4ouU1@mid.individual.net> <concise-20160304210431@ram.dialup.fu-berlin.de> <nbd7c3$3jp$1@news.albasani.net> <djvt76Fs5qfU2@mid.individual.net> <nbeunm$drn$1@news.albasani.net>

Show all headers | View raw


In article <nbeunm$drn$1@news.albasani.net>, Sebastian 
(news@seyweiler.dyndns.org) says...
> 
> Am 05.03.2016 12:11, schrieb Robert Klemme:
> > On 05.03.2016 00:56, Sebastian wrote:
> >
> >> This is good if you need about as many elements in the result as are in
> >> the range. But if the range is large and you need only a few elements,
> >> it may be better to generate numbers (without duplicates), like this:
> >>
> >> new Random().ints(1, 50).distinct().limit(6)
> >
> > Are you sure this has the same probability characteristics as picking
> > six random items from a list of 49?
> >
> > Cheers
> >
> >      robert
> 
> I think yes, because Random#ints() is evenly distributed. And as I said, 
> this is useful when the range is much larger than the sample size. The 
> farther they diverge, the smaller the probability of a collision would 
> become in the first place.

Interestingly the Javadoc is pretty specific on this detail:

See:
> https://docs.oracle.com/javase/8/docs/api/java/util/Random.html#ints-
int-int- <

"A pseudorandom int value is generated as if it's the result of calling 
the following method with the origin and bound: 
 
 int nextInt(int origin, int bound) {
   int n = bound - origin;
   if (n > 0) {
     return nextInt(n) + origin;
   }
   else {  // range not representable as int
     int r;
     do {
       r = nextInt();
     } while (r < origin || r >= bound);
     return r;
   }
 }
"
The else case should come as a surprise for a lot of people.

Kind regards,
Wanja



-- 
..Alesi's problem was that the back of the car was jumping up and down 
dangerously - and I can assure you from having been teammate to 
Jean Alesi and knowing what kind of cars that he can pull up with, 
when Jean Alesi says that a car is dangerous - it is. [Jonathan Palmer]

Back to comp.lang.java.programmer | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread


Thread

Libraries for sysadmins? Elena <egarrulo@gmail.com> - 2016-03-04 03:33 -0800
  Re: Libraries for sysadmins? Martin Gregorie <martin@address-in-sig.invalid> - 2016-03-04 11:44 +0000
    Re: Libraries for sysadmins? egarrulo <egarrulo@gmail.com> - 2016-03-04 12:56 +0100
  Re: Libraries for sysadmins? Eric Sosman <esosman@comcast-dot-net.invalid> - 2016-03-04 07:43 -0500
  Re: Libraries for sysadmins? Robert Klemme <shortcutter@googlemail.com> - 2016-03-04 18:06 +0100
    Re: Libraries for sysadmins? egarrulo <egarrulo@gmail.com> - 2016-03-04 20:30 +0100
      Random permutations [was Re: Libraries for sysadmins?] Sebastian <news@seyweiler.dyndns.org> - 2016-03-05 00:56 +0100
        Re: Random permutations [was Re: Libraries for sysadmins?] Robert Klemme <shortcutter@googlemail.com> - 2016-03-05 12:11 +0100
          Re: Random permutations [was Re: Libraries for sysadmins?] Sebastian <news@seyweiler.dyndns.org> - 2016-03-05 16:41 +0100
            Re: Random permutations [was Re: Libraries for sysadmins?] Brixomatic <brixomatic@yahoo.com> - 2016-03-05 19:20 +0100
              Re: Random permutations [was Re: Libraries for sysadmins?] Andreas Leitgeb <avl@logic.at> - 2016-03-05 18:46 +0000
                Re: Random permutations [was Re: Libraries for sysadmins?] Brixomatic <brixomatic@yahoo.com> - 2016-03-15 19:22 +0100
                Re: Random permutations [was Re: Libraries for sysadmins?] Andreas Leitgeb <avl@logic.at> - 2016-03-15 22:30 +0000
            Re: Random permutations [was Re: Libraries for sysadmins?] Andreas Leitgeb <avl@logic.at> - 2016-03-05 18:30 +0000
              Re: Random permutations [was Re: Libraries for sysadmins?] Eric Sosman <esosman@comcast-dot-net.invalid> - 2016-03-05 13:46 -0500
                Re: Random permutations [was Re: Libraries for sysadmins?] Andreas Leitgeb <avl@logic.at> - 2016-03-05 19:40 +0000
      Re: Libraries for sysadmins? Robert Klemme <shortcutter@googlemail.com> - 2016-03-05 12:10 +0100
    Re: Libraries for sysadmins? Arne Vajhøj <arne@vajhoej.dk> - 2016-03-04 21:42 -0500
  Re: Libraries for sysadmins? Arne Vajhøj <arne@vajhoej.dk> - 2016-03-04 21:48 -0500

csiph-web