作者:
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長度有限制沒辦法這麼做
請問有人有遇過類似的事情,有什麼辦法可以做到嗎?
謝謝各位的解答!
作者: ctrlbreak 2015-06-05 15:45:00
double返回58897414352, int返回12332, 就知道怎麼切了不考慮double會不會失真 XD返回5.8897414352, 再從int的資料算有幾位數是需要的..細節自己再想想 XD另一個方法1000最多占10bits, double可以存64bits,所以囉做一下位元運算也是很容易辦到的
作者: ctrlbreak 2015-06-05 16:03:00
作業要求的吧XD
作者: ctrlbreak 2015-06-05 18:08:00
技巧練習, 多媒體業滿常用的XD
作者:
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
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
好奇怪,這樣搞那那個命名是怎回事