はっきり言ってパソコンじゃ無理ですね。
検索範囲を半分にすればいいとかそういうレベルじゃない。
>>232 そうそう、Σの計算方法ってスッカリ忘れてるんですけど
9to6だといくつになりますか?
>>234→( ゚д゚) さん
おおぅ、ステキ!
パラメタの説明忘れてましたね。次で。
7000万超えて未だ出ない。
8から9で4桁上がってるから10to6は10億の桁ですね。
取りあえず根本的な解決方法見つけないと逝けませんね。
バラ買いVBAのパラメタ設定方法です。
下記のパラメタのみ設定します。
Xto6 = 8 ' エントリー数を入力 Xto6 の X
CP = 4 ' 走査するバラ買いパターンの本数
この二つは説明不要でしょう
CP_C = 3 ' バラ買い本数前半の終わり値
既存のバラ買いパターンを見ると、左の列は1が2/3から4/3ほど
並んだ後2以降が残りを埋めています。
そこで1を含んだ行と2以降の行で作業を分けます。
8to6は4本である事が知られているので 6マスx4=24個
バラ買いパターンの数字の入るマスは24マスです。
1−8までの数字が入るので 24/8=3
数字一つ当たり3っパターンに含まれる計算です。
この値を設定します。
10to6なら14パターンなので14x6=84 84/10=8.4 だから
8か9を設定します。 ボクは1の数は少ない方が良いと思うので
8を設定しています。
次へ
MULTI_C = 21 ' マルチ本数前半の終わり値
これはXto6の全パターンを表示させた時の1を含む行数を設定します。
Skima = 1 ' 各チェックポイント(CP)の次の位置間隔
走査するポイント同志の間隔を設定します。
Xto6のXの値が大きくなるとバラ買いパターンのそれぞれの
間隔も大きくなるようなので、この値を大きくすることで走査回数を
短縮します。広げすぎるとパターンを見つけ損なうでしょう。
P12345X = 6 ' 先頭のエントリーが含む数
走査ポイントの一本目の移動範囲です。
これを越えたら終了。
1,2,3,4,5,6を一本目にした場合8to6なら
1,2,3,4,5,7
1,2,3,4,5,8
1,2,3,4,6,7
1,2,3,4,6,8
を包含するので5を設定します。
まぁこの値にぶつかる前にヒットするでしょう。
この方法を越えたバラ買いパターンがあるかもしれませんが
現状10to6さえ、このプログラムでは対応できなそうなので
あまり気にしないでください。
Dim MULTIptn(924, 6) As Integer ' (マルチ本数, 6)
Dim MATRIX(924, 924) As Integer ' (マルチ本数,マルチ本数)
Dim C_ptn(924) As Integer ' (マルチ本数)
Dim P_CP(46) As Integer ' (CPの値)
目的のXto6に対応したマルチパターンの数とCP値を設定します。
今やってた10to6のP_CP()の値見たら
前半と後半で分割しているうちの前半の値は
一つも上がっていなかった。w
一晩中掛けて10to6でこの有様じゃ使えないですね、
このプログラム。 参考程度にしてください。
本物ではないですが、力技でバラ買いパターン
作ることは出来ますね。
当然本数は既知の値より増えるでしょうが。
それで済ませるか、金払うか・・・
>>232 X=8 最小本数4で 24,157
X=9 最小本数7で 4,968,747,691 かな
Excelで計算中に=COMBIN(COMBIN(9,6),1)が83なんてなったから怪しいけど
全検索で出そうとすると計算量がこんな感覚で増えていくわけですね
効率の良い手抜き検索など、ほかの方法考えないと・・・
240 :
3900万円の名無しさん:04/08/11 11:57 ID:fSAqr62B
119氏も手抜き検索の手法で9to6を7本、10to6を15本(今は14本らしいですが)
で編み出したわけですからね。とりあえず有望な方法かと思われます。
手抜きとはつまり見込みの無い走査をしないということでしょうが、
何を持って「見込みがない」と判断させるかがポイントですね。
おまいら理系でしか?文系の漏れには何を言ってるのかさっぱりわからん。
やっぱおまいさん達は天才。
242 :
3900万円の名無しさん:04/08/11 12:55 ID:Zu+Ptk5Y
Xto6
とかの買い方は、ハマレば、4等2本 5等7本とか、
おいしい当たり方をするけど、
一つ一つの当選確率が上がるわけでは無いのね。
だから、あたらない時はたくさん買っても5等すら当たらない。
無駄が多いんだよ。
むしろ、同じ数字を2回使わないようにして全ての数字を網羅する。
たった7〜8口の購入で済むんだ。
>>242 バラ買いは当選確率を上げる術じゃない。
予想が当たった時のリターンを大きくする術。
>>242 確率を上げるためではなく、出来る限り
落とさないで購入口数を減らす手段かな?
>>230Doubleは浮動少数点数型ですので表現できる範囲は広いですが計算は遅いそうです。
もし格納するデータが整数でしたら(必要な桁数にもよりますが)
IntegerやLongが良いと思われます。
(以下はVBAのHELPから)
整数型 (Integer) 2 バイト -32,768 〜 32,767
長整数型 (Long) 4 バイト -2,147,483,648 〜 2,147,483,647
単精度浮動小数点数型 (Single) 4 バイト
-3.402823E38 〜 -1.401298E-45 (負の値)。1.401298E-45 〜 3.402823E38 (正の値)。
倍精度浮動小数点数型 (Double) 8 バイト
-1.79769313486231E308 〜 -4.94065645841247E-324 (負の値)。
4.94065645841247E-324 〜 1.79769313486232E308 (正の値)。
バリアント型 (Variant) (数値) 16 バイト
(VB.NETは少々異なります。)
>>245 Doubleが浮動小数点数型なのは今日本を調べて知りました。
そういやCでもそうでしたっけ。遠い記憶が・・・
簡易バラ買いパターン作ってみました。
X 既知の数 フリー版
8 4 4
9 7 9
10 14 19
11 22 33
12 46 68
13 81 114
14 127 191
15 193 291
16 282 453
17 506 647
使えそうですか?
18to6以降はVBAではメモリーオーバーで作成できません。
これ以上作っても実用に耐えない気もする・・・
ちなみに
>>222はこういうことですね。以下ご参考まで。
1.ソースファイルを別名で保存する。(本物を壊さないように)
2.それをテキストエディタ(何でも良い)で開く。
3.半角スペースを全角スペースに全(一括)置換※。
(前角スペースが使われていないことが前堤)
4.それを貼り付ける(と見映えが少し良くなる)。
Sub sortValues()
For i = 0 To 5
For j = i To 6
If MyArray(j) < MyArray(i) Then
tmp_val = MyArray(j)
MyArray(j) = MyArray(i)
MyArray(i) = tmp_val
End If
Next j
Next i
End Sub
5.欲しい人はコピぺして全角スペースを半角に全(一括)置換(自分でインデントを調える必要がない)。
※インデントがタブなら1タブあたり全角スペース4個程度で全(一括)置換。
(これは簡易なエディタだと厳しいかも)
>>246 9to6とか10to6の手軽な本数のやつがそこんじょそこらの
フリーウェアに負けてるようじゃダメかと。。。。
もっともよく知られていている簡易バラ買い作成法は、
01 02 03 04 05 06から順に数字が5つ重複してるやつを
マルチパターンからどんどん削除していく方法。
ほとんどのフリーウェアはこれでやってる。
>>248 あらっ負けてるの?! やってること同じなんだけど。
ていうか、フリーウェア在るんだ。
にょ〜らの見たけど
8to6 = 28通り (5,600円) → 4通り (800円)
9to6 = 84通り (16,800円) → 8通り (1,600円)
10to6 = 210通り (42,000円) → 18通り (3,600円)
11to6 = 462通り (92,400円) → 34通り (6,800円)
12to6 = 924通り (184,800円) → 68通り (13,600円)
11to6 は勝ってるし、12to6はタメ張ってるから
良い勝負だと思うけどなぁ。。
モンテカルロ解析でこのくらい、最小まではなかなか行きませんね
12to6,3等
CLGHIB,GLIFBA,CGKFBL,CFDHAJ,FBHALK,ECLGAJ,AFIKLC,BCLDAJ,JCHKGD,ICKJLH,JKAELH
DBLGEH,BFIELH,BIDKCF,FBAHDG,DEFICL,HLFDJB,GJKBEL,AGKEFD,BGCEAD,DCIBHA,HIGJKF
AKGELI,BJADIE,ACLGKD,LFDBEK,JIHGAB,LDGKJF,CEBDJF,HEFDAL,LFKECJ,KEDJCI,ECJHBI
BIJLAK,KADIBG,JABFKC,JGAILD,KGFEHC,IJCGAF,KEHLDC,GEJLIH,HECIFA,JFHCGL,BIGKEF
EHIBKD,FBECAL,KBHAEG,DGFIHE,GHDKIL,JIGBDC,DAFKIJ,KFJHEB,FJBEAG,EGDAJH,JAIHFL
KIBAEC,HGCKAI,ICFJLB,BAJDHK
59本
>>253 有難く頂戴します。
でもなんでこれ、グチャグチャなんですか?
Excelで整理するから良いけど。
255 :
253:04/08/12 01:07 ID:I/4hQfF4
乱数で番号を生成、貯めている番号と比べ5個未満の一致数なら貯める を繰り返し、
何回かやったら全検索補完、を繰り返すといったアルゴリズムになってます。
普通はモンテカルロ(風)解析はこのような局面では向かないと思います。(軽く自己矛盾してみる)
で、乱数で生成した後、ソートしてないのでそうなってます。
>>255 nagirco氏の43to6 5等保証のプログラムと同様な考え方かな
>>251 ソフトを解凍してみたが
1等保証=全通り
だった。
バラ買いと書きつつ全買いという詐欺
モンテカルロを整列しました。
>>253さん
モンテカルロ(風)解析方法解るようでしたら、
プログラム組める位の解説をお願いできますか?
フリーで最小のもの作りたいので。
或いは他のパターンは既にありますか?
A B C D E G A C D F H J B C D E F J B E G J K L
A B C D H I A C D G K L B C D F I K C D E F I L
A B C D J L A C E F H I B C D G I J C D E H K L
A B C E F L A C E G J L B C E H I J C D E I J K
A B C E I K A C F G I J B C F G K L C D G H J K
A B C F J K A C F I K L B C F I J L C E F G H K
A B D E I J A C G H I K B C G H I L C E F J K L
A B D F G H A D E F G K B D E F K L C F G H J L
A B D G I K A D E F H L B D E G H L C H I J K L
A B D H J K A D E G H J B D E H I K D E F G H I
A B E F G J A D F I J K B D F H J L D F G J K L
A B E G H K A D G I J L B E F G I K D G H I K L
A B F G I L A E G I K L B E F H I L E G H I J L
A B F H K L A E H J K L B E F H J K F G H I J K
A B G H I J A F H I J L
A B I J K L
A,B,C,D,E,G A,C,D,F,H,J B,C,D,E,F,J B,E,G,J,K,L
A,B,C,D,H,I A,C,D,G,K,L B,C,D,F,I,K C,D,E,F,I,L
A,B,C,D,J,L A,C,E,F,H,I B,C,D,G,I,J C,D,E,H,K,L
A,B,C,E,F,L A,C,E,G,J,L B,C,E,H,I,J C,D,E,I,J,K
A,B,C,E,I,K A,C,F,G,I,J B,C,F,G,K,L C,D,G,H,J,K
A,B,C,F,J,K A,C,F,I,K,L B,C,F,I,J,L C,E,F,G,H,K
A,B,D,E,I,J A,C,G,H,I,K B,C,G,H,I,L C,E,F,J,K,L
A,B,D,F,G,H A,D,E,F,G,K B,D,E,F,K,L C,F,G,H,J,L
A,B,D,G,I,K A,D,E,F,H,L B,D,E,G,H,L C,H,I,J,K,L
A,B,D,H,J,K A,D,E,G,H,J B,D,E,H,I,K D,E,F,G,H,I
A,B,E,F,G,J A,D,F,I,J,K B,D,F,H,J,L D,F,G,J,K,L
A,B,E,G,H,K A,D,G,I,J,L B,E,F,G,I,K D,G,H,I,K,L
A,B,F,G,I,L A,E,G,I,K,L B,E,F,H,I,L E,G,H,I,J,L
A,B,F,H,K,L A,E,H,J,K,L B,E,F,H,J,K F,G,H,I,J,K
A,B,G,H,I,J A,F,H,I,J,L
A,B,I,J,K,L
261 :
3900万円の名無しさん:04/08/12 11:14 ID:fuKYJJ0J
フィルターの方はどうなったんですか?
262 :
253:04/08/12 11:33 ID:0S3fqz7o
>>257 たぶん同じような事をしているのだと思います
>>259 Xto6 3等 の時
1. 乱数を使って1本生成、1つめの「貯めデータ」にする
2. 乱数を使って1本生成
3. 全「貯めデータ」と比較、5個未満の一致の時、「貯めデータ」に追加
4. 「2.」からn回繰り返す
5. XC6通り(数字X個全買)のデータで「3.」と同じ事をして足りない部分を補完
6. 以前より少ない本数だったとき「貯めデータ」出力
7. 「1.」から繰り返してより少ない本数を探る
乱数を使っているので当然、再現性は無いです
>>262 ありがとうございます。
へー、「保障」をカオスから求めるんだ!
明日にでも作ってみようかな
で、取りあえずフリーのバラ買いパターン作成コード晒します。
Option Explicit
Sub LOTO6_BARAKAIPATTERN_CREATE_FREE_VERSION()
' LOTO6 Macro バラ買い理論パターン作成 フリー版!!
Dim StartP As Long
Dim PStart As Long
Dim MULTIno As Long
Dim Xto6 As Long
Dim KAI As Integer
Dim KAISU As Integer
Dim I As Long
Dim J As Long
Dim K As Long
Dim L As Long
Dim M As Long
Dim N As Long
Dim Z As Integer
Dim OUT As Integer
Dim MULTIptn(12376, 6) As Integer ' (マルチ本数, 6)
Dim MATRIX(12376, 12376) As Integer ' (マルチ本数,マルチ本数)
Dim CHOOSE(12376, 6) As Integer ' (マルチ本数)
Dim COUNT As Long
Dim BARACNT As Integer
Xto6 = 17
MULTIno = Xto6 * (Xto6 - 1) * (Xto6 - 2) * (Xto6 - 3) * (Xto6 - 4) * (Xto6 - 5) / 6 / 5 / 4 / 3 / 2
KAISU = Xto6
I = 6: J = 5: K = 4: L = 3: M = 2: N = 1
Workbooks.Add.Activate
Cells.Select
Selection.ColumnWidth = 3
With Selection
.HorizontalAlignment = xlCenter
End With
Range("A1:A2").Select
With Selection
.HorizontalAlignment = xlGeneral
End With
Columns("A:A").ColumnWidth = 15.63
Cells(1, 1) = "バラ買い理論 パターン作成"
Cells(2, 1) = "マルチパターン作成中"
Range("A4").Select
COUNT = 0
Do Until COUNT > MULTIno - 1
COUNT = COUNT + 1
MULTIptn(COUNT, 1) = CInt(N): MULTIptn(COUNT, 2) = CInt(M)
MULTIptn(COUNT, 3) = CInt(L): MULTIptn(COUNT, 4) = CInt(K)
MULTIptn(COUNT, 5) = CInt(J): MULTIptn(COUNT, 6) = CInt(I)
I = I + 1
If I > Xto6 Then
J = J + 1: I = J + 1
If J > Xto6 - 1 Then
K = K + 1: J = K + 1: I = J + 1
If K > Xto6 - 2 Then
L = L + 1: K = L + 1: J = K + 1: I = J + 1
If L > Xto6 - 3 Then
M = M + 1: L = M + 1: K = L + 1: J = K + 1: I = J + 1
If M > Xto6 - 4 Then
N = N + 1: M = N + 1: L = M + 1: K = L + 1: J = K + 1: I = J + 1
End If
End If
End If
End If
End If
Loop
' マルチパターン表示 22to6 以降は65536行を超える
'GoTo SKIP1
For I = 1 To MULTIno
For J = 1 To 6
Cells(7 + I, 9 + J).Value = MULTIptn(I, J)
Next J
Next I
SKIP1:
' マトリクス作成
Cells(2, 1) = "マトリクス作成中"
For COUNT = 1 To MULTIno
Cells(3, 1) = COUNT
For COUNT100 = 1 To MULTIno
M = 0
For I = 1 To 6
For J = 1 To 6
If MULTIptn(COUNT, I) = MULTIptn(COUNT100, J) Then
M = M + 1
End If
Next J
Next I
If M >= 5 Then
MATRIX(COUNT, COUNT100) = 1
End If
Next COUNT100
Next COUNT
' マトリクス表示 11to6以上はExcelの列が足りない
GoTo SKIP2
For I = 1 To MULTIno
For J = 1 To MULTIno
Cells(7 + I, 16 + J) = MATRIX(I, J)
Next J
Next I
Range("J8:O217").Select
Selection.Copy
Range("Q1").Select
Selection.PasteSpecial Paste:=xlAll, Operation:=xlNone, SkipBlanks:=False _
, Transpose:=True
Application.CutCopyMode = False
Range("A4").Select
SKIP2:
Cells(2, 1) = "バラ買いパターン走査中"
OUT = 0
COUNT = 0 ' パターン処理回数
For KAI = 1 To KAISU
StartP = KAI ' 走査開始位置
PStart = MULTIno - KAI + 1
まだ続く・・・
268 :
nanasi:04/08/13 03:07 ID:pNQUH+2B
18to6四等保証、ついにロトセミと同じ56本で組めました。
感動して泣いたよまじで。(つд`)
たかがデータ如きで1600円も取るなんてなんてガメツイんだ
と思ってたけど、考えを改めました。ロトセミはすごいっす。
でも三等保証の方はだいぶ甘々みたいなんでね。
こちらは容赦なく超えさせて貰います(。-_-。)ノ
Do While 1
COUNT = COUNT + 1
Cells(3, 1).Value = COUNT
For I = StartP To MULTIno ' 選択パターン移動
If MULTIptn(I, 0) = 0 Then
StartP = I
Exit For
End If
Next I
If I >= MULTIno Then
Exit Do
End If
CHOOSE(StartP, 0) = 1
For I = 1 To 6
CHOOSE(StartP, I) = MULTIptn(StartP, I) ' バラ買いパターンコピー
Next I
For I = 1 To MULTIno
If MATRIX(I, StartP) = 1 Then
MULTIptn(I, 0) = 99
End If
Next I
'GoTo SKIP3
For I = PStart To 1 Step -1
If MULTIptn(I, 0) = 0 Then
PStart = I
Exit For
End If
Next I
If I <= 1 Then
Exit Do
End If
CHOOSE(PStart, 0) = 1
For I = 1 To 6
CHOOSE(PStart, I) = MULTIptn(PStart, I) ' バラ買いパターンコピー 逆ポイント探し
Next I
For I = PStart To 1 Step -1
If MATRIX(I, PStart) = 1 Then
MULTIptn(I, 0) = 99
End If
Next I
SKIP3:
Loop
' バラ買いパターン表示
BARACNT = 0
For I = 1 To MULTIno
If CHOOSE(I, 0) = 1 Then
For J = 1 To 6
Cells(OUT + 8, J + 1) = CHOOSE(I, J)
Next J
OUT = OUT + 1
BARACNT = BARACNT + 1
End If
Next I
Cells(OUT + 7, 1) = BARACNT
OUT = OUT + 1
For I = 1 To MULTIno ' データクリア
MULTIptn(I, 0) = 0
CHOOSE(I, 0) = 0
For J = 1 To 6
CHOOSE(I, J) = 0
Next J
Next I
Next KAI
Range("A4") = "END JOB"
End Sub
終了。。。
>>269 > でも三等保証の方はだいぶ甘々みたいなんでね。
> こちらは容赦なく超えさせて貰います(。-_-。)ノ
越えて良いからフリーにしようよ
>越えて良いからフリーにしようよ
貧乏人はシネ
モンテカルロ解析で18to6が912本を
出したけど現実意味ないね。
13to6以降は4等保障のパターンで逝くかな。。
>>273 すでに費用が発生してるから無理ですね。
自宅のPCでやるとCPUが焼けそうなので、深夜に漫画喫茶に籠もって検証してます。
あと印刷機能つくるためにプリンタも買わなきゃいけないし。
>>276 そうですか、もう投資してるんですね。
じゃぁオレはモンテカルロでnanasiさんをチョッとだけドキドキさせようかなw
18to6、今903表示してます。
そうだよ、キーとなるパターンとモンテ組み合わせたらモット逝ける。。
>>277 18to6三等保証ならフリー版のCQPでも756本ですよ・・・
>>278 β版ならこのスレの人だけフリーにしてくれ('A`)・・・
281 :
nanasi:04/08/14 01:34 ID:f8SpZgdj
>>280 一応、CQPがフリーウェアという位置づけなんですがね。
フィルターにかける素材としてはあれくらいで十分なんじゃないでしょうか。
あ、でもちょっとコードをいじるだけでだいぶ本数減らせる事に気付いたんで、
シェアウェア版が一段落ついたら改良に着手します。
シェアウェア版は削減機能以外はCQPと基本的に同じですからβ版というものは無いですねぇ。
漏れも、研究再開するかな・・・