Ich habe 10 Währungen, die ich analysiere, und ich möchte alle möglichen Kombinationen dieser Währungen in 10% -Schritten finden. Zum Beispiel:Gibt es eine effizientere Möglichkeit, alle Kombinationen von 10 Elementen in 10% -Schritten zu finden?
10% of A, 20% of B...etc
Die Randbedingungen sind wie folgt:
die Gesamtmenge bis zu 100% summieren hat es eine Menge jeder Währung zwischen 0% und 100%, so dass eine Kombination von 100% liegen kann eines gültigen
im Moment ist mein Code sieht wie folgt aus:
for element in itertools.product(*curr_arr):
if round(sum(element),1)==1:
comb_input.append(list(element))
Wo curr_arr ist im wesentlichen ein Array wie folgt:
[0,0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9,1.0]
Dieser Ansatz ist sehr langsam, weil er alle Kombinationen betrachtet und dann diejenigen extrahiert, die sich zu einer Summe addieren. Gibt es eine effizientere Möglichkeit, dies zu tun und meinen Code zu beschleunigen?
Wenn möglich mit Prozent (10, 20, 30, ...) anstelle von Schwimmern (0,1, 0,2, 0,3, ...) arbeiten. Diese Floats summieren sich nicht wirklich auf 1.0: '0.3 + 0.3 + 0.3 + 0.1' ergibt' 0.99999999999999989' – eumiro