java從數組中隨機取出幾個數並且不重複

package org.mybatis.model;

import java.util.Arrays;
import java.util.Scanner;

public class LotteryDrawing {
	public static void main(String[] args) {

		Scanner scanner = new Scanner(System.in);

		// 篩選隨機數組大小
		int k = scanner.nextInt();

		// 待篩選數組最大上標
		int n = scanner.nextInt();

		int[] numbers = new int[n];

		for (int i = 0; i < numbers.length; i++) {
			numbers[i] = i + 1;
		}

		int[] results = new int[k];

		for (int i = 0; i < results.length; i++) {

			// 取出一個隨機數
			int r = (int) (Math.random() * n);

			results[i] = numbers[r];

			// 排除已經取過的值
			numbers[r] = numbers[n - 1];

			n--;
		}

		Arrays.sort(results);

		for (int i : results) {
			System.out.print(i + " ");
		}

		scanner.close();
	}
}

發佈了40 篇原創文章 · 獲贊 14 · 訪問量 24萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章