有一堆數字,求出各個組合的和值

時間 2021-09-20 06:48:05

1樓:萬年金剛鑽

用規劃求解應該可以得到答案,不過,可能會計算很長時間

做了一個規劃求解,得到答案:

2樓:匿名使用者

這幾種組合最接近,和3669.81的差值小於0.1,這種東東得用程式設計的

option explicit

dim a, b, i, j, res, p, k

a = array(35, 45, 55, 78, 84, 100, 136.5, 180, 220.5, 240, 250, 270, 312, 466.

54, 520, 540, 1320, 1427.4, 1764, 5050.5)

for k = 2 to 19

b = scombin(a, k)

for i = 1 to ubound(b, 1)

p = 0: res = ""

for j = 1 to ubound(b, 2)

p = p + cdbl(b(i, j))

res = res & "," & b(i, j)

next

if abs(p - 3669.81) < 0.1 then

res = right(res, len(res) - 1)

rtxt res & vbcrlf

end if

next

erase b

next

msgbox "all_done!!!"

function scombin(byref srr(), byval c)

dim bin(), res()

dim i, a, l, j, t, k

dim one, zero

t = ubound(srr)

a = combin(t + 1, c)

redim bin(t)

redim res(a, c)

for i = 1 to t

if i <= c then bin(i) = 1 else bin(i) = 0

next

for l = 1 to a

k = 0

for i = 1 to t

if bin(i) = 1 then

k = k + 1

res(l, k) = srr(i)

end if

next

for i = 1 to t - 1

if bin(i) = 1 and bin(i + 1) = 0 then

bin(i) = 0

bin(i + 1) = 1

exit for

end if

next

one = 0: zero = 0

for j = 1 to i - 1

if bin(j) = 1 then one = one + 1 else zero = zero + 1

next

if one > 0 then

for j = 0 to one

bin(j) = 1

next

end if

if zero > 0 then

for j = 1 to zero

bin(j + one) = 0

next

end if

next

scombin = res

end function

function fact(byval num)

if num <= 1 then

fact = 1

else

fact = num * fact(num - 1)

end if

end function

function combin(byval m, byval n)

dim m_c, n_c, mn_c

m_c = fact(m)

n_c = fact(n)

mn_c = fact(m - n)

combin = m_c / (n_c * mn_c)

end function

sub rtxt(byval str)

dim fso, ftxt

set fso = createobject("scripting.filesystemobject")

set ftxt = fso.opentextfile("d:\res.txt", 8, true)

ftxt.write str

ftxt.close

set ftxt = nothing

set fso = nothing

end sub

3樓:匿名使用者

用vba**做迴圈,一組一組的試唄

4樓:騎蝸牛笑話烏龜

把每個數字放到單元格里,然後可以求和

5樓:

題目寫的不太明白 sum函式不行嗎

有和值求一定範圍內的各個數字能求出來嗎

6樓:姓王的

可以用excel的vba程式設計計算出來,但這裡一發**就被吞掉,沒辦法幫你。你追問一下再發**試試

1-20,任意取3個數字組合,組合成和值是34的排列有幾種,懂的,大神,能幫我全部拍出來下?

7樓:李常進

1+13+20=34

1+14+19=34

1+15+18=34

1+16+17=34

1+17+16=34

1+18+15=34

1+19+14=34

1+20+13=34

2+12+20=34

2+13+19=34

2+14+18=34

2+15+17=34

2+17+15=34

2+18+14=34

2+19+13=34

2+20+12=34

3+11+20=34

3+12+19=34

3+13+18=34

3+14+17=34

3+15+16=34

3+16+15=34

3+17+14=34

3+18+13=34

3+19+12=34

3+20+11=34

4+10+20=34

4+11+19=34

4+12+18=34

4+13+17=34

4+14+16=34

4+16+14=34

4+17+13=34

4+18+12=34

4+19+11=34

4+20+10=34

5+9+20=34

5+10+19=34

5+11+18=34

5+12+17=34

5+13+16=34

5+14+15=34

5+15+14=34

5+16+13=34

5+17+12=34

5+18+11=34

5+19+10=34

5+20+9=34

6+8+20=34

6+9+19=34

6+10+18=34

6+11+17=34

6+12+16=34

6+13+15=34

6+15+13=34

6+16+12=34

6+17+11=34

6+18+10=34

6+19+9=34

6+20+8=34

7+8+19=34

7+9+18=34

7+10+17=34

7+11+16=34

7+12+15=34

7+13+14=34

7+14+13=34

7+15+12=34

7+16+11=34

7+17+10=34

7+18+9=34

7+19+8=34

7+20+7=34

8+6+20=34

8+7+19=34

8+9+17=34

8+10+16=34

8+11+15=34

8+12+14=34

8+14+12=34

8+15+11=34

8+16+10=34

8+17+9=34

8+18+8=34

8+19+7=34

8+20+6=34

9+5+20=34

9+6+19=34

9+7+18=34

9+8+17=34

9+10+15=34

9+11+14=34

9+12+13=34

9+13+12=34

9+14+11=34

9+15+10=34

9+16+9=34

9+17+8=34

9+18+7=34

9+19+6=34

9+20+5=34

10+4+20=34

10+5+19=34

10+6+18=34

10+7+17=34

10+8+16=34

10+9+15=34

10+11+13=34

10+13+11=34

10+14+10=34

10+15+9=34

10+16+8=34

10+17+7=34

10+18+6=34

10+19+5=34

10+20+4=34

11+3+20=34

11+4+19=34

11+5+18=34

11+6+17=34

11+7+16=34

11+8+15=34

11+9+14=34

11+10+13=34

11+12+11=34

11+13+10=34

11+14+9=34

11+15+8=34

11+16+7=34

11+17+6=34

11+18+5=34

11+19+4=34

11+20+3=34

12+2+20=34

12+3+19=34

12+4+18=34

12+5+17=34

12+6+16=34

12+7+15=34

12+8+14=34

12+9+13=34

12+10+12=34

12+13+9=34

12+14+8=34

12+15+7=34

12+16+6=34

12+17+5=34

12+18+4=34

12+19+3=34

12+20+2=34

13+1+20=34

13+2+19=34

13+3+18=34

13+4+17=34

13+5+16=34

13+6+15=34

13+7+14=34

13+8+13=34

13+9+12=34

13+10+11=34

13+11+10=34

13+12+9=34

13+14+7=34

13+15+6=34

13+16+5=34

13+17+4=34

13+18+3=34

13+19+2=34

13+20+1=34

14+1+19=34

14+2+18=34

14+3+17=34

14+4+16=34

14+5+15=34

14+6+14=34

14+7+13=34

14+8+12=34

14+9+11=34

14+11+9=34

14+12+8=34

14+13+7=34

14+15+5=34

14+16+4=34

14+17+3=34

14+18+2=34

14+19+1=34

15+1+18=34

15+2+17=34

15+3+16=34

15+4+15=34

15+5+14=34

15+6+13=34

15+7+12=34

15+8+11=34

15+9+10=34

15+10+9=34

15+11+8=34

15+12+7=34

15+13+6=34

15+14+5=34

15+16+3=34

15+17+2=34

15+18+1=34

16+1+17=34

16+2+16=34

16+3+15=34

16+4+14=34

16+5+13=34

16+6+12=34

16+7+11=34

16+8+10=34

16+10+8=34

16+11+7=34

16+12+6=34

16+13+5=34

16+14+4=34

16+15+3=34

16+17+1=34

17+1+16=34

17+2+15=34

17+3+14=34

17+4+13=34

17+5+12=34

17+6+11=34

17+7+10=34

17+8+9=34

17+9+8=34

17+10+7=34

17+11+6=34

17+12+5=34

17+13+4=34

17+14+3=34

17+15+2=34

17+16+1=34

18+1+15=34

18+2+14=34

18+3+13=34

18+4+12=34

18+5+11=34

18+6+10=34

18+7+9=34

18+9+7=34

18+10+6=34

18+11+5=34

18+12+4=34

18+13+3=34

18+14+2=34

18+15+1=34

19+1+14=34

19+2+13=34

19+3+12=34

19+4+11=34

19+5+10=34

19+6+9=34

19+7+8=34

19+8+7=34

19+9+6=34

19+10+5=34

19+11+4=34

19+12+3=34

19+13+2=34

19+14+1=34

20+1+13=34

20+2+12=34

20+3+11=34

20+4+10=34

20+5+9=34

20+6+8=34

20+8+6=34

20+9+5=34

20+10+4=34

20+11+3=34

20+12+2=34

20+13+1=34

夢見我有私生子和一堆寵物狗好嗎?有什麼寓意

說明你現在的私生子,就好比你的寵物一樣,你非常寵愛她 池雍恬 這個你可以取到周公解夢上去查一下,看這個夢的寓意是什麼? 冉趣人生 這個夢說明你向來雖然事業有成。但是有可能因為合夥人的意見不同產生分歧。 哈哈阿哈哈 可能寓意你未來的生活會水深火熱吧,畢竟寵物狗和孩子都是讓你生活變得更混亂的 既然你夢到...

誰會解夢啊,夢到一堆蛇和死去的爸爸怎麼解釋啊,

夢見自己被蛇咬,意味著不怕兇險,將交上好運,生活富裕。夢見孩子被蛇咬,則意味著家庭不和,帶來憂愁和不幸。夢見一對蛇,很快會分家。商人夢見一對蛇,能發大財。夢見蛇咬你自己,要交好運,生活會豐裕。但是夢見蛇咬自己妻子,是不祥之兆,會遇到憂愁不幸。夢見敵人被蛇咬傷,敵人會互相殘殺,最後兩敗俱傷。夢見打死蛇...

有一堆圍棋子,黑子是白子的2 3,現在取走12粒黑子,新增18粒白子後,黑子是白子的5 12,現在白子,黑子各有

有一堆圍棋子,黑子是白子的2 3,現在填上12粒黑子 注意 題目在這是取走黑子 填上18粒白子後,因為填上的黑子是白子2 3,所以填上後黑子仍然是白子2 3,可改寫成8 12 現在取走24個黑子 現在等於和題目一樣了 黑子是白子的5 12。所以取走的24顆黑子與現在的黑子之比為 8 5 5,現在的黑...