Я решил, что то, чего я хочу добиться, это создать набор параметров питания, и кажется, что itertools может помочь мне в этом, но мне нужно применить ряд правил, чтобы ограничить результаты.
Я хочу объединить валюты, но они представлены в валютных парах, что означает, что не все возможные комбинации или последовательности возможны.
Пример набора валют:
BTC, ETH, USD, EOS, XRP, IOT
Соответствующие валютные пары:
ETH-BTC, ETH-USD, EOS-ETH, IOT-ETH, BTC-USD, EOS-BTC, XRP-BTC, IOT-BTC, EOS-USD, XRP-USD, IOT-USD
Правила:
Смежные валюты в последовательности должны быть действительными парами, а первая и последняя валюты в последовательности также должны быть действительными парами. Порядок пар не имеет значения (BTC-USD ≡ USD-BTC). Примеры допустимых и недействительных последовательностей:
- Действительный: {BTC, USD, EOS, ETH} является допустимой последовательностью, потому что BTC-USD, EOS-USD, EOS-ETH и ETH-BTC являются действительными парами
- Неверно: {BTC, USD, IOT, XRP} не является допустимой последовательностью, поскольку IOT-XRP не является допустимой парой
- Неверно: {EOS, BTC, USD, IOT} не является допустимой последовательностью, поскольку первая и последняя валюты (EOS-IOT) не образуют правильную пару.
Кроме того, хотя блок питания технически представляет собой комбинации любой длины, минимальная длина последовательности должна составлять три, например {ETH, BTC, USD}, без максимальной длины.
Заранее спасибо! Я превращаю свой мозг в кашу от этого.