I will show you java code for shuffling order of elements in array randomly.
Only one thing you should notice is generating random is quite sensitive problem in a precise sense.
I use java Random class which is provided by JDK. However if you need to use more proper randomness, you may implement class for generate random number sequence yourself.
Anyway, the code is below.
Only one thing you should notice is generating random is quite sensitive problem in a precise sense.
I use java Random class which is provided by JDK. However if you need to use more proper randomness, you may implement class for generate random number sequence yourself.
Anyway, the code is below.
package com.dukesoftware.utils.math; import java.util.Random; public class Shuffler { private final Random random; public Shuffler(Random random) { this.random = random; } public void shuffle(int[] a) { for (int i = a.length - 1; i > 0; i--) { int j = random.nextInt(i + 1); // 0 <= j <= i int swap = a[i]; a[i] = a[j]; a[j] = swap; } } public void shuffle(double[] a) { for (int i = a.length - 1; i > 0; i--) { int j = random.nextInt(i + 1); // 0 <= j <= i double swap = a[i]; a[i] = a[j]; a[j] = swap; } } public <T>void shuffle(T[] a) { for (int i = a.length - 1; i > 0; i--) { int j = random.nextInt(i + 1); // 0 <= j <= i T swap = a[i]; a[i] = a[j]; a[j] = swap; } } }
コメント