align-toparrow-leftarrow-rightbackbellblockcalendarcamerachatcheckchevron-downchevron-leftchevron-rightchevron-small-downchevron-small-leftchevron-small-rightchevron-small-upchevron-upcircle-with-crosscrosseditfacebookglobegoogleimagesinstagramlocation-pinmagnifying-glassmailmoremuplabelShape 3 + Rectangle 1outlookpersonplusImported LayersImported LayersImported Layersshieldstartwitteryahoo

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.

Some comments for various people:


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.


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 ;).


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


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 :).


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

Our Sponsors

  • 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

  • JRebel

    Free 3 month J-Rebel license.

  • 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:

Sign up

Meetup members, Log in

By clicking "Sign up" or "Sign up using Facebook", you confirm that you accept our Terms of Service & Privacy Policy