iT邦幫忙

2024 iThome 鐵人賽

DAY 20
0
佛心分享-IT 人自學之術

自學Java物件導向程式語言系列 第 20

Java程式-用java計算隨機機率及製作抽牌遊戲

  • 分享至 

  • xImage
  •  

隨機機率

  • 隨機機率的分布是指每次實驗的可能結果,其發生機率都是相同的分布狀況。
    程式範例試做:
import java.util.*;
class Alex1004_1
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("請輸入測試的數量:");
        int num=sc.nextInt();
        int stat[]=new int[10];
        for(int i=0; i<num; i++)
            stat[(int)(Math.random()*10)]++;
        
        System.out.println("編號\t數量\t比率");
        for(int i=0; i<stat.length; i++)
            System.out.println(i+"\t"+stat[i]+"\t"+(float)stat[i]/num*100+"%");
    }
}

執行程式結果:

請輸入測試的數量:10000
編號 數量 比率
0  1058  10.58%
1  1004  10.04%
2  979  9.79%
3  993  9.93%
4  998  9.98%
5  1014  10.14%
6  963  9.63%
7  1026  10.26%
8  1025  10.25%
9  948  9.48%

抽牌遊戲

  • 將亂數運用在撲克牌中也是很常見的,透過使用者指定數量,隨機抽取撲克牌卡片。
    程式範例試做:
import java.util.*;
class Alex1004_2 {
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        System.out.println("請輸入抽牌數");
        int num=sc.nextInt();
        String[] suits{"♣","♦","♥","♠"};
        String[] result=new String[num];
        int cnt=0, A, B;
        String card;
        while( cnt<num ){
            A=(int)(Math.random()*13)+1;
            B=(int)(Math.random()*4);
            card = suits[B] + Integer.toString(A);
        if( ! Arrays.asList(result).contains(card) ){
            result[cnt] = card;
            cnt++;
        }
    }
    Arrays.sort(result);
    for(int i=0; i<result.length; i++)
        System.out.println( result[i] + "\t" );
    }
}

程式執行結果:

請輸入抽牌張數:5
♣11 ♦8 ♥1 ♥2 ♣11 ♦3

上一篇
Java程式-亂數使用&猜數字
下一篇
Java程式-改進抽卡遊戲&從java學習演算法
系列文
自學Java物件導向程式語言30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言