應用MATLAB進行理論估算之後,應用QT 和 VS 解決程序修改的問題

工作上一直有一個很不順心的問題,原因和一款軟件有關

這款軟件的輸出結果是隨機的,而既然隨機的就有很多時候不利於自己

我想實現的方法就是對程序進行暗改,把裏面添加一個檢測字段的功能,然後把隨機數的生成機制改一下

這個程序當中有這麼一段話:

就是生成四個隨機數,還有這麼一段話:

所以我大概明白了,這個排序功能就是生成四個隨機數,然後比較隨機數的大小,對worker進行調換,達到隨機排序的目的

我把這個代碼換成了下面的樣子:

雖然笨拙,但是有用,哈哈哈

中間有一個是否大於50的排定,就是讓他以50%的概率變得很大,50%的概率變得很小

另外,爲什麼是57這個設定,是我根據蒙特卡洛方法算出來的,源碼貼在下面

a1=0;
a2=0;
a3=0;
a4=0;

for i=1:10000000
    e=rand;
    if e>0.5
        a=rand*100+57;
    else
        a=rand*100-57;
    end
    b=rand*100;
    c=rand*100;
    d=rand*100;
    
    if a>b && a>c && a>d
        a1=a1+1;
    end
    
    if a>b && a>c && a<d || a>b && a<c && a>d || a<b && a>c && a>d
        a2=a2+1;
    end
    
    if a>b && a<c && a<d || a<b && a<c && a>d || a<b && a>c && a<d
        a3=a3+1;
    end
    
    if a<b && a<c && a<d
        a4=a4+1;
    end    
end
        

這個代碼是MATLAB,不知道爲啥csdn的代碼風格設置裏沒有MATLAB

這是四個人的代碼,當然還有三個人的:

a1=0;
a2=0;
a3=0;

for i=1:10000000
    e=rand;
    if e>0.5
        a=rand*100+43;
    else
        a=rand*100-43;
    end
    b=rand*100;
    c=rand*100;
    
    if a>b && a>c 
        a1=a1+1;
    end
    
    if a>b && a<c  || a<b && a>c 
        a2=a2+1;
    end
    
    if a<b && a<c
        a3=a3+1;
    end
end

可以看到,在這裏三個人的版本改成了43,蒙特卡羅方法真的很棒啊,拯救了我的概率論學渣

好了,下面就是對程序進行修改了

這個程序是用QT和VS進行聯合編譯的,由於我本人只學過在VC6.0上面編程c++,對於qt和vs基本一竅不通,所以把我的探索經歷寫在下面:

運行exe文件(我手裏有exe 和源碼),彈出這個錯誤

似乎是運行環境沒有配置好。

然後,我看到,在sln文件裏面有一個這個:

Microsoft Visual Studio Solution File, Format Version 11.00
# Visual Studio 2010

果斷下載VS2010裝起來,看來原作者是用了VS2010進行的編譯

問題還是沒有解決,還是不知道原作者用了哪個版本的QT進行編譯

還是得先解決QT安裝的問題,不然沒有辦法編譯和調試這個程序

裝了一個QT5.8.0 然後vs2010裏面沒有出現qt的選項卡或者菜單

後來查了一下,還需要裝一個QT add in插件

好吧,查了一下,發現支持2010得插件,1.1.11可以做到

安裝起來之後,再次打開2010,發現2010裏面有這個選項卡了:

但是還是不行,QT option裏面沒有我安裝的5.8.0版本的qt,說明沒有自動檢測成功

但是添加路徑也不行,看來我安裝的QT5.8.0不是一個支持2010的QT

網上找了一下,發現QT5.3.2可以用,也有對應的安裝教程,好的,就是你了

安裝之後,發現還是不支持,覺得可能是add in版本不對,所以下載了一個新版add in,1.2.3版本

安裝之後就可以了,成功添加了路徑

主要的步驟就是跟着這個走:https://www.cnblogs.com/liuguoyao514257665/articles/9344730.html

設置環境變量的看這個:https://jingyan.baidu.com/article/922554467f8f39851648f4a5.html

另外也可以參考這個:https://jingyan.baidu.com/article/37bce2be452d991003f3a247.html

然後好像配置環境就成功了

一開始用vs2010打開這個程序的sln文件,會提示程序已經過期啥的,配置好環境就沒有了

另外還有一個問題就是,sln文件裏面明明是:

可是在vcxproj

而且,右鍵點擊項目,選中convert project to Qt Add-in project,這時候編譯運行,也不會出現“error MSB6006: “cmd.exe”已退出,代碼爲 3”這樣的錯誤了

可是出現了一些其他的錯誤:

今天寫到這吧。。。後面陸續補充

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章