PCDVD數位科技討論區

PCDVD數位科技討論區 (https://www.pcdvd.com.tw/index.php)
-   七嘴八舌異言堂 (https://www.pcdvd.com.tw/forumdisplay.php?f=12)
-   -   這個公式是怎麼計算的 (https://www.pcdvd.com.tw/showthread.php?t=1186745)

奇木拉 2021-06-16 09:07 AM

這個公式是怎麼計算的
 
X Y
1 27000
2 27900
3 28700
4 29600
5 30500
6 31500
7 32500
8 33500
9 34500
10 35600
11 36700
12 37800
13 39000
14 40200
15 41400
16 42700
17 44000
18 45400
19 46800
20 48300
21 49700
22 51300
23 52900
24 54500
25 56200
26 57900
27 59700
28 61600
29 63500
30 65500
31 67500
32 69600
33 71700
34 73900
35 76200
36 78600
37 81000
38 83500
39 86100
40 88800
41 91500
42 94400
43 97300
44 100300
45 103400
46 106600
47 109900
48 113300
49 116800
50 120400




X 50 怎麼計算 Y 才能變成 120400 :confused:

Fly Pig 2021-06-16 10:42 AM

1個附加檔案
y = 0.2793x3 + 6.253x2 + 874.32x + 26001

用三次方多項式Fitting的

substar999 2021-06-16 11:24 AM

可參考這篇
https://officeguide.cc/excel-scatte...dline-tutorial/

hendry2002 2021-06-16 12:19 PM

引用:
作者Fly Pig
y = 0.2793x3 + 6.253x2 + 874.32x + 26001

用三次方多項式Fitting的


厲害

跪求大樂透多項式

:laugh: :laugh: :laugh: :laugh:

holisonyy 2021-06-16 01:01 PM

這不就把你貼的串列貼到excel

選多項式fitting,階數越高越準,但越難有學理分析的意義

奇木拉 2021-06-16 06:58 PM

那換成C語言公式要怎麼寫?
我目前是用土法煉鋼的方式

代碼:
	switch(X) {
		case 1: Y = 27000; break;
		case 2: Y = 27900; break;
		case 3: Y = 28700; break;
		case 4: Y = 29600; break;
		case 5: Y = 30500; break;
		case 6: Y = 31500; break;
		case 7: Y = 32500; break;
		case 8: Y = 33500; break;
		case 9: Y = 34500; break;
		case 10: Y = 35600; break;
		case 11: Y = 36700; break;
		case 12: Y = 37800; break;
		case 13: Y = 39000; break;
		case 14: Y = 40200; break;
		case 15: Y = 41400; break;
		case 16: Y = 42700; break;
		case 17: Y = 44000; break;
		case 18: Y = 45400; break;
		case 19: Y = 46800; break;
		case 20: Y = 48300; break;
		case 21: Y = 49700; break;
		case 22: Y = 51300; break;
		case 23: Y = 52900; break;
		case 24: Y = 54500; break;
		case 25: Y = 56200; break;
		case 26: Y = 57900; break;
		case 27: Y = 59700; break;
		case 28: Y = 61600; break;
		case 29: Y = 63500; break;
		case 30: Y = 65500; break;
		case 31: Y = 67500; break;
		case 32: Y = 69600; break;
		case 33: Y = 71700; break;
		case 34: Y = 73900; break;
		case 35: Y = 76200; break;
		case 36: Y = 78600; break;
		case 37: Y = 81000; break;
		case 38: Y = 83500; break;
		case 39: Y = 86100; break;
		case 40: Y = 88800; break;
		case 41: Y = 91500; break;
		case 42: Y = 94400; break;
		case 43: Y = 97300; break;
		case 44: Y = 100300; break;
		case 45: Y = 103400; break;
		case 46: Y = 106600; break;
		case 47: Y = 109900; break;
		case 48: Y = 113300; break;
		case 49: Y = 116800; break;
		case 50: Y = 120400; break;
		case 51: Y = 124100; break;
		case 52: Y = 128000; break;
		case 53: Y = 131900; break;
		case 54: Y = 136000; break;
		case 55: Y = 140200; break;
		case 56: Y = 144600; break;
		case 57: Y = 149000; break;
		case 58: Y = 153600; break;
		case 59: Y = 158400; break;
		case 60: Y = 163300; break;
		case 61: Y = 168300; break;
		case 62: Y = 173500; break;
		case 63: Y = 178900; break;
		case 64: Y = 184500; break;
		case 65: Y = 190200; break;
		case 66: Y = 196000; break;
		case 67: Y = 202100; break;
		case 68: Y = 208400; break;
		case 69: Y = 214800; break;
		case 70: Y = 221500; break;
		case 71: Y = 228300; break;
		case 72: Y = 235400; break;
		case 73: Y = 242600; break;
		case 74: Y = 250200; break;
		case 75: Y = 257900; break;
		case 76: Y = 265900; break;
		case 77: Y = 274100; break;
		case 78: Y = 282600; break;
		case 79: Y = 291300; break;
		case 80: Y = 300300; break;
		case 81: Y = 309600; break;
		case 82: Y = 319200; break;
		case 83: Y = 329100; break;
		case 84: Y = 339200; break;
		case 85: Y = 349700; break;
		case 86: Y = 360600; break;
		case 87: Y = 371700; break;
		case 88: Y = 383200; break;
		case 89: Y = 395100; break;
		case 90: Y = 407300; break;
		case 91: Y = 419900; break;
		case 92: Y = 432900; break;
		case 93: Y = 446200; break;
		case 94: Y = 460100; break;
		case 95: Y = 474300; break;
		case 96: Y = 489000; break;
		case 97: Y = 504100; break;
		case 98: Y = 519700; break;
		case 99: Y = 535700; break;
		case 100: Y = 552300; break;
		case 101: Y = 569400; break;
		case 102: Y = 587000; break;
		case 103: Y = 605200; break;
		case 104: Y = 623900; break;
		case 105: Y = 643200; break;
		case 106: Y = 663100; break;
		case 107: Y = 683600; break;
		case 108: Y = 704700; break;
		case 109: Y = 726500; break;
		case 110: Y = 749000; break;
		case 111: Y = 772200; break;
		case 112: Y = 796000; break;
		case 113: Y = 820700; break;
		case 114: Y = 846000; break;
		case 115: Y = 872200; break;
		case 116: Y = 899200; break;
		case 117: Y = 927000; break;
		case 118: Y = 955700; break;
		case 119: Y = 985200; break;
		case 120: Y = 1015700; break;
		case 121: Y = 1047100; break;
		case 122: Y = 1079500; break;
		case 123: Y = 1112900; break;
		case 124: Y = 1147300; break;
		case 125: Y = 1182800; break;
		case 126: Y = 1219400; break;
		case 127: Y = 1257100; break;
		case 128: Y = 1296000; break;
		case 129: Y = 1336100; break;
		case 130: Y = 1377400; break;
		case 131: Y = 1420000; break;
		case 132: Y = 1463900; break;
		case 133: Y = 1509200; break;
		case 134: Y = 1555900; break;
		case 135: Y = 1604000; break;
		case 136: Y = 1653600; break;
		case 137: Y = 1704700; break;
		case 138: Y = 1757500; break;
		case 139: Y = 1811800; break;
		case 140: Y = 1867800; break;
		case 141: Y = 1925600; break;
		case 142: Y = 1985200; break;
		case 143: Y = 2046600; break;
		case 144: Y = 2109900; break;
		case 145: Y = 2175100; break;
		case 146: Y = 2242400; break;
		case 147: Y = 2311800; break;
		case 148: Y = 2383300; break;
		case 149: Y = 2457000; break;
		case 150: Y = 2533000; break;
		case 151: Y = 2611300; break;
		case 152: Y = 2692100; break;
		case 153: Y = 2775300; break;
		case 154: Y = 2861200; break;
		case 155: Y = 2949600; break;
		case 156: Y = 3040900; break;
		case 157: Y = 3134900; break;
		case 158: Y = 3231900; break;
		case 159: Y = 3331800; break;
		case 160: Y = 3434900; break;
		case 161: Y = 3541100; break;
		case 162: Y = 3650600; break;
		case 163: Y = 3763600; break;
		case 164: Y = 3880000; break;
		case 165: Y = 4000000; break;
	}



但如果要改變Y 那就得全部在改 很麻煩 所以還是有公式比較好 :D

substar999 2021-06-16 08:44 PM

你要交作業還是工作用的?
不管是哪一種,上面已經給公式了,
要是你還不會寫,我覺得你還是土法煉鋼吧!

引用:
作者奇木拉
那換成C語言公式要怎麼寫?
我目前是用土法煉鋼的方式


switch(X) {
case 1: Y = 27000; break;
case 2: Y = 27900; break;
case 3: Y = 28700; break;
case 4: Y = 29600; break;
case 5: Y = 30500; break;
case 6: Y = 31500; break;
case 7: Y = 32500; break;
case 8: Y = 33500; break;
case 9: Y = 34500; break;
case 10: Y = 35600; break;
case 11: Y = 36700; break;
case 12: Y = 37800; break;
case 13: Y = 39000; break;
case 14: Y = 40200; break;
case 15: Y = 41400; break;
case 16: Y = 42700; break;
case 17: Y = 44000; break;
case 18: Y = 45400; break;
case 19: Y = 46800; break;
case 20: Y = 48300; break;
case 21: Y = 49700; break;
case 22: Y = 51300; break;
case 23: Y = 52900; break;
...

hendry2002 2021-06-16 08:57 PM

如果X只會是integer 且0<X<51

那C語言這樣寫應該執行起來比較快

:ase :ase :ase :ase

silent 2021-06-16 10:14 PM

引用:
作者奇木拉
那換成C語言公式要怎麼寫?
我目前是用土法煉鋼的方式


switch(X) {
case 1: Y = 27000; break;
case 2: Y = 27900; break;
case 3: Y = 28700; break;
case 4: Y = 29600; break;
case 5: Y = 30500; break;
case 6: Y = 31500; break;
case 7: Y = 32500; break;
case 8: Y = 33500; break;
case 9: Y = 34500; break;
case 10: Y = 35600; break;
case 11: Y = 36700; break;
case 12: Y = 37800; break;
case 13: Y = 39000; break;
case 14: Y = 40200; break;
case 15: Y = 41400; break;
case 16: Y = 42700; break;
case 17: Y = 44000; break;
case 18: Y = 45400; break;
case 19: Y = 46800; break;
case 20: Y = 48300; break;
case 21: Y = 49700; break;
case 22: Y = 51300; break;
case 23: Y = 52900; break;
...

所以你是要一個查找已知固定數據的功能?還是能由X預測(算出)Y的功能?
還是你只是不想每次數據有改就要去改code?
要是這樣就把數字放在其他外部文字檔或什麼.config檔裡,要用時再去讀取,修改也比較方便.

奇木拉 2021-06-17 03:34 AM

引用:
作者substar999
你要交作業還是工作用的?
不管是哪一種,上面已經給公式了,
要是你還不會寫,我覺得你還是土法煉鋼吧!


自己用的啦,因為那個公式我實在看不太懂 :ase


所有的時間均為GMT +8。 現在的時間是09:09 PM.

vBulletin Version 3.0.1
powered_by_vbulletin 2024。