//建議使用vc2005以上的編譯器,加油!!~!
#include <stdio.h>
#include <cmath>
#include <iostream>
#include <fstream>
#include <time.h>
using namespace std;
const int iAntCount=34;//螞蟻數量
const int iCityCount=51;//城市數量
const int iItCount=2000;//最大跌代次數
const double Q=100;
const double alpha=1;
const double beta=5;
const double rou=0.5;
int besttour[iCityCount];//最有路徑列表
double rnd(int low,double uper)//獲得隨機數
{
double p=(rand()/(double)RAND_MAX)*((uper)-(low))+(low);
return (p);
};
int rnd(int uper)
{
return (rand()%uper);
};
class GInfo//tsp地圖信息,包含了信息素,城市距離,和信息素變化矩陣
{
public:
double m_dDeltTrial[iCityCount][iCityCount];
double m_dTrial[iCityCount][iCityCount];
double distance[iCityCount][iCityCount];
};
GInfo Map;
class ant
{
private:
int ChooseNextCity();//選擇城市
double prob[iCityCount];
int m_iCityCount;
int AllowedCity[iCityCount];//沒有走過的城市
public:
void addcity(int city);
int tabu[iCityCount];
void Clear();
void UpdateResult();
double m_dLength;
double m_dShortest;
void move();
ant();
void move2last();
};
void ant::move2last()
{
int i;
for(i=0;i<iCityCount;i++)
if (AllowedCity[i]==1)
{
addcity(i);
break;
}
}
void ant::Clear()
{
m_dLength=0;
int i;
for(i=0; i<iCityCount;i++)
{
prob[i]=0;
AllowedCity[i]=1;
i=tabu[iCityCount-1];
m_iCityCount=0;
addcity(i);
}
}
ant::ant()
{
m_dLength=m_dShortest=0;
m_iCityCount=0;
int i;
for(i=0;i<iCityCount;i++) {
AllowedCity[i]=1;
prob[i]=0;
}
}
void ant::addcity(int city)
{
//add city to tabu;
tabu[m_iCityCount]=city;
m_iCityCount++;
AllowedCity[city]=0;
}
int ant::ChooseNextCity()
{
//Update the probability of path selection
//select a path from tabu[m_iCityCount-1] to next
int i;
int j=10000;
double temp=0;
int curCity=tabu[m_iCityCount-1];
for (i=0;i<iCityCount;i++) {
if((AllowedCity[i]==1))
{
temp+=pow((1.0/Map.distance[curCity][i]),beta)*pow((Map.m_dTrial[curCity][i]),alpha);
}
}
double sel=0;
for (i=0;i<iCityCount;i++) {
if((AllowedCity[i]==1))
{
prob[i]=pow((1.0/Map.distance[curCity][i]),(int)beta)*pow((Map.m_dTrial[curCity][i]),(int)alpha)/temp;
sel+=prob[i];
}
else
prob[i]=0;
}
double mRate=rnd(0,sel);
double mSelect=0;
for ( i=0;i<iCityCount;i++) {
if((AllowedCity[i]==1))
mSelect+=prob[i] ;
if (mSelect>=mRate) {j=i;break;}
}
if (j==10000)
{
temp=-1;
for (i=0;i<iCityCount;i++) {
if((AllowedCity[i]==1))
if (temp) {
temp=pow((1.0/Map.distance[curCity][i]),beta)*pow((double)(Map.m_dTrial[curCity][i]),alpha);
j=i;
}
}
}
return j;
}
void ant::UpdateResult()
{
// Update the length of tour
int i;
for(i=0;i<iCityCount-1;i++)
m_dLength+=Map.distance[tabu[i]][tabu[i+1]];
m_dLength+=Map.distance[tabu[iCityCount-1]][tabu[0]];
}
void ant::move()
{
//the ant move to next town and add town ID to tabu.
int j;
j=ChooseNextCity();
addcity(j);
}
class project
{
public:
void UpdateTrial();
double m_dLength;
void initmap();
ant ants[iAntCount];
void GetAnt();
void StartSearch();
project();
};
void project::UpdateTrial()
{
//calculate the changes of trial information
int i;
int j;
for(i=0;i<iAntCount;i++) {
for (j=0;j<iCityCount-1;j++)
{
Map.m_dDeltTrial[ants[i].tabu[j]][ants[i].tabu[j+1]]+=Q/ants[i].m_dLength ;
Map.m_dDeltTrial[ants[i].tabu[j+1]][ants[i].tabu[j]]+=Q/ants[i].m_dLength;
}
Map.m_dDeltTrial[ants[i].tabu[iCityCount-1]][ants[i].tabu[0]]+=Q/ants[i].m_dLength;
Map.m_dDeltTrial[ants[i].tabu[0]][ants[i].tabu[iCityCount-1]]+=Q/ants[i].m_dLength;
}
for (i=0;i<iCityCount;i++) {
for (j=0;j<iCityCount;j++)
{
Map.m_dTrial[i][j]=(rou*Map.m_dTrial[i][j]+Map.m_dDeltTrial[i][j] );
Map.m_dDeltTrial[i][j]=0;
}
}
}
void project::initmap()
{
int i;
int j;
for(i=0;i<iCityCount;i++)
for (j=0;j<iCityCount;j++)
{
Map.m_dTrial[i][j]=1;
Map.m_dDeltTrial[i][j]=0;
}
}
project::project()
{
//initial map,read map infomation from file . et.
initmap();
m_dLength=10e9;
ifstream in("eil51.tsp");
struct city
{
int num;
int x;
int y;
}cc[iCityCount];
for (int i=0;i<iCityCount;i++)
{
in>>cc[i].num>>cc[i].x>>cc[i].y;
besttour[i]=0;
}
int j;
for(int i=0;i<iCityCount;i++)
for (j=0;j<iCityCount;j++)
{
{
Map.distance[i][j]=sqrt(pow((double)(cc[i].x-cc[j].x),2)+pow((double)(cc[i].y-cc[j].y),2));
}
}
}
void project::GetAnt()
{
//randomly put ant into map
int i=0;
int city;
srand( (unsigned)time( NULL ) +rand());
for (i=0;i<iAntCount;i++)
{
city=rnd(iCityCount);
ants[i].addcity(city);
}
}
void project::StartSearch()
{
//begin to find best solution
int max=0;//every ant tours times
int i;
int j;
double temp;
int temptour[iCityCount];
while (max<iItCount)
{
for(j=0;j<iAntCount;j++)
{
for (i=0;i<iCityCount-1;i++)
ants[j].move();
}
for(j=0;j<iAntCount;j++)
{ ants[j].move2last();
ants[j].UpdateResult ();
}
//find out the best solution of the step and put it into temp
int t;
temp=ants[0].m_dLength;
for (t=0;t<iCityCount;t++)
temptour[t]=ants[0].tabu[t];
for(j=0;j<iAntCount;j++)
{
if (temp>ants[j].m_dLength) {
temp=ants[j].m_dLength;
for ( t=0;t<iCityCount;t++)
temptour[t]=ants[j].tabu[t];
}
}
if(temp<m_dLength){
m_dLength=temp;
for ( t=0;t<iCityCount;t++)
besttour[t]=temptour[t];
}
printf("%d : %f\n",max,m_dLength);
UpdateTrial();
for(j=0;j<iAntCount;j++)
ants[j].Clear();
max++;
}
printf("The shortest toure is : %f\n",m_dLength);
for ( int t=0;t<iCityCount;t++)
printf(" %d ",besttour[t]);
}
int main()
{
project TSP;
TSP.GetAnt();
TSP.StartSearch();
return 0;
}
『貳』 使用可eil 51 時 出現file has been changed outside the editor, reload 怎麼辦
意思就是在keil外還有其他軟體修改了keil工程里的文件,比如你同時開了keil和ultraedit,在UE
里編輯了代碼,然後keil編譯就會出提示。
如果你確定keil外部的修改正確就reload。
要避免出現的話就不要兩個編輯軟體同時打開同一個文件
『叄』 為什麼有的人你告訴他有資源,或者說答應幫他找,前提是也有可能找不到,找不到別罵人,他都不相信呢
EXPLORER.EXE出錯解決方法大全!
進程文件: explorer or explorer.exe
進程名稱: Microsoft Windows Explorer
進程類別:其他進程
explorer.exe是Windows程序管理器或者Windows資源管理器,它用於管理Windows圖形殼,包括開始菜單、任務欄、桌面和文件管理。刪除該程序會導致Windows圖形界面無法適用。注意:explorer.exe也有可能是w32.Codered和w32.mydoom.b@mm病毒。該病毒通過eil郵件傳播,當你打開病毒發送的附件時,即被感染。該病毒會在受害者機器上建立TP服務。該病毒允許攻擊者訪問你的計算機、竊取和個人數據。該進程的安全等級是建議刪除。
出品者:Microsoft Corp.
屬於:Microsoft Windows Operating System
系統進程:Yes
後台程序:No
網路相關:Yes
常見錯誤:N/A
內存使用:N/A
安全等級 (0-5): 0
間諜軟體:No
軟體:No
病毒:No
木馬:No
Explorer.exe程序在系統中的作用
凡是Windows系列的操作系統,運行時都會啟動一個名為Explorer.exe的進程。這個進程主要負責顯示系統桌面上的圖標以及任務欄,它在不同的系統中有不同的妙用。
Windows 9x中的應用
在Windows 9x中,這個進程是運行系統時所必需的。如果用「結束任務」的方法來結束Explorer.exe進程,系統就會刷新桌面,並更新注冊表。所以,我們也可以利用此方法來快速更新注冊表。方法如下:
按下Ctrl+Alt+Del組合鍵,出現「結束任務」對話框。在該對話框中選擇「Explorer」選項,然後單擊「結束任務」按鈕,將出現「關閉Windows」對話框。單擊「否」按鈕,系統過一會兒將出現另一個對話框,告訴你該程序沒有響應,詢問是否結束任務。單擊「結束任務」按鈕,則更新注冊表並返回Windows 9x系統環境中。這比起煩瑣的重新啟動過程要方便多了?
Windows /XP中的應用
在Windows /XP和其他Windows NT內核的系統中,Explorer.exe進程並不是系統運行時所必需的,所以可以用任務管理器來結束它,並不影響系統的正常工作。打開你需要運行的程序,如記事本。然後右擊任務欄,選擇「任務管理器」,選中「進程」選項卡,在窗口中選擇Explorer.exe進程,單擊「結束進程」按鈕,,接下來桌面上除了壁紙(活動桌面Active Desktop的壁紙除外),所有圖標和任務欄都消失了。此時你仍可以像平常一樣操作一切軟體。
如果你想運行其他軟體,但此時桌面上空無一物,怎麼辦?別著急,下面有兩種可以巧妙地打開其他軟體:
第一種方法:按下Ctrl+Alt+Del組合鍵,出現「Windows安全」對話框,單擊「任務管理器」按鈕(或是直接按下Ctrl+Shift+Esc組合鍵),在任務管理器窗口中選中「應用程序」選項卡,單擊「新任務」,在彈出的「創建新任務」的對話框中,輸入你想要打開的軟體的路徑和名稱即可。
你還可以在正在運行的軟體上,選擇「文件→打開」,在「打開」對話框中,點擊「文件類型」下拉列表,選擇「所有文件」,再瀏覽到你想打開的軟體,右擊它,在快捷菜單中選擇「打開」命令,就可以啟動你需要的軟體了。注意,此時不能夠通過單擊「打開」按鈕來打開軟體,此種方法適用於大多數軟體,Office系列除外。
通過結束Explorer.exe進程,還可以減少KB左右的系統已使用內存,無疑會加快系統的運行速度,為資源緊張的用戶騰出了寶貴的空間。
提示:重新啟動Explorer.exe進程後,有些軟體在任務欄系統托盤的小圖標會消息,但該軟體還是在正常運行當中。如果覺得有些不方便,可以再次打開該軟體來顯示小圖標。
explorer.exe出錯的幾種可能原因:
1.系統資源不足。如果機器配置低的話建議不要同時開啟太多應用程序。另外可適當加大虛擬內存,特別是經常玩大型游戲。這種情況下升級機器是最根本的解決辦法呵呵。
2.系統文件損壞。檢查explorer.exe的文件大小,正常情況下應該顯示為k或者k,如果大小不一致,可運行sfc/scannow掃描系統文件。若explorer.exe程序本身損壞,可以從別的機器上拷貝一個explorer.exe文件到本機,調用任務管理器,接入explorer.exe進程,然後新建任務拷貝新的文件到系統盤\WINNT()或\WINDOWS(XP)目錄下。
3.軟體沖突(特別是右鍵第三方載入項)。譬如輸入法,清華紫光輸入法3.0版本有的時候會出現explorer.exe出錯,取消清華紫光輸入法,用其他輸入法輸入會沒有問題。清華紫光輸入法4.0版本未發現類似問題。蘋果美化版的rar惹的禍,把它卸載了暫時就沒有這個錯誤了,你也可以看是不是安裝了蘋果美化版的rar,有的話,也可以卸載了來看一下。
裝了酒精%或者酒精52%虛擬光碟機,在番茄 的系統中很容易出現explorer.exe錯誤。卸載有時候會解決問題 。
4.病毒。(wc98pp.dll)
網路協議處理器 - 電子書編譯工具Web Compiler相關。
wc98pp.dll文件本身並沒有影響,很多計算機上都有此文件,但是當explorer.exe出錯的時候,刪除此文件可以解決問題,然後從注冊表中搜索相關鍵值刪除。
usign.dll,有人提到這個文件與wc98pp.dll兩個文件類似,刪除這兩個文件可以清除IE中不斷跳出小。在的計算機中未發現此文件。
5.windows升級造成的
大家都知道我們用的是盜版xp,既然是盜版的,肯定會出現各種各樣的錯誤.微軟也不是,肯定會搞一些問題來懲罰我們,所以建議大家不要上網自動更新,並且把自動更新關掉(實際上這個更新沒p用)
6.系統內核錯誤。此類情況暫時無法解決,重新安裝系統。
7.內存問題。有人通過更換內存,解決了這個問題,所以這應該是個原因,不過如果這個出問題就比較麻煩了,所以先考慮前面幾個原因。
8.其他原因。計算機運行某個程序等待時間過長,比如讀取數據,尤其是光碟或者外界設備的數據的時候,也會出現explorer.exe出錯。
exeplorer.exe是系統的外殼。這個文件因為開機就被載入到內寸中。所以這個文件通常不會損壞。發生錯誤是因為注冊表的中與exeplorer關聯的項發生異常。原因很多,不好查找。所以一般只有重新安裝系統。如果嫌麻煩,使用啟動盤啟動系統,在恢復控制台中修復
『肆』 經濟閾值與現代植物病害防治是怎麼樣的
經濟閾值(economicthreshold,簡稱ET)是指病害合理防治時機的一種病害密度指標。即病害的某一密度(病情),達此密度時應該採取控制措施,以防止病害種群密度增加而達到經濟損害水平。它是由經濟損害水平派生的,最早由美國昆蟲學家斯特恩(V.M.Stern,1959)在防治害蟲的研究中與經濟損害水平一起提出來的。荷蘭扎多克斯(J.C.Zadoks)在植物病害研究中使用行動閾值(actionthreshold)與之對應。中國通常採用防治指標這一術語。
由於黑德利(J.C.Headly,1972,1982)提出的「經濟閾值」恰好是斯特恩(1959)定義的經濟損害水平(economicinjurylevel,簡稱EIL),在以後的許多引述和解釋中常把二者混淆。所謂經濟損失是指防治費用與防治挽回損失金額的差值。針對預計流行後病情可能達到EIL的病害,如果進行防治,其收益正好等於所需防治費用。它是有害生物綜合防治(IPC)或有害生物綜合治理(IPM)理論的重要概念,是從經濟效益出發確定的病害系統管理目標。EIL是權衡一場預計發生的病害在經濟上是否值得防治的指標和為了取得最好的經濟效益而控制病害的最佳密度。ET則是為了達到上述目的而採取防治行動時的病害密度。在蟲害防治中,ET通常小於EIL,但是在使用高效殺蟲劑能立即殺死害蟲,制止其危害時,ET可能等於EIL。
眾所周知,有害生物對農林作物造成了很大損失,但這種損失用貨幣折算到底有多大,目前國內外尚無統一的標准。特別是化學防治是治理有害生物的重要手段,在殺死害蟲、消滅病菌、雜草、提高農林作物產量取得經濟效益的同時,又引起生態惡化、環境污染等生態學負效應。這些負效應如何來定性、定量評價,至今也沒有統一標准,而此前的評價大都停留在定性的水準上,尤其是缺少對生態學負效應的定量評價。經濟閾值模型對生態調節參數選擇隨意性大,且沒有統一標准,對農葯的生態學負效應分析模糊甚至不加以考慮。根據經濟學原理,單純地以種植經營者的利益而言,他們肯定希望自己的有形投入費用(visiblecost,簡稱Cv)小於最後所出售的作物的總收入,即投入小於產出(通常所說的投入產出比以經濟學原理為單一著眼點,且以種植者的利益為單一準線),這樣才算有利可圖,自己的勞動力價值也得到了體現。然而,由於大量使用農葯,產生了嚴重生態學負效應,而生態惡化和環境污染又是生態環境保護者和政府決策者所需解決的問題。
因此萬年峰等提出了可持續閾值的定義:「當生態環境保護者、政府決策者與種植經營者的利益持平時,種植者通過使用農葯及各種管理手段所挽回的經濟損失與作物管理手段的經濟消耗和農葯區域污染所引起的生態學負效應,折算成經濟損失的貨幣表現相等時的特定時空內栽培作物遭受的害蟲密度」。與經濟閾值的特徵比較,可持續閾值主要表現在其學科思想是經濟學、生態環境學和生態哲學,注意到任何手段、措施作用的對象都是社會一經濟一生態復合系統;決策目標是農林業可持續發展,人與自然的和諧發展,而不只是「就有害生物論和有害生物」;決策對象綜觀整個農林生態系統,甚至全球系統,關注生態學負效應評價,而不只是控制有害生物;決策主體是科研人員、種植經營者、政府決策者,需要的是各部門、單位的分工協作,而不只是科研人員的「獨立舞台」;評價手段趨向於定性、定量且多元化;研究方法從局部控制到區域調控,從近期考慮到長期決策、系統決策;收益對象是種植經營者、環保人士和政府決策者三方。
『伍』 求數電模電單片機模擬軟體 QQ359566900
Multisim10.0支持單片機模擬!我不支持使用,不好用!!單片機模擬用Proteus其程序的編譯用K eil.模數坊真用Multisim10.0模擬較好!!當然!!Proteus也可以!1
『陸』 k'eil在哪兒查看編譯後的警告信息
VS2008菜單 project --> xxx(工程名) Properties... 進去以後 configuration properties --> c/c++ --> advanced disable specific warnings欄填入警告的編號,sprintf好像是4996。 如果要屏蔽多個警告,就把它們編號用逗號分隔~
『柒』 keil5多大
因為KEIL是可以裝在一起的,我裝了KEIL2,KEIL3,KEIL4,對應的核心包括了C51和C251,目前總共大小是162M
_eil C51是美國Keil Software公司出品的51系列兼容單片機C語言軟體開發系統,與匯編相比,C語言在功能上、結構性、可讀性、可維護性上有明顯的優勢,因而易學易用。Keil提供了包括C編譯器、宏匯編、鏈接器、庫管理和一個功能強大的模擬調試器等在內的完整開發方案,通過一個集成開發環境(μVision)將這些部分組合在一起。運行Keil軟體需要WIN98、NT、WIN2000、WINXP等操作系統。如果你使用C語言編程,那麼Keil幾乎就是你的不二之選,即使不使用C語言而僅用匯編語言編程,其方便易用的集成環境、強大的軟體模擬調試工具也會令你事半功倍。
『捌』 VS 2010中,除了注釋,沒有沒專門的功能讓一段代碼暫時無效~
你好:) 使用「條件編譯」 //#define TEST //定義一個調試的條件編譯變數 using System; using System.Collections.Generic; using System.Data.Entity; using System.Linq; using System.Data; using System.Threading; using System.Data.Objects; using System.IO; using System.Xml.Linq; using System.Xml; namespace TestBed { public class MainTest { public static void Main() { #if TEST DataTable dt = new DataTable(); dt.Columns.Add("id", typeof(string)); dt.Columns.Add("asgn_id", typeof(string)); dt.Rows.Add("206347", "1430EH"); dt.Rows.Add("206350", "1430EH"); dt.Rows.Add("206366", "1430EH"); DataTable dt2 = new DataTable(); dt2.Columns.Add("man", typeof(string)); dt2.Columns.Add("unit", typeof(string)); dt2.Columns.Add("job_id", typeof(string)); dt2.Rows.Add("Cortez Peter A","573","206347"); dt2.Rows.Add("Dobrik Mark J","573", "206350"); dt2.Rows.Add("Eilken Russell S","573", "206366"); var result = from e in dt.AsEnumerable() group e by e["asgn_id"].ToString() into temp select new { AsgnId = temp.Key, Workers = from d in temp join f in dt2.AsEnumerable() on d["id"].ToString() equals f["job_id"].ToString() select new { Name = f["man"].ToString(), Unit = f["unit"].ToString() } }; XmlDocument doc = new XmlDocument(); XmlElement root = doc.CreateElement("root"); doc.AppendChild(root); foreach (var item in result) { XmlElement ele = doc.CreateElement("job"); XmlAttribute attr1 = doc.CreateAttribute("asgn_id"); attr1.Value = item.AsgnId; XmlAttribute attr2 = doc.CreateAttribute("unit"); attr2.Value = item.Workers.First().Unit; ele.Attributes.Append(attr1); ele.Attributes.Append(attr2); foreach (var worker in item.Workers) { XmlElement w = doc.CreateElement("crew"); XmlAttribute attr = doc.CreateAttribute("man"); attr.Value = worker.Name; w.Attributes.Append(attr); ele.AppendChild(w); } root.AppendChild(ele); } doc.Save("C:\\try.xml"); Console.WriteLine("OK"); } #endif } } } 注意:我把#define這部分注釋掉,那麼整個一段代碼就無法執行(因為#if Test的Test沒有定義過))。結論:你可以使用「#if XXX「來框住所需要的代碼。然後注釋掉#define XXX的部分,這樣凡是在框中的代碼都不執行。請自行比較結果。另外(點擊, http://msdn.microsoft.com/zh-cn/library/4y6tbswk.aspx ,參考)。
『玖』 易語言編譯錯誤,求解
代碼從加入圖片以後都是錯的、加入圖片(如果這里是圖片組,這里應該是整數型數據你寫的是個子節集)另外這種編程問題沒分不會有多少人會告訴你的/流汗