[問題] 243 個 if-else if-else 如何解決

看板C_and_CPP作者 (藍影)時間15年前 (2010/05/23 14:40), 編輯推噓3(3013)
留言16則, 9人參與, 最新討論串1/1
小弟我有一大筆資料(約3、4萬筆),每筆資料有5個維度,這5個維度內容都是數值 假設內容為 Dim1, Dim2, Dim3, Dim4, Dim5 接著 Dim1 要分成 H, M, L, 以 Dim1HM 及 Dim1ML 數值為分界 Dim2 也有分 H, M, L , Dim2HM 及 Dim2ML 數值為分界 一直到 Dim5 都有 H, M, L 所以,最後會分成 3*3*3*3*3 = 243 類, ex : LLLLL = 1類 LLLLM = 2類 LLLLH = 3類 .... HHHHH = 243 類 請問除了寫 243 層 if-else 之外, 我還能用怎樣的技巧解決這樣的問題? 非常感謝各位先進的細心回覆 -- 我期待 我等待 肩狹骨上的翅膀早些長出來 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 180.177.76.209

05/23 22:41, , 1F
switch case...
05/23 22:41, 1F

05/23 22:42, , 2F
我會想用 function pointer array
05/23 22:42, 2F

05/23 22:42, , 3F
遞迴跑維度, 每一個維度用if 或 switch 都可以
05/23 22:42, 3F

05/23 22:48, , 4F
如果讓L=0 M=1 H=2 然後用Dim1*(3^4)+Dim2*(3^3)+....
05/23 22:48, 4F

05/23 22:48, , 5F
當成index 算出來會是0~242之間的值 再用值去對應類呢?
05/23 22:48, 5F

05/23 22:51, , 6F
回 FallWinDs, L=0, M=1, H=2, 似乎還是要用if else
05/23 22:51, 6F

05/23 22:52, , 7F
假設資料範圍0-1, HM交界=0.6, LM=0.3
05/23 22:52, 7F

05/23 22:52, , 8F
最後還是要if(Dim>HM) H=1, elseif(Dim<ML) L=1..
05/23 22:52, 8F

05/23 22:55, , 9F
至少 243 個變成 2x5 個了...
05/23 22:55, 9F

05/23 22:56, , 10F
!!真的是開始腦鈍鈍了,感謝各位提供方法,我再試過!!
05/23 22:56, 10F

05/23 22:57, , 11F
不過,分類之後要做什麼事情呢?
05/23 22:57, 11F

05/23 23:51, , 12F
嗯, 實不相瞞, 純粹是分類而已
05/23 23:51, 12F

05/23 23:51, , 13F
只是要加個 alog. 做分類
05/23 23:51, 13F

05/24 00:09, , 14F
int flag=0;if(??H??) (flag|(0x03<<4));
05/24 00:09, 14F

05/24 00:30, , 15F
感覺是遞迴
05/24 00:30, 15F

05/24 08:05, , 16F
像 FallwinDs 說的編碼是最方便的
05/24 08:05, 16F
文章代碼(AID): #1B-JvmyF (C_and_CPP)