見出し画像

【AI実績公開】プログラミング言語Pythonを使った数字選択宝くじ当選数字抽出条件

✅プログラミングPythonの機械学習にて予想数字抽出
✅AI予想対象:抽選後の21時頃解析して記事公開
✅AI天才予想リンク
天才少年
天才少女
天才ドクター
天才プログラマー
🎯ナンバーズ3&4(月~金)🎯ミニロト(火)🎯ロト6(月木)🎯ロト7(金)

🎯過去3か月の当選実績(公開)

🎊24年04月★購入者様おめでとうございます

🎊第6458回04月30日 (火) ナンバーズ4🎊ボックス当選32,700円✨
🎊第6454回04月24日 (水) ナンバーズ3🎊ストレート当選95,700円✨
🎊第1279回04月16日 (火)ミニロト🎊4等当選9,700円✨
🎊第1886回04月11日 (木)ロト6🎊4等当選6,700円✨
🎊第6441回04月05日 (金) ナンバーズ4🎊ボックス当選93,900円✨
🎊第6437回04月01日 (月) ナンバーズ4🎊ストレート当選422,300円✨

🎊24年03月★購入者様おめでとうございます

🎊第6433回03月26日 (火) ナンバーズ3🎊ボックス当選13,900円✨
🎊第6431回03月22日 (金) ナンバーズ3🎊ボックス当選15,200円✨
🎊第6427回03月18日 (月) ナンバーズ4🎊ボックス当選58,600円✨
🎊第6318回03月05日 (火) ナンバーズ3🎊ボックス当選49,100円✨
🎊第6416回03月01日 (金) ナンバーズ4🎊ボックス当選51,800円✨

🎊24年02月★購入者様おめでとうございます

🎊第6411回02月23日 (金) ナンバーズ4🎊ボックス当選78,100円✨
🎊第6405回02月16日 (金) ナンバーズ4🎊ボックス当選28,100円✨
🎊第6401回02月09日 (金) ナンバーズ4🎊ボックス当選43,300円✨
🎊第6398回02月06日 (火) ナンバーズ3🎊ストレート当選70,100円✨
🎊第6397回02月05日 (月) ナンバーズ3🎊ボックス当選14,800円✨
🎊第1866回02月01日 (木)ロト6🎊4等当選8,600円✨

▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼

✅ナンバーズのサンプルプログラム公開

過去のフルデータを使って、ナンバーズ3&4の抽選結果に基づく解析データと、抽出設定について解説しています。これらを設定することでより効率よく当選数字を絞り込むことが出来ます。

# メイン関数
def run():
  # ファイル読み込み
  df = pd.read_csv("./input/Numbers3.csv", header=1, encoding="shift_jis")

  # データフレーム化
  num_cols = ['ストレート口数', 'ストレート金額', 'ボックス口数', 'ボックス金額', 'セットストレート口数',
              'セットストレート金額', 'セットボックス口数', 'セットボックス金額', 'ミニ口数', 'ミニ金額']
  for col in num_cols:
      df[col] = df[col].str.replace(",", "")
  df[num_cols] = df[num_cols].astype(float)

  # 当選番号を文字列化
  df['当せん番号_文字列'] = df['当せん番号'].astype(str)

  # 当選番号を0埋め
  df['当せん番号_文字列'] = df['当せん番号_文字列'].str.zfill(3)

  # 当選番号の各桁を抽出
  df['当せん番号_百'] = df['当せん番号_文字列'].str[0].astype(int)
  df['当せん番号_十'] = df['当せん番号_文字列'].str[1].astype(int)
  df['当せん番号_一'] = df['当せん番号_文字列'].str[2].astype(int)

  # 偶数奇数判定
  df['当せん番号_偶奇判定'] = df['当せん番号'].apply(lambda x: even_odd_check(x))
  df['当せん番号_百_偶奇判定'] = df['当せん番号_百'].apply(lambda x: even_odd_check(x))
  df['当せん番号_十_偶奇判定'] = df['当せん番号_十'].apply(lambda x: even_odd_check(x))
  df['当せん番号_一_偶奇判定'] = df['当せん番号_一'].apply(lambda x: even_odd_check(x))

  # 3桁の数字の合計
  df['当せん番号_3桁の合計'] = df['当せん番号_百'] + df['当せん番号_十'] + df['当せん番号_一']

  # 逆順にした行を繰り返し処理
  _list = []
  reverse_df = df.iloc[::-1].reset_index(drop=True)
  # for文内で使う変数の準備
  digits = ['百', '十', '一']
  past_numbers = [0, 0, 0]
  continuous_times = [0, 0, 0]
  for i, row in tqdm(reverse_df.iterrows(), total=len(df)):
      _dict = {}

      # 各桁の偶数/奇数の組み合わせを判定
      if (row['当せん番号_百_偶奇判定'] == "odd") & (row['当せん番号_十_偶奇判定'] == "odd") & (
              row['当せん番号_一_偶奇判定'] == "odd"):
          # 全て奇数
          _dict['当せん番号_各桁偶奇判定'] = 'all_odd'
      elif (row['当せん番号_百_偶奇判定'] == "even") & (row['当せん番号_十_偶奇判定'] == "even") & (
              row['当せん番号_一_偶奇判定'] == "even"):
          # 全て偶数
          _dict['当せん番号_各桁偶奇判定'] = 'all_even'
      else:
          # 奇数と偶数が混在
          _dict['当せん番号_各桁偶奇判定'] = 'mix_odd_even'

      # 各桁が連続で同一かを判定
      for j, digit in enumerate(digits):
          if i != 0:  # 初回は実行しない
              if past_numbers[j] == row[f'当せん番号_{digit}']:
                  # 前回の数値と一致する場合、連続出現回数をインクリメント
                  continuous_times[j] += 1
                  _dict[f'連続出現回数_{digit}'] = continuous_times[j]
              else:
                  # 前回の数値と一致しない場合、連続出現回数をリセット
                  continuous_times[j] = 0
                  _dict[f'連続出現回数_{digit}'] = continuous_times[j]

              # 次の行で使用するために現在の数値を格納
              past_numbers[j] = row[f'当せん番号_{digit}']

          else:
              # 初期値を設定
              _dict[f'連続出現回数_{digit}'] = continuous_times[j]

              # 次の行で使用するために現在の数値を格納
              past_numbers[j] = row[f'当せん番号_{digit}']

      # データフレームの1行にあたる辞書をリストに追加
      _list.append(_dict)

  # リストをデータフレーム化して、元のデータフレームと連結
  _df = pd.DataFrame(_list)
  concat_df = pd.concat([reverse_df, _df], axis=1)

  # データフレームの順序を元に戻して保存
  result_df = concat_df.iloc[::-1].reset_index(drop=True)
  result_df.to_csv('output/result.csv', index=False, encoding="shift-jis")


if __name__ == '__main__':
  run()

🔵ナンバーズ3の奇数偶数の振り分け

🔵ナンバーズ3の奇数偶数の振り分け

●奇数のみ・・・約13%
●偶数のみ・・・約13%
●奇数偶数の混在・・・74%
➡全体の74%程度を占める奇数偶数混在を設定しています

🔴ナンバーズ4の奇数偶数の振り分け

●奇数のみ・・・約6%
●偶数のみ・・・約6%
●奇数偶数の混在・・・88%
➡全体の88%程度を占める奇数偶数混在を設定しています

🔵ナンバーズ3の合計数字

●合計0~3・・・1%以下
●合計4~7・・・3%以下
●合計8~9・・・4%以上
●合計10~18・・・6%以上
●合計19~20・・・4%以上

●合計21~24・・・3%以下
●合計25~27・・・1%以下
➡全体の92%程度を占める8~20を設定しています

🔴ナンバーズ4の合計数字

●合計0~5・・・1%以下
●合計6~10・・・3%以下
●合計11~15・・・4%以上
●合計16~20・・・6%以上
●合計21~25・・・4%以上

●合計26~30・・・3%以下
●合計31~36・・・1%以下
➡全体の92%程度を占める11~25を設定しています

🔵ナンバーズ3の引っ張り数字

★前回抽選数字からの引っ張り数字個数
●0個・・・40%以上
●1個・・・40%以上

●2個・・・15%以下
●3個・・・5%以下
➡全体の80%程度を占める0~1個を設定しています

🔴ナンバーズ4の引っ張り数字

★前回抽選数字からの引っ張り数字個数
●0個・・・20%以上
●1個・・・35%以上
●2個・・・30%以上

●3個・・・10%以下
●4個・・・5%以下
➡全体の85%程度を占める0~2個を設定しています

🔵ナンバーズ3の飛び数字

★前々回抽選数字からの飛び数字個数
●0個・・・40%以上
●1個・・・40%以上

●2個・・・15%以下
●3個・・・5%以下
➡全体の80%程度を占める0~1個を設定しています。

🔴ナンバーズ4の飛び数字

★前々回抽選数字からの飛び数字個数
●0個・・・30%以上
●1個・・・40%以上
●2個・・・20%以上

●3個・・・5%以下
●4個・・・5%以下
➡全体の90%程度を占める0~2個を設定しています。

🔵ナンバーズ3の連続出現数字

<百の位>
●2回連続・・・10%以下
●3回連続以上・・1%以下
<十の位>
●2回連続・・・10%以下
●3回連続以上・・1%以下
<一の位>
●2回連続・・・10%以下
●3回連続以上・・1%以下
➡全体の90%以上を占める連続しないと設定しています。

🔴ナンバーズ4の連続出現数字

<千の位>
●2回連続・・・10%以下
●3回連続以上・・1%以下
<百の位>
●2回連続・・・10%以下
●3回連続以上・・1%以下
<十の位>
●2回連続・・・10%以下
●3回連続以上・・1%以下
<一の位>
●2回連続・・・10%以下
●3回連続以上・・1%以下
➡全体の90%以上を占める連続しないと設定しています。

🔵ナンバーズ3の連続出現数字

<百の位>
5連続以下・・・20%以下
6連続以上・・・5%以下
<十の位>
5連続以下・・・20%以下
6連続以上・・・5%以下
<一の位>
5連続以下・・・20%以下
6連続以上・・・5%以下
➡全体の95%以上を占める6連続以上未出現はないと設定しています。

🔴ナンバーズ4の未出現数字

<千の位>
5連続以下・・・20%以下
6連続以上・・・5%以下
<百の位>
5連続以下・・・20%以下
6連続以上・・・5%以下
<十の位>
5連続以下・・・20%以下
6連続以上・・・5%以下
<一の位>
5連続以下・・・20%以下
6連続以上・・・5%以下
➡全体の95%以上を占める6連続以上未出現はないと設定しています。

🔵ナンバーズ3の除外条件設定

★全て同じ数字・・・ 1%以下
★2つが同じ数字・・・・20%以下
★123などの連番数字・・・2%以下
★前回抽選数字・・・1%以下

🔴ナンバーズ4の除外条件設定

★全て同じ数字・・・ 0.1%以下
★3つが同じ数字・・・・3%以下
★1234などの連番数字・・・0.1%以下
★前回抽選数字・・・1%以下

🚨当サイトの当選数字抽出につきましては当選を保証するものではありませんので自己責任でご利用いただけますようお願いします。


#副業
#投資
#ギャンブル
#予想
#転職
#ネットビジネス
#宝くじ
#AI
#人工知能
#数字選択式宝くじ
#お金を稼ぐ
#ナンバーズ3
#ナンバーズ3ミニ
#ナンバーズ4
#NUMBERS3
#NUMBERS4
#Python
#ナンバーズ3予想
#ナンバーズ予想
#ロト6
#ロト6予想
#ロト7
#ロト7予想
#ミニロト
#ミニロト予想

この記事が気に入ったらサポートをしてみませんか?