How does Math.random() generate random numbers beyond it's "native" range?

Phil

I understand that Math.random() by itself generates a random double between 0.0 and 1.0, including 0.0 but excluding 1.0. I also understand that casting to an int truncates everything after the decimal without rounding.

What I don't understand is how something like

System.out.println((int)(Math.random() * 27));

can actually produce a random number from 0 through 26. Since Math.random() by itself only produces 0.0 through 0.9, and 9 * 27 is 24.3, it seems like the greatest int the above code should be able to produce is 24. How does this work?

Through searching for answers to this I have discovered that there are better ways to generate random numbers, but the book I am working through describes this particular method, and I'd like to understand how it works.

rgettman

The range of Math.random() isn't 0.0 through 0.9, it's 0.0 through the greatest possible double less than 1.0, about 0.9999999999999999 or so.

Returns:

a pseudorandom double greater than or equal to 0.0 and less than 1.0.

If you multiply the largest possible result by 27 and truncate it by casting to int, you will get 26.

Collected from the Internet

Please contact [email protected] to delete if infringement.

edited at
0

Comments

0 comments
Login to comment

Related

From Dev

how to generate unique random numbers with a specific range

From Dev

how to generate unique random numbers with a specific range

From Dev

Generate random numbers in specific range

From Dev

Generate a random range of numbers in excel

From Dev

How does Python generate random numbers?

From Dev

How do I generate a random range of numbers within another range?

From Dev

How to generate random numbers in a data.frame with range

From Dev

How to generate random numbers in specyfic range using pareto distribution in Python

From Dev

How to generate random numbers biased towards one value in a range?

From Dev

How to generate random numbers in a very large range via javascript?

From Dev

In python, how to generate a random integer in a range, excluding some numbers in a list?

From Dev

How can I generate a random number from a group of numbers (not a range)

From Dev

How to generate random numbers in a very large range via javascript?

From Dev

How to generate 3 non repeated random numbers from a range?

From Dev

How can I generate a range of random floating point numbers in Julia?

From Dev

Generate a random math Equation using Random numbers and operators in Javascript

From Dev

How to generate random numbers the give fixed results using Math.random

From Dev

How to display a specific range of random numbers in java using Math.random

From Dev

How to generate random seed for random numbers

From Java

Generate 'n' unique random numbers within a range

From Dev

Generate random floats excluding a range of numbers

From Dev

How to generate random numbers in the buffer?

From Dev

How to generate random numbers in sql?

From Dev

Switch() does not work with Math.random() numbers

From Dev

How does matlab generate Gaussian distributed random numbers?

From Dev

How to specify range on math.random?

From Dev

Creating an object of Random class or using Math.random() in order to generate random numbers

From Dev

In Excel, how to generate a row of random numbers between 2 values, where the random value does not repeat in row?

From Dev

How does the distribution of Math.random()*50 + Math.random()*20 compare to Math.random()*70?

Related Related

  1. 1

    how to generate unique random numbers with a specific range

  2. 2

    how to generate unique random numbers with a specific range

  3. 3

    Generate random numbers in specific range

  4. 4

    Generate a random range of numbers in excel

  5. 5

    How does Python generate random numbers?

  6. 6

    How do I generate a random range of numbers within another range?

  7. 7

    How to generate random numbers in a data.frame with range

  8. 8

    How to generate random numbers in specyfic range using pareto distribution in Python

  9. 9

    How to generate random numbers biased towards one value in a range?

  10. 10

    How to generate random numbers in a very large range via javascript?

  11. 11

    In python, how to generate a random integer in a range, excluding some numbers in a list?

  12. 12

    How can I generate a random number from a group of numbers (not a range)

  13. 13

    How to generate random numbers in a very large range via javascript?

  14. 14

    How to generate 3 non repeated random numbers from a range?

  15. 15

    How can I generate a range of random floating point numbers in Julia?

  16. 16

    Generate a random math Equation using Random numbers and operators in Javascript

  17. 17

    How to generate random numbers the give fixed results using Math.random

  18. 18

    How to display a specific range of random numbers in java using Math.random

  19. 19

    How to generate random seed for random numbers

  20. 20

    Generate 'n' unique random numbers within a range

  21. 21

    Generate random floats excluding a range of numbers

  22. 22

    How to generate random numbers in the buffer?

  23. 23

    How to generate random numbers in sql?

  24. 24

    Switch() does not work with Math.random() numbers

  25. 25

    How does matlab generate Gaussian distributed random numbers?

  26. 26

    How to specify range on math.random?

  27. 27

    Creating an object of Random class or using Math.random() in order to generate random numbers

  28. 28

    In Excel, how to generate a row of random numbers between 2 values, where the random value does not repeat in row?

  29. 29

    How does the distribution of Math.random()*50 + Math.random()*20 compare to Math.random()*70?

HotTag

Archive