[問題] int將資訊相加後如何切割

作者: jiqian (JIM)   2015-06-05 14:49:45
開發平台(Platform): (Ex: VC++, GCC, Linux, ...)
C++
問題(Question):
程式一
predict(InputArray _src, int &minClass, double &minDist)
會將int值1~1000做一個隨機排序,之後取五個int
但這個程式只能回傳一個int及一個double
不可以回傳陣列
程式二
接收程式一得到的int以及double,想辦法變成五個int,做一個有序(原本隨機取得的順序)排列
請問我該如何達成這件事
有想說轉成字串用9999之類的來隔開,但是int長度有限制沒辦法這麼做
請問有人有遇過類似的事情,有什麼辦法可以做到嗎?
謝謝各位的解答!
作者: MOONRAKER (㊣牛鶴鰻毛人)   2015-06-05 15:00:00
轉成字串跟int長度有限制有什麼關係 看不懂
作者: ctrlbreak   2015-06-05 15:45:00
double返回58897414352, int返回12332, 就知道怎麼切了不考慮double會不會失真 XD返回5.8897414352, 再從int的資料算有幾位數是需要的..細節自己再想想 XD另一個方法1000最多占10bits, double可以存64bits,所以囉做一下位元運算也是很容易辦到的
作者: MOONRAKER (㊣牛鶴鰻毛人)   2015-06-05 16:00:00
為什麼不可以回傳陣列
作者: ctrlbreak   2015-06-05 16:03:00
作業要求的吧XD
作者: azureblaze (AzureBlaze)   2015-06-05 16:05:00
數值應該有範圍限制?
作者: MOONRAKER (㊣牛鶴鰻毛人)   2015-06-05 16:05:00
要求排序還不可以傳出陣列 什麼垃圾作業 拒交
作者: fireslayer (fireslayer)   2015-06-05 17:18:00
同意拒交 垃圾作業
作者: MOONRAKER (㊣牛鶴鰻毛人)   2015-06-05 17:29:00
怕記憶體會漏就傳個陣列進去給他寫阿
作者: ctrlbreak   2015-06-05 18:08:00
技巧練習, 多媒體業滿常用的XD
作者: prismwu   2015-06-05 19:33:00
位元運算塞在double似乎比較簡單
作者: suhorng ( )   2015-06-05 19:43:00
呃...接收程式一得到的 int, 那 double 呢? 收不到?
作者: overhead (overhead)   2015-06-05 20:38:00
滿好奇為何多媒體業要用這種怪異寫法?超難看不合理
作者: ctrlbreak   2015-06-05 20:51:00
主要還是壓縮, 省空間...intel CPU SSE指令集都是這類的運算 XD
作者: cismjmgoshr (--???--)   2015-06-05 21:37:00
double的尾數(mantissa)有51+1bit,5個1~1000的數字需要5*10 bit,塞進double很夠用了1~1000改成0~999,例如選到5、88、974、143、52的話minDist = 408797314251. int就放著不管好了...minDist = 4,087,973,142,051 上面那行打錯了
作者: anyoiuo   2015-06-05 21:50:00
好奇怪,這樣搞那那個命名是怎回事

Links booklink

Contact Us: admin [ a t ] ucptt.com