2014-08-27 28 views
0

我試圖弄清楚什麼是數學公式,將代表以下情況的所有更多鈔票組合:如何找到與2個屬性3個的對象,將總結一共有3種不同性質

  1. 我有X個顏色,Y球,每個都有2種顏色。
  2. 我通過以下方法計算Y球的數量: Y = X! /(X - 2)! * 2!

現在,我的任務是找到,將在下面的表格3個球的組合總金額:

  1. 第一和第二球有一種顏色是類似的。
  2. 第一個和第二個球的第二個顏色不能相同。
  3. 的三分球有2個其他球的顏色(不是它們之間共享)

我寫了一個代碼,這將有助於我模擬一下我在尋找,但未能扭轉將其設計爲可幫助我計算數字結果而不模擬它的公式。

的代碼:

var Colors = ['red', 'blue', 'green', 'yellow', 'white' , 'black']; 

C = Colors.length; 
document.write("Balls: " + Colors.length + '<br>'); 
document.write(Colors.join() + '<br>'); 

BallsCount = (sFact(C)/(sFact(C-2) * 2)); 
document.write("BallsCount: " + BallsCount + '<br>'); 

var Balls = new Array(); 
for (i=0, c=1; i<Colors.length;i++) 
    for (x=i+1; x<Colors.length; c++, x++) 
    { 
    document.write(c + ": " + Colors[i] + '/' + Colors[x] + '<br>'); 
    Balls[c-1] = Colors[i] + '/' + Colors[x]; 
    } 

//Triangles = BallsCount/3; 
TrianglesCount = (sFact(BallsCount)/(sFact(BallsCount-3) * sFact(3))); 
document.write("Triangles: " + TrianglesCount + '<br>'); 

var Triangles = new Array(); 
for (i=0, c=1; i<Balls.length;i++) 
    for (y=i+1; y<Balls.length; y++) 
    for (x=y+1; x<Balls.length; x++) 
    { 
     if (Balls[i].split('/')[0] == Balls[y].split('/')[0] && (Balls[i].split('/')[1] + '/' + Balls[y].split('/')[1] == Balls[x] || Balls[y].split('/')[1] + '/' + Balls[i].split('/')[1] == Balls[x])) 
     { 
     document.write(c + ": " + Balls[i] + " - " + Balls[y] + " - " + Balls[x] + '<br>'); 
     Triangles[c] = Balls[i] + " - " + Balls[y] + " - " + Balls[x]; 
     c++; 
     } 
    } 

function sFact(num) 
{ 
    var rval=1; 
    for (var i = 2; i <= num; i++) 
     rval = rval * i; 
    return rval; 
} 

結果:

Colors: 6 

red,blue,green,yellow,white,black 

Balls: 15 

1. red/blue 
2. red/green 
3. red/yellow 
4. red/white 
5. red/black 
6. blue/green 
7. blue/yellow 
8. blue/white 
9. blue/black 
10. green/yellow 
11. green/white 
12. green/black 
13. yellow/white 
14. yellow/black 
15. white/black 

Triangles: 

1. red/blue - red/green - blue/green 
2. red/blue - red/yellow - blue/yellow 
3. red/blue - red/white - blue/white 
4. red/blue - red/black - blue/black 
5. red/green - red/yellow - green/yellow 
6. red/green - red/white - green/white 
7. red/green - red/black - green/black 
8. red/yellow - red/white - yellow/white 
9. red/yellow - red/black - yellow/black 
10. red/white - red/black - white/black 
11. blue/green - blue/yellow - green/yellow 
12. blue/green - blue/white - green/white 
13. blue/green - blue/black - green/black 
14. blue/yellow - blue/white - yellow/white 
15. blue/yellow - blue/black - yellow/black 
16. blue/white - blue/black - white/black 
17. green/yellow - green/white - yellow/white 
18. green/yellow - green/black - yellow/black 
19. green/white - green/black - white/black 
20. yellow/white - yellow/black - white/black 

什麼。將計算的組合的總量的式?

另一個問題是,例如,如果Alice有一組如上所述的球,並且Bob有一組類似球具有Alice所具有的一些顏色以及她所不具備的一些顏色(反之亦然),所以對於N個參與者,我如何計算來自所有參與者的3個組合的最大數量? (每位參賽者允許超過1球)

謝謝。

+2

三角形總數是顏色三元組的數量= X! /(3!*(X-3)!) – 2014-08-27 18:02:16

回答

1

正如Egor所說:X!/ [(X-r)!(r!)] 其中順序不重要且不允許重複。 「三角形」的情況是r = 3,6!/(3!3!)= 20

相關問題