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など) を利用して入手してください。 実は、人間って、無作為に数字を選択するのが苦手なんですよね。個人個人で は、ばらばらな数字を選択していても、それが何万、何十万人と集まれば、どう しても、文化的、社会的な傾向が出てしまうものです。そいう観点から言えば、 コンピュータによるランダムな選択は、高額配当を狙うときの参考になるかもし れませんね。 */