# Re: A little Friday morning challenge for the group...

 From: Wesley H. Sent on: Friday, January 25, 2013 4:13 PM
```Wow, loving the volume of responses :).

Just one request, it would be helpful to me if people can keep the
subject line consistent, this keeps gmail thread organisation working
and is helpful for my sanity.

Sam,

I am not too worried about efficiency or the distribution of
java.util.Random itself. This is not going to be used in highly
contended code. The solution you provide suffers from some problems,
test it with values like Long.MIN_VALUE and Long.MAX_VALUE as the
parameters and -1 to MAX etc. You will see some strange behaviour.

Cosmin,

I looked at your solution and it looked like it was just mathematical
enough to work, alas... MIN_VALUE and MAX_VALUE provides the same
result on every call, so something is certainly wrong ;).

Jahan,

Try the above types of parameters as well, you may well find that you
have a problem ;).

Stuart,

You might win actually :). The stuff after the BigInteger stuff
(which, *spoiler* is pretty much what I did), looks like it should
have distribution problems. Especially with the way that you do that
'correct' thing and push everything between the bounds. That just
looks to me like you will end up with a disproportionate numbers at
the boundaries but I did a very quick distribution test and this
didn't seem to be happening. I will look a little more tonight. My
solution is a bit different but yours might well be better.... watch
this space :).

Wes

On Fri, Jan 25, 2013 at 10:56 AM, Wesley Hall <[address removed]> wrote:
> Hello folks,
>
> I came across what turned out to be a pretty interesting problem on a
> project of mine last night, and I thought I would share it with you
> guys. I am interested to see if anyone can come up with a better
> solution than I did (highly likely I suspect :)).
>
> Your mission, should you choose to accept it, is to write a method, in
> Java, with the following signature...
>
> public static long generateRandom(long min, long max) {
>    // code here
> }
>
> Such that the method generates a random long value that is between the
> two parameters provided (inclusive). The only restriction on the
> parameters is that max >= min, for brevity you can assume this is
> ensured outside of the method and that you don't need to check inside.
>
> The first person to provide a working solution gets to look like a
> hero... and if you provide a solution that I think is better than the
> one I have, then I will (with your permission), use this version in
> the library that I am about to open source and give you contributor
> credit.
>
> GO....
>
> Wes
```

### London, United Kingdom

Founded Nov 26, 2007

#### Organizers:

Contact

• ##### Our Blog

Read the latest news from the LJC

• ##### RecWorks Ltd

Fixing Tech Recruitment using the Power of Community

• ##### jClarity

Java/JVM Performance Analysis Tools & mentoring for Java related matters

• ##### LJC Aggrity

Our LJC Aggrity site contains blog posts from our members

• ##### LJC Book Club

Our Book club with book reviews from our members

• ##### Devoxx UK

Java Community Conference in collaboration with the LJC, 8-10th June 16

• ##### SkillsMatter

"Host, help organise, promote, film many of our meetings."

• ##### IBM

Build Enterprise-grade apps at start-up speed.

• ##### New Relic

New Relic makes sense of billions of metrics a day in real time.

• ##### Hazelcast

Hazelcast is the leader in operating in-memory computing.

• ##### Java.Net

We are an official Java User Group recognised by Oracle's JUG program

• ##### O'Reilly

40% discount on printed books and 50% on e-books.

• ##### Craft Rebellion

Your choice of fresh craft beer, delivered. For 10% off use ‘LJC'

#### People in this Meetup are also in:

• ##### The London Big-O Meetup

1,097 Big Omegas

• ##### London Scala Users' Group

2,636 Enthusiasts

• ##### Spark London

1,598 Members

• ##### Big Data London

4,379 Data wiz'

2,942 People

• ##### London Software Craftsmanship Community

3,391 Software Crafters