2016-11-22 34 views
1

与えられたすべての可能な順列や組み合わせを取得し、私は二つの場所を想定している:これらの場所の-,- .Eachは、最大制限があります。このような3first place has max limit72nd place has max limitとして。最小値と最大数

私はtotalmaxlimitであり、他はtotalminlimitある他の2つの数値を持っています。

私は私は2つの可能なすべての順列がある場所と三箇所の合計は3に等しいより大きく、6

Example: 

3 0 
3 1 
2 0 
2 1 
2 4 

Also, 

2 6 will be wrong result because sum is greater than totalmaxlimit. 
4 2 is also wrong as first place has max limit of 3. 
に等しい未満であるような組み合わせの上に充填することができるコードを記述する
Ex; totalmaxlimit = 6 
    totalminlimit = 3 

どの言語のコードも問題ありません。前もって感謝します。

+1

最初の試みとして、あなたは鉛筆と紙で座って、サンプル値のカップルのためのソリューションを動作するはずです。ヒント:最初の数値を行に、2番目の数値を列としてテーブルに描画し、解の形状を観察します。 – biziclop

答えて

0

者がそれを仮定する:

1)場所は、A、B 2座標によって与えられる)あなたはtotalMin(m)およびtotalMax(M) 3を有する)規則はA、B、ということですA + Bは> = m、< = M である必要があります。4)値の量は、式Mmで与えられます。 (例えば、M = 10、m = 0の場合、有効な値は10個となる)。

あなたは式P = Nを使用して順列を得ることができます! /(n-k)!ここで、Nは値の数、kは有効な数値です。

したがって、例えば、M = 0、M = 6の場合:

順列=(0,6)、(1,5)、(2,4)、等...

基本的には、(X_n、X_M)の和をとります。ここで、nが大きくなるとMは減少します。 M = M - N

私はこれが今の役に立てば幸い、しかし、あなたが好きなら、私はより「profissional」は、式を提供することができます。私はそれがより簡単になると思うので、言語はPythonになる可能性があります。しかし、まずアルゴリズムを取得し、それをコードに渡す必要があります。

は、ここでは、コードです:

def permutations(min, max): 
# init variables 
m = min 
M = max 
results = [] 

# main loop 
for i in range(min, max): 
    for j in range(min, max): 
     if ((i + j) >= min and (i+j) <= max): 
      results.append([i, j]) 

print(results) 
+0

私に擬似コードを提供できます – Jagrati

+0

確かに、私はPythonでそれをコード化できますが、私は現在働いているので、それをテストすることはできません。私に秒を与えてください –

+0

ありがとう、それは大丈夫でしょう。 – Jagrati

関連する問題