Python でフットボール リーグのスケジュール プログラムを設計するためのアイデア
フットボール リーグの競争システムでは、チームはシーズン中にホームとアウェーで 1 回、リーグ内で自分以外のチームと対戦します。これを実現するためにループ アルゴリズムを使用できます。 次に、Python でのフットボールの設計を見てみましょう。リーグスケジュールプログラムのアイデアと簡単な実装例:
毎年、セリエA、ブンデスリーガ、プレミアリーグ、ラ・リーガのメジャーリーグのスケジュールは、ファン必見であるというコードを思い出しました。以前スケジュールを生成するために Python で書いたのですが、これがとても快適です。
このアルゴリズムはスネークリングアルゴリズムと呼ばれます。
つまり、すべてのチームをリング(2列)に配置し、左側を右側にして、最初のチームは動かず、他のチームは時計回りに循環するため、繰り返しはありません。
説明を簡単にするために、a から h までの 8 つのチームがあると仮定します。下図のように円形に配置します。
このように、1回戦の組み合わせは、(a,h)(b,g)(c,f)(d,e)となります。
次のラウンドでは、最初のチーム a は動かず、他のチームは歯車のように時計回りに 1 マス移動します。
このように、2回戦の組み合わせは、(a,b)(c,h)(d,g)(e,f)となります。
歯車はスタート地点に戻るまで滑り続け、各チームは他の 7 チームすべてと対戦します。
千の言葉は一ヤードの価値があります。プレミアリーグを例に挙げてみましょう。
from collections import deque import random def build_schedule(_teamarr): scheduleobj = dict.fromkeys(range(1,20)) fixpos = _teamarr[0] ring = _teamarr[1:] ring = deque(ring) #前半赛程,1-19轮(round) for round in range(1,20): #第1支球队不动,再加上轮转(rotate)的环 teams = [fixpos] + list(ring) #切成2列,左边主队,右边客队 home, away = teams[:len(teams)/2],teams[len(teams)/2:] away = away[::-1] #随机打乱主客队 scheduleobj[round] = [(x,y) if random.random()>=0.5 else (y,x) for x,y in zip(home,away)] ring.rotate(1) #后半赛季对阵跟前半赛季一样,但主客队对调 for round in range(20,39): scheduleobj[round] = [(y,x) for x,y in scheduleobj[round-19]] return scheduleobj if __name__ == '__main__': teamarr = [u'曼联', u'阿斯顿维拉', u'切尔西', u'西汉姆', u'富勒姆', u'热刺', u'利物浦', u'南安普顿', u'埃弗顿', u'诺维奇', u'纽卡斯尔', u'曼城', u'斯托克城', u'桑德兰', u'水晶宫', u'西布罗姆维奇', u'阿森纳', u'赫尔城', u'卡迪夫城', u'斯旺西'] scheduleobj = build_schedule(teamarr) print u'---联赛第1轮---' for h,a in scheduleobj[1]: print u'{}-{}'.format(h,a) print u'---联赛第2轮---' for h,a in scheduleobj[2]: print u'{}-{}'.format(h,a)
Python でフットボール リーグのスケジュール プログラムを設計するアイデアについては、PHP 中国語 Web サイトに注目してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









LinuxターミナルでPythonバージョンを表示する際の許可の問題の解決策PythonターミナルでPythonバージョンを表示しようとするとき、Pythonを入力してください...

PythonのPandasライブラリを使用する場合、異なる構造を持つ2つのデータフレーム間で列全体をコピーする方法は一般的な問題です。 2つのデータがあるとします...

10時間以内にコンピューター初心者プログラミングの基本を教える方法は?コンピューター初心者にプログラミングの知識を教えるのに10時間しかない場合、何を教えることを選びますか...

UvicornはどのようにしてHTTPリクエストを継続的に聞きますか? Uvicornは、ASGIに基づく軽量のWebサーバーです。そのコア機能の1つは、HTTPリクエストを聞いて続行することです...

Pythonでは、文字列を介してオブジェクトを動的に作成し、そのメソッドを呼び出す方法は?これは一般的なプログラミング要件です。特に構成または実行する必要がある場合は...

この記事では、numpy、pandas、matplotlib、scikit-learn、tensorflow、django、flask、and requestsなどの人気のあるPythonライブラリについて説明し、科学的コンピューティング、データ分析、視覚化、機械学習、Web開発、Hの使用について説明します。

fiddlereveryversings for the-middleの測定値を使用するときに検出されないようにする方法
