목록 문제
도전
문제
반복을 피하기 위해 이전에 고정 장치와 양 팀이 선택되지 않았는지 확인하지만 결과는 처음 6주 동안 각각 10경기, 다음 9주 동안 8경기, 다음 3주 동안 10경기, 4경기로 표시됩니다. 지난 2주 동안 총 320개의 픽스처만 선정되었습니다.
관찰
수년에 걸쳐 나는 해결책 없이 java, python, php, javascript 및 c에 이르기까지 다양한 언어로 다양한 구현을 시도했습니다.
그런 다음 픽스쳐를 섞기로 결정했고 선택한 픽스쳐는 10개의 다른 실행에서 360에서 369 범위에 있었습니다. 마음의 변화는 왜?
이것은 목록 문제입니까, 아니면 단순히 더 좋은 방법이 있습니까?
teams = ["ARS", "AVL", "BRE", "BOU", "BRI",
"BUR", "CHE", "CRY", "FUL",
"EVE", "LEE", "LEI", "LIV", "MCI", "MUN",
"NEW", "TOT", "WHU", "WOL", "WAT"]
#All 380 possible fixtures len(fixtures) prints 380
#Shuffle this to see the change
fixtures = [f"{home} - {away}" for home in teams for away in teams if home != away]
#38 match weeks if 10 matches are played every week. Each team plays only once per week
match_weeks = []
#Fixtures played // no same fixture is to be played twice
#i.e ARS - CHE can appear only once per season, but CHE - ARS only
s_fixtures = []
#Making fixtures for all 38 weeks
for i in range(38):
match_week = [] #should be exactly 10 unique games every week = 20/2
s_teams = [] #teams already selected in the current week // 20 teams every week
for fixture in fixtures:
if len(match_week) == 10: #to save some iterations/time
break
if fixture not in s_fixtures:
home, away = fixture[:3], fixture[6:]
if home not in s_teams and away not in s_teams:
s_teams.extend([home, away]) # add teams to selected list
print(len(s_teams))
match_week.append(fixture)
s_fixtures.append(fixture) #add fixture to selected list
match_weeks.append(match_week)
Reference
이 문제에 관하여(목록 문제), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/jjenus/the-list-problem-38kf텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)