Dismiss Notice
Join Physics Forums Today!
The friendliest, high quality science and math community on the planet! Everyone who loves science is here!

Given a random number from 0-3, return a random number from 0-6

  1. Sep 18, 2011 #1
    This is actually for a program, but the challenging part is really the math. So you're given a number 0, 1, 2, or 3 and the probability of getting each is the same. Now given this random number, I need to output a number 0, 1, 2, 3, 4, 5, or 6 but the probability of getting each number needs to be the same.

    Can anyone point me in the right direction?
  2. jcsd
  3. Sep 18, 2011 #2
    You need to specify how the outcome of the first round will affect the second round. Otherwise you just have two independent outcomes a,b. Then the probability of any pair is 1/28.
    Last edited: Sep 18, 2011
  4. Sep 18, 2011 #3
    Well the relationship is that after being given this random number from 0-3, you need to perform mathematical operations (functions such as floor and ceiling are allowed) to arrive at a new number from 0-6. Now if you performed these same steps for the random input number many times, you would end up with the numbers from 0-6 an approximately equal number of times (probability of getting each number is the same). Does that clarify the problem?
  5. Sep 18, 2011 #4
    I thought division might be involved, resulting in non-integers.

    What's the difference? I thought if something was random, the probability for each result would be the same (uniform).

    I'll try it out, see if I can come up with anything.

    If anyone else has any other ideas, please share them.

    EDIT: Seems like the person above me deleted their post, making me seem crazy.
    Last edited: Sep 18, 2011
  6. Sep 18, 2011 #5
    You can randomize 0,1,2,3 twice to randomly express any number from 0 through 15 in base 4. Keep doing that till you get a number in the desired range. This procedure is not guaranteed to terminate, but each of 0 through 6 have the same probability of being chosen. Just a thought.
  7. Sep 18, 2011 #6
    Suppose x is a random integer from 0-3.

    Suppose the program performs something such as floor(f(x)). Where f is a function by the mathematical definition of a function.

    We may get from this, a maximum of four unique outcomes, which is what we started with (four values of x). But we may actually end up with less.
Share this great discussion with others via Reddit, Google+, Twitter, or Facebook