データ管理へ戻る | サンプル集目次へ戻る

実行結果
Loto6サンプルソース
チャンスは毎週。好きな数字を選びましょう。気合を入れてEnterキーを叩けば、609万6454分の1の確立で、億万長者への道が現れます!?
Loto6.java
/**
 * 愛のJava256本ノック for Java 5.0
 * Javaサンプルソース ver0.2C "Loto6"
 * Loto6.java 「配列をシャッフルする」
 *
 * 2005/09/23 制作:安永ノリカズ
 *
 * 【コンパイル&実行方法】
 *     >javac Loto6.java
 *     >java Loto6
 * 【キーワード】
 *     配列(array), 並べ替え(sort), 乱数(random)
 * 【試してみよう】
 *     結果を、過去の当選番号と比較する。(Loto6.csvを参照のこと)
 *     ミニロトや、ナンバーズの予想に対応する。
 *     出現した数字で実際に購入してみる。
 */
import java.lang.Math;
import java.lang.String;
import java.lang.System;
import java.util.Arrays;

public class Loto6 {

    public static void main(String[] A00) {
        final int L00 = 43;
        final int L01 = 6;
        int[] L02 = new int[L00];

        for (int L03 = 0; L03 < L00; L03++) {
            L02[L03] = L03 + 1;
        }

        int[] L04 = M00(L02, L01);
        Arrays.sort(L04);

        System.out.printf("%d個の数字から%d個の数字を選ぶと...%n", L00, L01);
        for (int L05 : L04) {
            System.out.printf("%02d ", L05);
        }
    }

    static int[] M00(int[] A00, int A01) {
        for (int L00 = 0; L00 < A00.length; L00++) {
            int L01 = (int)(Math.random() * A00.length);
            int L02 = A00[L01];
            A00[L01] = A00[L00];
            A00[L00] = L02;
        }

        int[] L03 = new int[A01];
        for (int L00 = 0; L00 < A01; L00++) {
            L03[L00] = A00[L00];
        }
        
        return L03;
    }
}

/* ■ クラスの外でちょっと一言 ■
43個の数字から6つの数字の組み合わせを選ぶ「ロト6」をテーマに作ってみま
した。配列の操作をしている部分が、一見分かりづらいかもしれませんね。言葉
で説明すれば、「43個の数字をシャッフルして、先頭の6個を別の配列にコ
ピー。それを小さい順に並び替え」となります。メソッドの引数と戻り値に注意
して、データの流れを追いかけてください。

同一フォルダにある"Loto6.csv"には、223回までの当選番号が入ってます。最新
のデータは、サイト(みずほ銀行など)やフリーのツール(@宝くじNewsなど)
を利用して入手してください。

実は、人間って、無作為に数字を選択するのが苦手なんですよね。個人個人で
は、ばらばらな数字を選択していても、それが何万、何十万人と集まれば、どう
しても、文化的、社会的な傾向が出てしまうものです。そいう観点から言えば、
コンピュータによるランダムな選択は、高額配当を狙うときの参考になるかもし
れませんね。
 */
↑ 先頭へ戻る

安永ノリカズのゲーム制作&Javaサンプル集 / Java初心者用サンプル集『愛のJava256本ノック』