私は分析している10通貨を持っており、これらの通貨の可能な組み合わせをすべて10%ずつ増やしたいと考えています。10個のアイテムのすべての組み合わせを10%増分で見つけるより効率的な方法はありますか?
合計が0%と100%との間の各通貨の任意の量で存在することができる100% に合計しなければ、100%のように組み合わせた:たとえば次のよう
10% of A, 20% of B...etc
制約があります
次のようにcurr_arrは、本質的に配列されfor element in itertools.product(*curr_arr):
if round(sum(element),1)==1:
comb_input.append(list(element))
:Aの私のコードは次のようになります。現時点では、有効な
です
[0,0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9,1.0]
このアプローチは、すべての組み合わせを見て1に合ったものを抽出するため、非常に遅いです。これを実行してコードを高速化するより効率的な方法はありますか?
浮動小数点数(0.1、0.2、0.3、...)ではなく、パーセンテージ(10,20,30、...)で作業してください。これらの浮動小数点数は実際には1.0になりません: '0.3 + 0.3 + 0.3 + 0.1'は' 0.99999999999999989'を返します – eumiro