麻烦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();
} 展开
{
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();
} 展开
3个回答
展开全部
就喜欢帮女生,不懂还搞这么深的东东。
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;
}
........................
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;
}
........................
追问
大哥你好热心呀,我也不想搞这种东西呀,自己没学过计算机,可是老师说必须做,所以没有办法呀。谢谢你!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这个,最好把全部代码贴出来~
追问
全部程序挺多的,不知道能不能发给您,帮我看看?
追答
可以,发到邮箱就行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.
#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网上有许多产品团购,便宜有口碑
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询