[請問] C語言寫法?(數學排列)

作者: jpjpjp (jp)   2025-07-08 10:26:23
大家好,
數學題目如下↓
哨音,長3秒、短2秒,皆間隔1秒,現歷時25秒,有幾種組合方式?答:49。
我可以用c寫出它的組合方式是(x, y)=(2, 6), (5, 2)
但要如何才能用c,同時算出排法有49種呢?
附上原始碼,感謝回覆!
int j=1;
for (int x=1; x<=10; x++) {
for (int y=1; y<=10; y++) {
if (((4*x)+(3*y))==26)
printf("(x, y)=(%d, %d), 4x*3y=%2d, run=%d\n", x, y,
(4*x+3*y), j);
j++;}}
return 0;}
/* (x, y)=(2, 6), 4x*3y=26, run=16
(x, y)=(5, 2), 4x*3y=26, run=42 */
作者: jpjpjp (jp)   2025-07-08 10:27:00
xy的初始範圍有更好的設定方式嗎?畢竟一開始皆無知。
作者: blackbox (黑盒子)   2025-07-08 10:55:00
找到(2,6)(5,2)接下來就算C(8,2)跟C(7,2)
作者: kobe8112 (小B)   2025-07-08 11:00:00
你應該先問問自己,你的起始條件跟終止條件的值是怎麼決定的
作者: gfang (G方)   2025-07-09 00:34:00
問AI不是比較快
作者: jpjpjp (jp)   2025-07-09 08:26:00
預先知道答案才設10,但想問在未知情況下,如何找到最佳?
作者: yeeouo (林翔)   2025-07-09 12:29:00
代碼問題一律問claude
作者: Ricestone (麥飯石)   2025-07-09 13:49:00
這程式碼是你寫的嗎? 沒有規定要用什麼方法解嗎?如果這樣的算法可以接受,那這限制條件你就直接想全都長也就頂多9個y,全都短也就頂多13個x而已這個頂多怎麼來,就是除法講錯,是7個x與9個y喔有用等號的話那就都各減1各減2才對 另外為什麼你的x,y,j初始都設1?j都沒印到的話是沒差啦 只是一貫性比較低

Links booklink

Contact Us: admin [ a t ] ucptt.com