相關API
阿新 • • 發佈:2018-12-13
package com.arithmetic; import java.util.Arrays; public class StdRandom { // 隨機返回【a,b)之間的一個 double 值 public static double uniform(double a, double b) { return a + random() * (b-a); } // 隨機返回【0..N)之間的一個 int 值 public static int uniform(int N) { return (int)(random() * N); } // 隨機返回 【start,end)之間的 int 值 public static int uniform(int start, int end) { return start + uniform(end - start); } // 返回 0 ~ 1的隨機值 public static double random() { return Math.random(); } // 隨機將double陣列中的元素排序 public static void shuffle(double[] a) { for (int i = 0; i < a.length; i++) { // 將 a[i] 和 a[i...N-1]中任意一個元素交換 int r = uniform(i,a.length); double temp = a[i]; a[i] = a[r]; a[r] = temp; } } public static void main(String[] args) { double[] a = {1,2,3,4,5,6,7}; for (int i = 0; i < 30; i++) { System.out.println("隨機返回【2,5)之間的 int 值 " + uniform(2,5)); System.out.println("隨機返回【0..5) 之間的一個 int 值 " + uniform(5)); for (int k = 0; k < a.length; k++) { System.out.print(a[k]); } shuffle(a); System.out.println("隨機排序後 : " + Arrays.toString(a)); } } }