boost library的下載網址如下:
http://www.boost.org/
此library有提供一些數學distribution的random number generator:
以下是一個lognormal distribution的範例,其他distribution的作法類似:
#include <boost/random.hpp>
double mean_of_lognormal = 1 ;// 這是log normal distribution的mean,也就是 e^{mu+sigma^2/2}
double variance_of_lognormal=1000*mean_of_lognormal*mean_of_lognormal; //這是log normal distribution的variance,
double sigma = sqrt(log(variance_of_lognormal/(mean_of_lognormal*mean_of_lognormal)+1));
double mu = log(mean_of_lognormal) - pow(sigma,2)/2 ;
boost::random::mt19937 rng(static_cast<unsigned int>(std::time(0)));
boost::random::lognormal_distribution<> boost_lognormal(mu,sigma);
double value_of_lognormal = boost_lognormal(rng);
2012年12月27日 星期四
2012年8月18日 星期六
解決titanium backup儲存空間不足的問題
先移除titanium backup,然後利用Root Explorer 開啟 /data/app,找出 com.keramidas.TitaniumBackup-1.odex 這檔並刪除,然後再重裝 titanium backup即可
2012年6月22日 星期五
HTC Magic 刷機教學
基本上就是以下兩個網站交叉著看
http://www.mobile01.com/topicdetail.php?f=566&t=1599400&p=1
http://abintech.twidv.com/2010/03/htc-magic.html
http://www.mobile01.com/topicdetail.php?f=566&t=1599400&p=1
http://abintech.twidv.com/2010/03/htc-magic.html
2012年5月24日 星期四
2012年5月5日 星期六
HTC One X內建SD卡消失大量空間的解法
One X手機與電腦連線傳輸資料後手機儲存空間1G空間遺失原因是:
手機儲存空間連線時,暫存檔案占據儲存空間。
要排除此問題,您僅需將手機儲存空間資料備份後格式化即正常
以下提供給您故障排除步驟:
1.話機透過USB傳輸線連接電腦。
2.話機端出現詢問畫面選擇”磁碟機”。
3.電腦端等待約15-20秒後,出現”卸除式磁碟機”
(或是點選”電腦”會出現”HTC Storage”)
4.滑鼠移動到HTC Storage硬碟選項後,請先將磁碟槽內的資料匣跟檔案備份到電腦端
5.備份完成後,點選HTC Storage按滑鼠右鍵,選擇格式化。
6.格式化格式請務必選擇”NTFS”。
7.格式化完成後再將檔案還原到手機儲存空間即可。
我後來發現即使做了上面這個方法, 手機重開機後,好像還是會變成FAT32格式?
然後手機sd內的資料都會不見?
所以最好手機sd內的資料要備份到其他電腦上,預防萬一。
手機儲存空間連線時,暫存檔案占據儲存空間。
要排除此問題,您僅需將手機儲存空間資料備份後格式化即正常
以下提供給您故障排除步驟:
1.話機透過USB傳輸線連接電腦。
2.話機端出現詢問畫面選擇”磁碟機”。
3.電腦端等待約15-20秒後,出現”卸除式磁碟機”
(或是點選”電腦”會出現”HTC Storage”)
4.滑鼠移動到HTC Storage硬碟選項後,請先將磁碟槽內的資料匣跟檔案備份到電腦端
5.備份完成後,點選HTC Storage按滑鼠右鍵,選擇格式化。
6.格式化格式請務必選擇”NTFS”。
7.格式化完成後再將檔案還原到手機儲存空間即可。
我後來發現即使做了上面這個方法, 手機重開機後,好像還是會變成FAT32格式?
然後手機sd內的資料都會不見?
所以最好手機sd內的資料要備份到其他電腦上,預防萬一。
2012年5月2日 星期三
HTC One X相關資訊(刷機)
新機檢查:
http://www.hkepc.com/forum/viewthread.php?tid=1778990&extra=page%3D1
在撥號畫面輸入以下字串,可以進入工程測試模式:
*#*#3424#*#*
刷機及回復原廠方法
http://www.mobile01.com/topicdetail.php?f=566&t=2702844&p=1#35384102
刷機相關研究
http://www.mobile01.com/topicdetail.php?f=566&t=2685112&last=35576340
刷ROM步驟,以ARHD為例:
http://www.hkepc.com/forum/viewthread.php?tid=1778990&extra=page%3D1
在撥號畫面輸入以下字串,可以進入工程測試模式:
*#*#3424#*#*
刷機及回復原廠方法
http://www.mobile01.com/topicdetail.php?f=566&t=2702844&p=1#35384102
刷機相關研究
http://www.mobile01.com/topicdetail.php?f=566&t=2685112&last=35576340
刷ROM步驟,以ARHD為例:
- Download ROM and place it on your SD card
- Download "Super Wipe" script & place it on your SD card (optionally if coming from earlier version of my ROM, obligatory if coming from stock or other custom ROM)
- 手機重開機進入fastboot mode,然後用usb接上電腦
- 用 fastboot flash boot boot.img指令將boot.img刷進手機
- 接著打 fastboot erase cache
- Boot your phone in recovery mode (vol down + power)
- In main menu, select "install zip from sdcard"
- Select "choose zip from sdcard" and browse to the location of "Super Wipe" script
- Once again select "choose zip from sdcard" and browse to the location of Android Revolution ROM
- After flashing process is complete, reboot the device
2012年4月28日 星期六
2012年4月19日 星期四
2012年3月22日 星期四
將GPS經緯度座標轉換成直線距離
我在網路上找到別人寫好,疑似是C#的版本:
http://www.dotblogs.com.tw/jeff-yeh/archive/2009/02/04/7034.aspx
我改成C/C++的版本:
#define M_PI 3.14159265358979323846
double ConvertDegreeToRadians(double degrees)
{
return (M_PI/180)*degrees;
}
double GetDistance(double Lat1, double Long1, double Lat2, double Long2)
{
double Lat1r = ConvertDegreeToRadians(Lat1);
double Lat2r = ConvertDegreeToRadians(Lat2);
double Long1r = ConvertDegreeToRadians(Long1);
double Long2r = ConvertDegreeToRadians(Long2);
double R = 6371; // Earth's radius (km)
double d = acos(sin(Lat1r) *
sin(Lat2r) + cos(Lat1r) *
cos(Lat2r) *
cos(Long2r-Long1r)) * R;
return d;
}
想要使用這個function很簡單
例如想要得知24.797254,120.969189到24.803545,120.979038的距離,就這樣呼叫:
cout<<GetDistance(24.797254,120.969189,24.803545,120.979038)<<endl;
function回傳的單位是公里。
http://www.dotblogs.com.tw/jeff-yeh/archive/2009/02/04/7034.aspx
我改成C/C++的版本:
#define M_PI 3.14159265358979323846
double ConvertDegreeToRadians(double degrees)
{
return (M_PI/180)*degrees;
}
double GetDistance(double Lat1, double Long1, double Lat2, double Long2)
{
double Lat1r = ConvertDegreeToRadians(Lat1);
double Lat2r = ConvertDegreeToRadians(Lat2);
double Long1r = ConvertDegreeToRadians(Long1);
double Long2r = ConvertDegreeToRadians(Long2);
double R = 6371; // Earth's radius (km)
double d = acos(sin(Lat1r) *
sin(Lat2r) + cos(Lat1r) *
cos(Lat2r) *
cos(Long2r-Long1r)) * R;
return d;
}
想要使用這個function很簡單
例如想要得知24.797254,120.969189到24.803545,120.979038的距離,就這樣呼叫:
cout<<GetDistance(24.797254,120.969189,24.803545,120.979038)<<endl;
function回傳的單位是公里。
2012年1月11日 星期三
解決 pcnet32 device eth0 does not seem to be present
今天在vmware上面跑fedora的時候,不知道為什麼之前網卡正常,但是後來網卡都無法啟動
於是我找到這個網站的教學:
http://newyorks.blog.51cto.com/2612618/498819
於是我找到這個網站的教學:
http://newyorks.blog.51cto.com/2612618/498819
解決方法就是在/lib/modules/`uname -r`/下執行 depmod,重新生成modules.dep和modules.alias,重新開機。
2012年1月2日 星期一
C++ Big5 與 Unique 轉換
big5轉unicode是用MultiByteToWideChar
char *str = "big5轉unicode.txt";
wchar_t wcbuf[32];
MultiByteToWideChar (950,0,str,-1,wcbuf,32);
unique轉big5是用WideCharToMultiByte
wchar_t *wstr = L"unicode轉big5";
char mbcsbuf[32];
WideCharToMultiByte(950 ,0,wstr,-1,mbcsbuf,32,NULL,NULL);
記得要#include<Windows.h>
char *str = "big5轉unicode.txt";
wchar_t wcbuf[32];
MultiByteToWideChar (950,0,str,-1,wcbuf,32);
unique轉big5是用WideCharToMultiByte
wchar_t *wstr = L"unicode轉big5";
char mbcsbuf[32];
WideCharToMultiByte(950 ,0,wstr,-1,mbcsbuf,32,NULL,NULL);
記得要#include<Windows.h>
訂閱:
文章 (Atom)