Пересмотрено через несколько лет: -
Через некоторое время я снова вошел в свою учетную запись SE, заметил этот вопрос и понял, что написанное мною даже не ответило вам: -
Вот код Python
import itertools
def explode(value, unique):
legs = [ leg.split(',') for leg in value.split('/') ]
if unique:
return [ tuple(ea) for ea in itertools.product(*legs) if len(ea) == len(set(ea)) ]
else:
return [ tuple(ea) for ea in itertools.product(*legs) ]
вызов разнесения работает на том основании, что каждая нога отделяется /, а каждая позиция -,
для расчета trifecta вы можете рассчитать его следующим образом: -
result = explode('1,2,3/2,3,4/3,4,5', True)
stake = 2.0
cost = stake * len(result)
print cost
для суперфекта
result = explode('1,2,3/2,4,5/1,3,6,9/2,3,7,9', True)
stake = 2.0
cost = stake * len(result)
print cost
для pick4 (установить уникальное значение на False)
result = explode('1,2,3/2,4,5/3,9/2,3,4', False)
stake = 2.0
cost = stake * len(result)
print cost
Надеюсь, это поможет