はじめに
ウマも馬もやらんけど笠松競馬場 12/30(木) 第3レースに絶対勝ちたい…!
せや!人気順にかけたら必ず勝てるんちゃうか???
なにをするの
人気順にウェイトがかかるようにランダムで3連単を選ぶ。
みんな重たいのが好き。
python
import csv
import random
import numpy as np
# List形式で格納
tmpUmaList = list()
with open('./TEST_UMA.csv', encoding = 'shift_jis', newline='') as f:
reader = csv.reader(f)
for row in reader:
tmpUmaList.append(row)
# ヘッダ削除
umaList = np.delete(tmpUmaList, 0, 0).tolist()
# 行数カウント
umaCount = len(umaList)
print(str(umaCount)+'頭立て')
# Weightを付与(総数-人気、weightは必ず1以上なので+1)
for n in umaList:
weight = umaCount-int(n[2])+1
n.append(str(weight))
# weightで昇順ソート
sortedUmaList = sorted(umaList, reverse = True,key=lambda x:x[3])
# getWeight
ninkiWeight = []
for n in sortedUmaList:
ninkiWeight.append(float(n[3]))
# getNo&辞書登録
umaNo = []
umaTachi = {}
for n in sortedUmaList:
umaNo.append(n[0])
tempUma = {n[0]:n[1]}
umaTachi.update(tempUma)
# result
result = []
choice1 = random.choices(umaNo,ninkiWeight,k = 1 )
while True:
choice2= random.choices(umaNo,ninkiWeight,k = 1 )
if choice1 != choice2:
break
while True:
choice3 = random.choices(umaNo,ninkiWeight,k = 1 )
if choice1 != choice3 and choice2 != choice3:
break
result = choice1 + choice2 + choice3
print(f'{result[0]}-{result[1]}-{result[2]}')
print(f'{umaTachi[result[0]]}-{umaTachi[result[1]]}-{umaTachi[result[2]]}')
データリスト
番号 | 名前 | 人気 |
---|---|---|
1 | 矢澤にこ | 1 |
7 | 西木野真姫 | 3 |
3 | 小泉 花陽 | 2 |
8 | 東條 希 | 5 |
9 | 星空 凛 | 9 |
2 | 園田 海未 | 7 |
6 | 南 ことり | 4 |
4 | 絢瀬 絵里 | 6 |
5 | 高坂 穂乃果 | 8 |
csvで保存する。
実行結果
$ python3 yazawa.py
9頭立て
7-3-1
西木野真姫-小泉 花陽-矢澤にこ
ほんとうに
ウェイトかかってるんか???
# 計測
sample = random.choices(umaNo,ninkiWeight,k = 1000 )
n=1
while n<=9:
print(n,':',sample.count(str(n)))
n+=1
jikkou
1 : 191
2 : 56
3 : 197
4 : 94
5 : 47
6 : 129
7 : 157
8 : 101
9 : 28
かかっとるやんパンダだかパンツとかで棒グラフ出すの面倒だからいいや。
これから
詳しく知らんけど”人気”以外にもオッズとか馬場状態??とかからウェイトの解像度上げていけば当たる確率は上がるはず(儲かるとは言っていない)
なんでも重いやつが勝つんやな。
TODO
CSVじゃなくてどっかからデータを自動で抜いてくる。