首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 相關知識

Java AWT 實作雙色球復式投注組合數計算工具

     編輯:Java 相關知識

雙色球復式投注的核心在於計算「從 n 個紅球中選 6 個」與「從 m 個藍球中選 1 個」的組合數乘積。本文提供一個基於 AWT 的桌面小工具,具備紅/藍球號碼選擇、即時試算、結果顯示與重置功能,程式碼精簡易懂,適合初學者參考事件驅動與組合數學邏輯。

介面設計

  • 紅球選單:7~20 顆(List 元件,橙色背景)
  • 藍球選單:1~16 顆(List 元件,藍色背景)
  • 功能按鈕:清除結果
  • 輸出區:TextArea 顯示試算明細

核心演算法

組合數公式:C(n,6) × m,其中 C(n,6) = n! / (6! × (n-6)!)。

long count(int red, int blue) {
    long p = 1, c = 1;
    // 分子:n × (n-1) × ... × (n-5)
    for (int j = red - 5; j <= red; j++) p *= j;
    // 分母:6!
    for (int i = 1; i <= 6; i++) c *= i;
    return (p / c) * blue;  // 總注數
}
// 金額 = 注數 × 2 元

程式以 ItemListener 監聽雙選單變化,即時呼叫 print() 更新畫面。

事件處理流程

  1. 使用者在紅/藍球 List 點選 → 觸發 itemStateChanged → 暫存選值。
  2. 藍球選單變化時呼叫 print(red, blue) 試算並追加至 TextArea。
  3. 「清除」按鈕重置輸出區。
  4. 視窗關閉事件掛載 System.exit(0)。

現代化改良方向

  • 改用 Swing/JavaFX 取得原生外觀與更豐富元件。
  • 加入輸入驗證(如紅球至少 6 個、藍球至少 1 個)。
  • 支援多注號碼匯入/匯出(CSV、Excel)。
  • 引入 BigInteger 處理極大組合數,避免 long 溢位。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved