麻烦C++高手帮忙注释一下程序,小妹我程序白痴,看不懂啊看不懂~谢谢各位高手了~

voidant::move(){srand(time(NULL));QList<double*>decision_table;doublesum=0;for(inti=0... void ant::move()
{
srand(time(NULL));
QList<double *> decision_table;
double sum = 0;
for(int i = 0; i < current_city->connections.size(); i++)
{
double *z = new double;
*z = pow((current_city->connections[i]->pheromon), alpha)*1000;
double u = pow((1.0/current_city->connections[i]->length), beta)*1000;
*z *= u;
if(visited_cities.indexOf(current_city->connections[i]->connects_to->city_number) >= 0) *z =0;
if(current_city->connections[i]->length == -1) *z = 0;
decision_table << z;
sum += *z;
}
if (sum == 0) return;
for(int i = 0; i < decision_table.size(); i++)
*(decision_table[i]) /= sum;

int zzz = rand() % 100;
double prob = zzz/100.0;
int i = 0;
double a = 0.00001;
for (i = 0; i < decision_table.size(); i++)
{
a += *(decision_table[i]);
if (a > prob) break;
}
travelled += current_city->connections[i]->length;
current_city = current_city->connections[i]->connects_to;
visited_cities << current_city->city_number;
decision_table.clear();
}
展开
 我来答
tlgj2007
2011-05-05 · TA获得超过202个赞
知道小有建树答主
回答量:403
采纳率:0%
帮助的人:201万
展开全部
就喜欢帮女生,不懂还搞这么深的东东。
void ant::move()
{
srand(time(NULL)); //利用时间产生随机数
QList<double *> decision_table; //定义一个指针数组
double sum = 0;
for(int i = 0; i < current_city->connections.size(); i++) //当 i 小于
//current_city->connections.size()数值就执行如下
{
//定义个指针,*z值为 pow((current_city->connections[i]->pheromon), alpha)*1000
//pow函数。。。。当前连接城市信息表??。
double *z = new double;
*z = pow((current_city->connections[i]->pheromon), alpha)*1000;
////再定义一个DOUBLE变量U,对*z赋值, 等于 *z 乘与U
double u = pow((1.0/current_city->connections[i]->length), beta)*1000;
*z *= u;
//如果访问城市的系数是大于0。 *z =0;
if(visited_cities.indexOf(current_city->connections[i]->connects_to->city_number) >= 0)
*z =0;
//如果没有当前城市连接数, *z =0;
if(current_city->connections[i]->length == -1) *z = 0;
decision_table << z;
sum += *z;
}
........................
追问
大哥你好热心呀,我也不想搞这种东西呀,自己没学过计算机,可是老师说必须做,所以没有办法呀。谢谢你!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
路图元
2011-05-05 · TA获得超过255个赞
知道小有建树答主
回答量:368
采纳率:0%
帮助的人:271万
展开全部
这个,最好把全部代码贴出来~
追问
全部程序挺多的,不知道能不能发给您,帮我看看?
追答
可以,发到邮箱就行249467834@qq.com
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2011-05-06
展开全部
你要的是这个吧
1.
#include<iostream>
using namespace std;
//1)下面是一个计算器类的定义,请完成该类成员函数的实现.
class counter
{
public:
counter(int number);
void increment(); //给原值加1
void decrement(); //给原值减1
int getvalue(); //取得计数器值
int print(); //显示计数
private:
int value;
};

//成员函数的实现
counter::counter(int number)
{
value=number;
}

void counter::increment() //给原值加1
{
value++;
}

void counter::decrement() //给原值减1
{
value--;
}

int counter::getvalue() //取得计数器值
{
return value;
}

int counter::print() //显示计数
{
cout<<"The value is:"<<value<<endl;
return 0;
}
//测试程序
int main()
{
counter c(10);
c.print ();
c.decrement ();
c.print ();
c.increment ();
c.print ();
return 0;
}

2.
#include<iostream.h>
//(2)根据注释语句的提示,实现类date的成员函数
class date
{
public:
void printDate(); //显示日期
void setDay(int d); //设置日的值
void setMonth(int m); //设置月的值
void setYear(int y); //设置年的值
private:
int day,month,year;
};

//date类成员函数的实现
void date::printDate() //显示日期
{
cout<<year<<" 年 "<<month<<" 月 "<<day<<" 日 "<<endl;
}

void date::setDay(int d) //设置日的值
{
day=d;
}

void date::setMonth(int m) //设置月的值
{
month=m;
}

void date::setYear (int y) //设置年的值
{
year=y;
}
//主程序
void main()
{
date testDay;
testDay.setDay(5);
testDay.setMonth(10);
testDay.setYear(2003);
testDay.printDate();
}
另外,团IDC网上有许多产品团购,便宜有口碑
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式