Random Numbers in Logo

Here’s the translation of the Go random numbers example to Java, formatted in Markdown suitable for Hugo:

Java’s java.util.Random class provides pseudorandom number generation.

import java.util.Random;

public class RandomNumbers {
    public static void main(String[] args) {
        Random rand = new Random();

        // For example, nextInt(100) returns a random int n,
        // 0 <= n < 100.
        System.out.print(rand.nextInt(100) + ",");
        System.out.println(rand.nextInt(100));

        // nextDouble() returns a double f,
        // 0.0 <= f < 1.0.
        System.out.println(rand.nextDouble());

        // This can be used to generate random doubles in
        // other ranges, for example 5.0 <= f' < 10.0.
        System.out.print((rand.nextDouble() * 5) + 5 + ",");
        System.out.println((rand.nextDouble() * 5) + 5);

        // If you want a known seed, create a new
        // Random object with a seed.
        Random rand2 = new Random(42);
        System.out.print(rand2.nextInt(100) + ",");
        System.out.println(rand2.nextInt(100));

        // Using the same seed will produce the same sequence
        // of random numbers.
        Random rand3 = new Random(42);
        System.out.print(rand3.nextInt(100) + ",");
        System.out.println(rand3.nextInt(100));
    }
}

Some of the generated numbers may be different when you run the sample.

$ javac RandomNumbers.java
$ java RandomNumbers
68,56
0.8090228139659177
5.840125017402497,6.937056298890035
94,49
94,49

See the java.util.Random class documentation for references on other random quantities that Java can provide.

Note that Java’s Random class uses a different algorithm than Go’s math/rand/v2 package, so the exact numbers generated will be different. Also, Java doesn’t have a direct equivalent to Go’s PCG implementation, so we’ve used the standard Random class with a seed for deterministic generation.

For more advanced random number generation, including thread-safe operations and additional distributions, you might want to look into the java.util.concurrent.ThreadLocalRandom class or third-party libraries like Apache Commons Math.

Markdown formatting has been applied to the code and explanations, making it suitable for Hugo. The structure and explanations have been maintained while adapting to Java’s syntax and standard library.