﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>C++博客-syqxidian</title><link>http://www.cppblog.com/syqxidian/</link><description>计算机学家+数学家</description><language>zh-cn</language><lastBuildDate>Fri, 03 Apr 2026 21:06:37 GMT</lastBuildDate><pubDate>Fri, 03 Apr 2026 21:06:37 GMT</pubDate><ttl>60</ttl><item><title>NO.2 指针的迷茫与混乱</title><link>http://www.cppblog.com/syqxidian/archive/2010/03/31/111128.html</link><dc:creator>苹果西瓜</dc:creator><author>苹果西瓜</author><pubDate>Wed, 31 Mar 2010 03:06:00 GMT</pubDate><guid>http://www.cppblog.com/syqxidian/archive/2010/03/31/111128.html</guid><wfw:comment>http://www.cppblog.com/syqxidian/comments/111128.html</wfw:comment><comments>http://www.cppblog.com/syqxidian/archive/2010/03/31/111128.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/syqxidian/comments/commentRss/111128.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/syqxidian/services/trackbacks/111128.html</trackback:ping><description><![CDATA[<span style="font-weight: bold; color: #101010;">number1：</span><br>输入10个整数，将其中最小的数与第一个数对换，最大的数与最后一个数对换。写3个函数：（1）输入10个数；（2）进行处理；（3）输出10个数。<br>#include&lt;iostream&gt;<br>using namespace std;<br>int min=0,max=0;<br>int m,p;<br><br>void Input(int arry[],int n)<br>{<br>&nbsp;&nbsp;&nbsp; for(int i=0;i&lt;n;i++)<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; cin&gt;&gt;arry[i];<br><br>}<br>/*void Cmp(int arry[],int n)<br>{<br>&nbsp;&nbsp;&nbsp; int *max,*min,*p,*arry_end;<br>&nbsp;&nbsp;&nbsp; arry_end=arry+10;<br>&nbsp;&nbsp;&nbsp; max=min=arry;<br>&nbsp;&nbsp;&nbsp; for(p=arry+1;p&lt;arry_end;p++)<br>&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; if(*p&gt;*max) max=p;<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; else if(*p&lt;*min) min=p;<br>&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; *p=arry[0];<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; arry[0]=*min;<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; *min=*p;<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; *p=arry[n-1];<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; arry[n-1]=*max;<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; *max=*p;<br><br>&nbsp;&nbsp;&nbsp; <br>}*/<br>void Cmp(int arry[],int n)<br>{<br>&nbsp;&nbsp;&nbsp; int min=max=arry[0];<br>&nbsp;&nbsp;&nbsp; int m=p=0;<br>&nbsp;&nbsp;&nbsp; int t1,t2;<br>&nbsp;&nbsp;&nbsp; for(int i=1;i&lt;n;i++)<br>&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; if(arry[i]&lt;min) <br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; min=arry[i];<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; m=i;<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; else if(arry[i]&gt;max) <br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; max=arry[i];<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; p=i;<br>&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp; t1=arry[0];<br>&nbsp;&nbsp;&nbsp; arry[0]=arry[m];<br>&nbsp;&nbsp;&nbsp; arry[m]=t1;<br>&nbsp;&nbsp;&nbsp; t2=arry[n-1];<br>&nbsp;&nbsp;&nbsp; arry[n-1]=arry[p];<br>&nbsp;&nbsp;&nbsp; arry[p]=t2;<br>&nbsp;&nbsp;&nbsp; for(int j=0;j&lt;10;j++)<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; cout&lt;&lt;arry[j]&lt;&lt;endl;<br>&nbsp;&nbsp;&nbsp; <br>}<br>void Output(int arry[],int n)<br>{<br>//&nbsp;&nbsp;&nbsp; int *p=arry;<br>&nbsp;&nbsp;&nbsp; for(int j=0;j&lt;n;j++)<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; cout&lt;&lt;arry[j]&lt;&lt;endl;<br>//&nbsp;&nbsp;&nbsp; for(;p&lt;=arry+n-1;p++)<br>//&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; cout&lt;&lt;*p&lt;&lt;endl;<br>}<br>int main()<br>{<br>&nbsp;&nbsp;&nbsp; int a[10];<br>&nbsp;&nbsp;&nbsp; Input(a,10);<br>&nbsp;&nbsp;&nbsp; Cmp(a,10);<br>Output(a,10);<br>//&nbsp;&nbsp;&nbsp; for(int j=0;j&lt;10;j++)<br>//&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; cout&lt;&lt;a[j]&lt;&lt;endl;<br><br>&nbsp;&nbsp;&nbsp; return 0;<br>}<br>第一个Cmp函数可以完成过程（2），而第二个Cmp函数会报错：（<span style="color: #009825;">没明白问题出在哪里</span>）<br>E:\program\test\test1.cpp(59) : error C2601: 'Output' : local function definitions are illegal<br>E:\program\test\test1.cpp(67) : error C2601: 'main' : local function definitions are illegal<br>E:\program\test\test1.cpp(79) : fatal error C1004: unexpected end of file found<br><span style="color: #ff0000;">注</span>：1）当用数组名作参数时，如果形参数组中各元素的值发生变化，实参数组元素的值随之变化；<br>&nbsp;&nbsp;&nbsp; 2）调用函数不可能改变实参指针变量的值，但可以改变实参指针变量所指变量的值；<br><span style="font-weight: bold;">number2</span><br>输入3个字符串，按由小到大的顺序输出。<br><span style="font-weight: bold;">number3</span><br>现在水平对字符的操作很混乱<br><span style="font-weight: bold;">number4</span><br>实现从字符串的第m位开始全部复制。<br>void copy(char str[],int m)<br>{<br>&nbsp;&nbsp;&nbsp; cout&lt;&lt;str&lt;&lt;endl;<br>//&nbsp;&nbsp;&nbsp; int i=0;<br>&nbsp;&nbsp;&nbsp; char *s,*s1;<br>&nbsp;&nbsp;&nbsp; char string[N];<br>&nbsp;&nbsp;&nbsp; s=str;<br>&nbsp;&nbsp;&nbsp; s1=string;<br><br>&nbsp;&nbsp;&nbsp; cout&lt;&lt;*s&lt;&lt;endl;<br>&nbsp;&nbsp;&nbsp; while(m-1)<br>&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; s++;<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; m--;<br>&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp; while(*s!='\0')<br>&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; *s1=*s;<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; s++;<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; s1++;<br>&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp; *s1='\0';<br>&nbsp;&nbsp;&nbsp; cout&lt;&lt;string&lt;&lt;endl;<br><br>}<br>在该函数中，首次进行复制采取的是指针s的内容复制给数组string,但最后显示的结果为所需结果之后还有若干字符。（<span style="color: #35a005;">没明白问题出在哪里，感觉这个问题与number1中的Cmp类似</span>）<br><br>  <img src ="http://www.cppblog.com/syqxidian/aggbug/111128.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/syqxidian/" target="_blank">苹果西瓜</a> 2010-03-31 11:06 <a href="http://www.cppblog.com/syqxidian/archive/2010/03/31/111128.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>NO.1  希望一切还来得及</title><link>http://www.cppblog.com/syqxidian/archive/2010/03/24/110459.html</link><dc:creator>苹果西瓜</dc:creator><author>苹果西瓜</author><pubDate>Wed, 24 Mar 2010 09:02:00 GMT</pubDate><guid>http://www.cppblog.com/syqxidian/archive/2010/03/24/110459.html</guid><wfw:comment>http://www.cppblog.com/syqxidian/comments/110459.html</wfw:comment><comments>http://www.cppblog.com/syqxidian/archive/2010/03/24/110459.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/syqxidian/comments/commentRss/110459.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/syqxidian/services/trackbacks/110459.html</trackback:ping><description><![CDATA[&nbsp; 在西电学习生活的第五个年头还有半年就要过去了，终于想明白自己该干点什么，希望还没有晚。<br>&nbsp; 对所有可以走的路都进行了纠结，最后还是决定找工作，一个好的工作才是最现实的，起码现在对我来说，而对我这个专业来说，最重要的就是编程能力，现在开始，提高中...<br>&nbsp; 我的水平究竟有多低我自己都不清楚，从零学起，从C学习，其中觉得难的就是指针，内容很容易混淆，主要还是掌握的不牢，联系巩固中...<br>&nbsp; Come on.<br><br><img src ="http://www.cppblog.com/syqxidian/aggbug/110459.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/syqxidian/" target="_blank">苹果西瓜</a> 2010-03-24 17:02 <a href="http://www.cppblog.com/syqxidian/archive/2010/03/24/110459.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>过程</title><link>http://www.cppblog.com/syqxidian/archive/2009/12/02/102391.html</link><dc:creator>苹果西瓜</dc:creator><author>苹果西瓜</author><pubDate>Wed, 02 Dec 2009 07:37:00 GMT</pubDate><guid>http://www.cppblog.com/syqxidian/archive/2009/12/02/102391.html</guid><wfw:comment>http://www.cppblog.com/syqxidian/comments/102391.html</wfw:comment><comments>http://www.cppblog.com/syqxidian/archive/2009/12/02/102391.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/syqxidian/comments/commentRss/102391.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/syqxidian/services/trackbacks/102391.html</trackback:ping><description><![CDATA[&nbsp; 哈，这个博客被我搁置了太久，可见我没有任何作为，研究生生活依然无聊，只是本科的一个延续而已，学数学和计算机对我来说似乎真的没什么区别，只是用电脑的时间更少了，电脑马上就要完全成为我的娱乐工具了。老师交代的任务还是有关无线传感器网络容错方面的，脑袋里似乎没有什么东西，之前还挣扎的要不要直博，不过觉得还是把研究生毕业证拿到手再说以后做什么吧。老校区的一切都拥挤，城里的人都是这样吧，我搞不懂那后街的泡馍馆的食客在店面门口的人行路上吃的那叫一个香是什么样的心情。<br>&nbsp;我发现，矩阵真的是一个不错的东西，什么都会用到，我之前怎么就没注意呢，呵呵。<br><br><img src ="http://www.cppblog.com/syqxidian/aggbug/102391.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/syqxidian/" target="_blank">苹果西瓜</a> 2009-12-02 15:37 <a href="http://www.cppblog.com/syqxidian/archive/2009/12/02/102391.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>新开始，新希望</title><link>http://www.cppblog.com/syqxidian/archive/2009/08/22/94094.html</link><dc:creator>苹果西瓜</dc:creator><author>苹果西瓜</author><pubDate>Sat, 22 Aug 2009 08:26:00 GMT</pubDate><guid>http://www.cppblog.com/syqxidian/archive/2009/08/22/94094.html</guid><wfw:comment>http://www.cppblog.com/syqxidian/comments/94094.html</wfw:comment><comments>http://www.cppblog.com/syqxidian/archive/2009/08/22/94094.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.cppblog.com/syqxidian/comments/commentRss/94094.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/syqxidian/services/trackbacks/94094.html</trackback:ping><description><![CDATA[&nbsp; 已经报道一周了，还没有开始上课，研一和大一一样，就是不停地上课。假期一如既往，完全就是用来休息的，害我白千里迢迢运回去那么多书，把箱子都累坏了。虽然还是在本校，但是换了生活环境，老校区与新校区完全不同，吃的用的都要贵，姑姑说是因为没有了大学生补助了。我觉得我的适应能力真的太不好了，特别想我爸爸妈妈，想我家的小黑，不知道我冬天回去她还认识我不。<br>&nbsp; 大学的四年对我来说相当失败，在这里，是一个新的开端，希望自己把握住机会。<br>&nbsp; 为自己找到了一条觉得比较适合自己的路，看这一年的成绩吧，还是，拿成绩说话，如果还像过去一样，那这辈子就完蛋了。<br>&nbsp; 加油！！！<br><br>
<img src ="http://www.cppblog.com/syqxidian/aggbug/94094.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/syqxidian/" target="_blank">苹果西瓜</a> 2009-08-22 16:26 <a href="http://www.cppblog.com/syqxidian/archive/2009/08/22/94094.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>MFC学习之路（二）</title><link>http://www.cppblog.com/syqxidian/archive/2009/06/27/88664.html</link><dc:creator>苹果西瓜</dc:creator><author>苹果西瓜</author><pubDate>Sat, 27 Jun 2009 14:22:00 GMT</pubDate><guid>http://www.cppblog.com/syqxidian/archive/2009/06/27/88664.html</guid><wfw:comment>http://www.cppblog.com/syqxidian/comments/88664.html</wfw:comment><comments>http://www.cppblog.com/syqxidian/archive/2009/06/27/88664.html#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://www.cppblog.com/syqxidian/comments/commentRss/88664.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/syqxidian/services/trackbacks/88664.html</trackback:ping><description><![CDATA[&nbsp; 由于自己水平太洼外加后天懒惰，那本深入浅出只看了20多页，而且那仅有的20多页也就着散伙饭给吃了。<br>&nbsp; 最近收拾东西，发现自己还是老样子，是一个收破烂的，东西多的我自己都崩溃了。<br>&nbsp; 这几天是没指望了，订了30号的票回家，西安能把人热挂了。每天处于湿透状态并且严重影响睡眠。还是得静下心来继续学习。除了学习上这些需要提上日程的，还有一件也比较重要的事，为自己的将来找个伴，这件事也得努力。<br><br><img src ="http://www.cppblog.com/syqxidian/aggbug/88664.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/syqxidian/" target="_blank">苹果西瓜</a> 2009-06-27 22:22 <a href="http://www.cppblog.com/syqxidian/archive/2009/06/27/88664.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>MFC学习之路（一）</title><link>http://www.cppblog.com/syqxidian/archive/2009/06/11/87377.html</link><dc:creator>苹果西瓜</dc:creator><author>苹果西瓜</author><pubDate>Thu, 11 Jun 2009 01:16:00 GMT</pubDate><guid>http://www.cppblog.com/syqxidian/archive/2009/06/11/87377.html</guid><wfw:comment>http://www.cppblog.com/syqxidian/comments/87377.html</wfw:comment><comments>http://www.cppblog.com/syqxidian/archive/2009/06/11/87377.html#Feedback</comments><slash:comments>7</slash:comments><wfw:commentRss>http://www.cppblog.com/syqxidian/comments/commentRss/87377.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/syqxidian/services/trackbacks/87377.html</trackback:ping><description><![CDATA[&nbsp; 那本《深入浅出MFC》买了估计有一年半左右了，但是从未看过。前天下午答辩完了，意味着我的本科阶段的所有工作也就到此结束了。总结起来就是把所有的考试应付过去了，真正自己手里其实没有什么实用东西。毕设阶段的失败是自己的编程能力属于白痴阶段，还有并未进行仿真。马上要去数学系进行研究生阶段的学习了，我似乎是背道而驰，可是，其实在哪里学无所谓，主要是自己学到了什么。觉得自己应该从白痴阶段有所过度了。<br>决定从今天开始学习MFC。首先的任务就是先把《深入浅出》看完，之后的打算是假期要学会一个仿真软件，开始接触了OMNet++,但是觉得自己又是白痴阶段没有进展，想改成NS-2，可是还得从新设置环境之类的，现在决定还是继续OMNet++吧，其实有一个弄明白就成了。<br>&nbsp; 这阶段其实从心里谢谢一个新认识的朋友，他让我有知道了很多，虽说当初认识的时候自己目的不纯，不过感受了一种新的生活，对他主要是好奇。这位朋友对我来说是很强了，签到腾讯工作。想一想，大家一样的环境，差距是这样的悬殊，自己得检讨啊。<br>&nbsp; 离开计算机学院了立志要好好学习编程，这是不是有点白痴，不过，是因为经历的多了，才知道什么对自己才是最重要的。<br><br><img src ="http://www.cppblog.com/syqxidian/aggbug/87377.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/syqxidian/" target="_blank">苹果西瓜</a> 2009-06-11 09:16 <a href="http://www.cppblog.com/syqxidian/archive/2009/06/11/87377.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>蚂蚁算法</title><link>http://www.cppblog.com/syqxidian/archive/2009/05/14/82984.html</link><dc:creator>苹果西瓜</dc:creator><author>苹果西瓜</author><pubDate>Thu, 14 May 2009 11:57:00 GMT</pubDate><guid>http://www.cppblog.com/syqxidian/archive/2009/05/14/82984.html</guid><wfw:comment>http://www.cppblog.com/syqxidian/comments/82984.html</wfw:comment><comments>http://www.cppblog.com/syqxidian/archive/2009/05/14/82984.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/syqxidian/comments/commentRss/82984.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/syqxidian/services/trackbacks/82984.html</trackback:ping><description><![CDATA[&nbsp; 最近由于毕设在研究OMNet++,一头雾水，主要过去学习不认真，现在发现不但新知识学习的乱七八糟，主要是过去的东西也乱七八糟，所以学习和人生都是一个慢慢积累慢慢丰富的过程。<br>&nbsp; 发现了个蚂蚁算法，相关内容附上，做个笔记。<br>蚁群算法(ant colony optimization, ACO)，又称蚂蚁算法，是一种用来在图中寻找优化路径的机率型技术。它由Marco Dorigo于1992年在他的博士论文中引入，其灵感来源于蚂蚁在寻找食物过程中发现路径的行为。<br>
为什么小小的蚂蚁能够找到食物？他们具有智能么？设想，如果我们要为蚂蚁设计一个人工智能的程
序，那么这个程序要多么复杂呢？首先，你要让蚂蚁能够避开障碍物，就必须根据适当的地形给它编进指令让他们能够巧妙的避开障碍物，其次，要让蚂蚁找到食
物，就需要让他们遍历空间上的所有点；再次，如果要让蚂蚁找到最短的路径，那么需要计算所有可能的路径并且比较它们的大小，而且更重要的是，你要小心翼翼
的编程，因为程序的错误也许会让你前功尽弃。这是多么不可思议的程序！太复杂了，恐怕没人能够完成这样繁琐冗余的程序。<br>
然而，事实并没有你想得那么复杂，上面这个程序每个蚂蚁的核心程序编码不过100多行！为什么
这么简单的程序会让蚂蚁干这样复杂的事情？答案是：简单规则的涌现。事实上，每只蚂蚁并不是像我们想象的需要知道整个世界的信息，他们其实只关心很小范围
内的眼前信息，而且根据这些局部信息利用几条简单的规则进行决策，这样，在蚁群这个集体里，复杂性的行为就会凸现出来。这就是人工生命、复杂性科学解释的
规律！那么，这些简单规则是什么呢？下面详细说明：<br>
1、范围：<br>
蚂蚁观察到的范围是一个方格世界，蚂蚁有一个参数为速度半径（一般是3），那么它能观察到的范围就是3*3个方格世界，并且能移动的距离也在这个范围之内。<br>
2、环境：<br>
蚂蚁所在的环境是一个虚拟的世界，其中有障碍物，有别的蚂蚁，还有信息素，信息素有两种，一种是找到食物的蚂蚁洒下的食物信息素，一种是找到窝的蚂蚁洒下的窝的信息素。每个蚂蚁都仅仅能感知它范围内的环境信息。环境以一定的速率让信息素消失。<br>
3、觅食规则：<br>
在每只蚂蚁能感知的范围内寻找是否有食物，如果有就直接过去。否则看是否有信息素，并且比较在
能感知的范围内哪一点的信息素最多，这样，它就朝信息素多的地方走，并且每只蚂蚁多会以小概率犯错误，从而并不是往信息素最多的点移动。蚂蚁找窝的规则和
上面一样，只不过它对窝的信息素做出反应，而对食物信息素没反应。<br>
4、移动规则： <br>
每只蚂蚁都朝向信息素最多的方向移，并且，当周围没有信息素指引的时候，蚂蚁会按照自己原来运
动的方向惯性的运动下去，并且，在运动的方向有一个随机的小的扰动。为了防止蚂蚁原地转圈，它会记住最近刚走过了哪些点，如果发现要走的下一点已经在最近
走过了，它就会尽量避开。<br>
5、避障规则：<br>
如果蚂蚁要移动的方向有障碍物挡住，它会随机的选择另一个方向，并且有信息素指引的话，它会按照觅食的规则行为。 <br>
7、播撒信息素规则：<br>
每只蚂蚁在刚找到食物或者窝的时候撒发的信息素最多，并随着它走远的距离，播撒的信息素越来越少。<br>
根据这几条规则，蚂蚁之间并没有直接的关系，但是每只蚂蚁都和环境发生交互，而通过信息素这个
纽带，实际上把各个蚂蚁之间关联起来了。比如，当一只蚂蚁找到了食物，它并没有直接告诉其它蚂蚁这儿有食物，而是向环境播撒信息素，当其它的蚂蚁经过它附
近的时候，就会感觉到信息素的存在，进而根据信息素的指引找到了食物。<br>
说了这么多，蚂蚁究竟是怎么找到食物的呢？<br>
在没有蚂蚁找到食物的时候，环境没有有用的信息素，那么蚂蚁为什么会相对有效的找到食物呢？这
要归功于蚂蚁的移动规则，尤其是在没有信息素时候的移动规则。首先，它要能尽量保持某种惯性，这样使得蚂蚁尽量向前方移动（开始，这个前方是随机固定的一
个方向），而不是原地无谓的打转或者震动；其次，蚂蚁要有一定的随机性，虽然有了固定的方向，但它也不能像粒子一样直线运动下去，而是有一个随机的干扰。
这样就使得蚂蚁运动起来具有了一定的目的性，尽量保持原来的方向，但又有新的试探，尤其当碰到障碍物的时候它会立即改变方向，这可以看成一种选择的过程，
也就是环境的障碍物让蚂蚁的某个方向正确，而其他方向则不对。这就解释了为什么单个蚂蚁在复杂的诸如迷宫的地图中仍然能找到隐蔽得很好的食物。<br>
当然，在有一只蚂蚁找到了食物的时候，其他蚂蚁会沿着信息素很快找到食物的。<br>
蚂蚁如何找到最短路径的？这一是要归功于信息素，另外要归功于环境，具体说是计算机时钟。信息
素多的地方显然经过这里的蚂蚁会多，因而会有更多的蚂蚁聚集过来。假设有两条路从窝通向食物，开始的时候，走这两条路的蚂蚁数量同样多（或者较长的路上蚂
蚁多，这也无关紧要）。当蚂蚁沿着一条路到达终点以后会马上返回来，这样，短的路蚂蚁来回一次的时间就短，这也意味着重复的频率就快，因而在单位时间里走
过的蚂蚁数目就多，洒下的信息素自然也会多，自然会有更多的蚂蚁被吸引过来，从而洒下更多的信息素&#8230;&#8230;；而长的路正相反，因此，越来越多地蚂蚁聚集到较短
的路径上来，最短的路径就近似找到了。也许有人会问局部最短路径和全局最短路的问题，实际上蚂蚁逐渐接近全局最短路的，为什么呢？这源于蚂蚁会犯错误，也
就是它会按照一定的概率不往信息素高的地方走而另辟蹊径，这可以理解为一种创新，这种创新如果能缩短路途，那么根据刚才叙述的原理，更多的蚂蚁会被吸引过
来。<br>
引申:<br>
跟着蚂蚁的踪迹，你找到了什么？通过上面的原理叙述和实际操作，我们不难发现蚂蚁之所以具有智能行为，完全归功于它的简单行为规则，而这些规则综合起来具有下面两个方面的特点：<br>
1、多样性<br>
2、正反馈<br>
多样性保证了蚂蚁在觅食的时候不置走进死胡同而无限循环，正反馈机制则保证了相对优良的信息能
够被保存下来。我们可以把多样性看成是一种创造能力，而正反馈是一种学习强化能力。正反馈的力量也可以比喻成权威的意见，而多样性是打破权威体现的创造
性，正是这两点小心翼翼的巧妙结合才使得智能行为涌现出来了。<br>
引申来讲，大自然的进化，社会的进步、人类的创新实际上都离不开这两样东西，多样性保证了系统
的创新能力，正反馈保证了优良特性能够得到强化，两者要恰到好处的结合。如果多样性过剩，也就是系统过于活跃，这相当于蚂蚁会过多的随机运动，它就会陷入
混沌状态；而相反，多样性不够，正反馈机制过强，那么系统就好比一潭死水。这在蚁群中来讲就表现为，蚂蚁的行为过于僵硬，当环境变化了，蚂蚁群仍然不能适
当的调整。<br>
既然复杂性、智能行为是根据底层规则涌现的，既然底层规则具有多样性和正反馈特点，那么也许你
会问这些规则是哪里来的？多样性和正反馈又是哪里来的？我本人的意见：规则来源于大自然的进化。而大自然的进化根据刚才讲的也体现为多样性和正反馈的巧妙
结合。而这样的巧妙结合又是为什么呢？为什么在你眼前呈现的世界是如此栩栩如生呢？答案在于环境造就了这一切，之所以你看到栩栩如生的世界，是因为那些不
能够适应环境的多样性与正反馈的结合都已经死掉了，被环境淘汰了！<br>
参数说明：<br>
最大信息素：蚂蚁在一开始拥有的信息素总量，越大表示程序在较长一段时间能够存在信息素。信息素消减的速度：随着时间的流逝，已经存在于世界上的信息素会消减，这个数值越大，那么消减的越快。<br>
错误概率表示这个蚂蚁不往信息素最大的区域走的概率，越大则表示这个蚂蚁越有创新性。<br>
速度半径表示蚂蚁一次能走的最大长度，也表示这个蚂蚁的感知范围。<br>
记忆能力表示蚂蚁能记住多少个刚刚走过点的坐标，这个值避免了蚂蚁在本地打转，停滞不前。而这个值越大那么整个系统运行速度就慢，越小则蚂蚁越容易原地转圈。<br>
-----例子-----<br>
&lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML
1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&gt;<br>
&lt;html xmlns="http://www.w3.org/1999/xhtml"&gt;&lt;HEAD&gt;<br>
&lt;meta http-equiv="Content-Type" content="text/html; charset=gb2312" /&gt;<br>
&lt;title&gt;蚁群算法js版&lt;/title&gt;<br>
&lt;style&gt;<br>
.ant{<br>
position:absolute;<br>
background-color:#000000;<br>
overflow:hidden;<br>
width:2px;<br>
height:2px;<br>
}<br>
.food{<br>
position:absolute;<br>
background-color:#0000ff;<br>
overflow:hidden;<br>
width:2px;<br>
height:2px;<br>
}<br>
.nest{<br>
position:absolute;<br>
background-color:#ff0000;<br>
overflow:hidden;<br>
width:2px;<br>
height:2px;<br>
}<br>
&lt;/style&gt;<br>
&lt;script type="text/JavaScript"&gt;<br>
//============================<br>
//系统参数初始化<br>
//----------------------------<br>
//生命体数量与轨迹长度<br>
Unit=10;Path=30;<br>
//生命体速度上下限<br>
v0=2;vM=10;<br>
//生命体加速度变化范围<br>
Kr=0.1;Kv=0.1*(vM-v0);<br>
//生命体运动范围<br>
x0=0;xM=document.documentElement.clientWidth;<br>
y0=0;yM=document.documentElement.clientHeight;<br>
//生命体出生地(巢穴)<br>
xi0=x0+(xM-x0)*Math.random();<br>
yi0=y0+(yM-y0)*Math.random();<br>
str0='&lt;div class="ant" style="left:'+xi0+';top:'+yi0+';"&gt;&lt;/div&gt;';<br>
//食物所在地<br>
xf=x0+(xM-x0)*Math.random();<br>
yf=y0+(yM-y0)*Math.random();<br>
//气味感知范围<br>
R_2=5*5;<br>
//============================<br>
var r=new Array();<br>
var v=new Array();<br>
var dr=new Array();<br>
var dv=new Array();<br>
var x=new Array();<br>
var y=new Array();<br>
var life=new Array();<br>
//单击暂停<br>
var xi0,yi0,xf,yf;<br>
var Time0,str0;<br>
window.status='pause';<br>
function document.onclick(){<br>
&nbsp; &nbsp; &nbsp; &nbsp; if(window.status=='pause'){<br>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; window.status=0;<br>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; nest.style.left=xi0;<br>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; nest.style.top=yi0;<br>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; food.style.left=xf;<br>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; food.style.top=yf;<br>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; //测试初始化时间用<br>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Time0=(new Date()).getTime();<br>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; init(0);<br>
&nbsp; &nbsp; &nbsp; &nbsp; }else{<br>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; window.status='pause';<br>
&nbsp; &nbsp; &nbsp; &nbsp; }<br>
}<br>
//窗口大小调整后刷新页面以调整系统参数<br>
function window.onresize(){<br>
//&nbsp; &nbsp; &nbsp; &nbsp; window.location.href=document.location;<br>
}<br>
//初始化函数<br>
function init(i){<br>
&nbsp; &nbsp; &nbsp; &nbsp; if(window.status!='pause'&amp;&amp;i&lt;Unit){<br>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if(!life<em>){<br>
</em><em>　　&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; document.body.appendChild(life<em>=document.createElement(str0));<br>
</em></em><em><em>　　&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; x<em>=xi0;<br>
</em></em></em><em><em><em>　　&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; y<em>=yi0;<br>
</em></em></em></em><em><em><em><em>　　&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; r<em>=Math.random();<br>
</em></em></em></em></em><em><em><em><em><em>　　&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; v<em>=1/Math.random();<br>
</em></em></em></em></em></em><em><em><em><em><em><em>　　&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; dr<em>=Kr*Math.random();<br>
</em></em></em></em></em></em></em><em><em><em><em><em><em><em>　　&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; dv<em>=Kv*Math.random();<br>
</em></em></em></em></em></em></em></em><em><em><em><em><em><em><em><em>　　&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }<br>
</em></em></em></em></em></em></em></em><em><em><em><em><em><em><em><em>　　&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Move(i);<br>
</em></em></em></em></em></em></em></em><em><em><em><em><em><em><em><em>　　&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; window.status=i+1;<br>
</em></em></em></em></em></em></em></em><em><em><em><em><em><em><em><em>　　&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; setTimeout('init('+(i+1)+')',i);<br>
</em></em></em></em></em></em></em></em><em><em><em><em><em><em><em><em>　　//&nbsp; &nbsp; &nbsp; &nbsp; }else{<br>
</em></em></em></em></em></em></em></em><em><em><em><em><em><em><em><em>　　//&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; alert('生成耗时：'+((new Date()).getTime()-Time0)+'ms');<br>
</em></em></em></em></em></em></em></em><em><em><em><em><em><em><em><em>　　&nbsp; &nbsp; &nbsp; &nbsp; }<br>
</em></em></em></em></em></em></em></em><em><em><em><em><em><em><em><em>　　}<br>
</em></em></em></em></em></em></em></em><em><em><em><em><em><em><em><em>　　//运动函数<br>
</em></em></em></em></em></em></em></em><em><em><em><em><em><em><em><em>　　Total=Unit*Path;<br>
</em></em></em></em></em></em></em></em><em><em><em><em><em><em><em><em>　　P2=2*Math.PI;<br>
</em></em></em></em></em></em></em></em><em><em><em><em><em><em><em><em>　　function Move(i){<br>
</em></em></em></em></em></em></em></em><em><em><em><em><em><em><em><em>　　&nbsp; &nbsp; &nbsp; &nbsp; if(window.status!='pause'){<br>
</em></em></em></em></em></em></em></em><em><em><em><em><em><em><em><em>　　&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; k=i%Unit;<br>
</em></em></em></em></em></em></em></em><em><em><em><em><em><em><em><em>　　&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; X=x[k];<br>
</em></em></em></em></em></em></em></em><em><em><em><em><em><em><em><em>　　&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Y=y[k];<br>
</em></em></em></em></em></em></em></em><em><em><em><em><em><em><em><em>　　&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; R=r[k];<br>
</em></em></em></em></em></em></em></em><em><em><em><em><em><em><em><em>　　&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; V=v[k];&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br>
</em></em></em></em></em></em></em></em><em><em><em><em><em><em><em><em>　　&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if(!life<em>){<br>
</em></em></em></em></em></em></em></em></em><em><em><em><em><em><em><em><em><em>　　&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; str='&lt;div class="ant" style="left:'+X+';top:'+Y+';"&gt;&lt;/div&gt;';<br>
</em></em></em></em></em></em></em></em></em><em><em><em><em><em><em><em><em><em>　　&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; document.body.appendChild(life<em>=document.createElement(str));<br>
</em></em></em></em></em></em></em></em></em></em><em><em><em><em><em><em><em><em><em><em>　　&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }<br>
</em></em></em></em></em></em></em></em></em></em><em><em><em><em><em><em><em><em><em><em>　　&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; obj=life<em>;<br>
</em></em></em></em></em></em></em></em></em></em></em><em><em><em><em><em><em><em><em><em><em><em>　　&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; R+=dr[k]*(2*Math.random()-1);<br>
</em></em></em></em></em></em></em></em></em></em></em><em><em><em><em><em><em><em><em><em><em><em>　　&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; V+=dv[k]*(2*Math.random()-1);<br>
</em></em></em></em></em></em></em></em></em></em></em><em><em><em><em><em><em><em><em><em><em><em>　　&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; X+=Math.sin(P2*R)*V;<br>
</em></em></em></em></em></em></em></em></em></em></em><em><em><em><em><em><em><em><em><em><em><em>　　&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Y+=Math.cos(P2*R)*V;<br>
</em></em></em></em></em></em></em></em></em></em></em><em><em><em><em><em><em><em><em><em><em><em>　　&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; //遇到食物原路返回并减小角度变化<br>
</em></em></em></em></em></em></em></em></em></em></em><em><em><em><em><em><em><em><em><em><em><em>　　&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; distance=(X-xf)*(X-xf)+(Y-yf)*(Y-yf);<br>
</em></em></em></em></em></em></em></em></em></em></em><em><em><em><em><em><em><em><em><em><em><em>　　&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if(distance&lt;R_2){<br>
</em></em></em></em></em></em></em></em></em></em></em><em><em><em><em><em><em><em><em><em><em><em>　　&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; R+=0.5;<br>
</em></em></em></em></em></em></em></em></em></em></em><em><em><em><em><em><em><em><em><em><em><em>　　&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; r<em>/=2;<br>
</em></em></em></em></em></em></em></em></em></em></em></em><em><em><em><em><em><em><em><em><em><em><em><em>　　&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; v<em>*=2;<br>
</em></em></em></em></em></em></em></em></em></em></em></em></em><em><em><em><em><em><em><em><em><em><em><em><em><em>　　&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }<br>
</em></em></em></em></em></em></em></em></em></em></em></em></em><em><em><em><em><em><em><em><em><em><em><em><em><em>　　&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; distance=(X-xi0)*(X-xi0)+(Y-yi0)*(Y-yi0);<br>
</em></em></em></em></em></em></em></em></em></em></em></em></em><em><em><em><em><em><em><em><em><em><em><em><em><em>　　&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if(distance&lt;R_2){<br>
</em></em></em></em></em></em></em></em></em></em></em></em></em><em><em><em><em><em><em><em><em><em><em><em><em><em>　　&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; R+=0.5;<br>
</em></em></em></em></em></em></em></em></em></em></em></em></em><em><em><em><em><em><em><em><em><em><em><em><em><em>　　&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; r<em>/=2;<br>
</em></em></em></em></em></em></em></em></em></em></em></em></em></em><em><em><em><em><em><em><em><em><em><em><em><em><em><em>　　&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; v<em>*=2;<br>
</em></em></em></em></em></em></em></em></em></em></em></em></em></em></em><em><em><em><em><em><em><em><em><em><em><em><em><em><em><em>　　&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }<br>
</em></em></em></em></em></em></em></em></em></em></em></em></em></em></em><em><em><em><em><em><em><em><em><em><em><em><em><em><em><em>　　&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; /*----------------------------------<br>
</em></em></em></em></em></em></em></em></em></em></em></em></em></em></em><em><em><em><em><em><em><em><em><em><em><em><em><em><em><em>　　&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; /*================================*/<br>
</em></em></em></em></em></em></em></em></em></em></em></em></em></em></em><em><em><em><em><em><em><em><em><em><em><em><em><em><em><em>　　&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; //碰撞边界反弹<br>
</em></em></em></em></em></em></em></em></em></em></em></em></em></em></em><em><em><em><em><em><em><em><em><em><em><em><em><em><em><em>　　&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; R=(X&lt;x0||X&gt;xM)?-R:R;<br>
</em></em></em></em></em></em></em></em></em></em></em></em></em></em></em><em><em><em><em><em><em><em><em><em><em><em><em><em><em><em>　　&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; R=(Y&lt;y0||Y&gt;yM)?0.5-R:R;<br>
</em></em></em></em></em></em></em></em></em></em></em></em></em></em></em><em><em><em><em><em><em><em><em><em><em><em><em><em><em><em>　　&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; X=x[k]+Math.sin(P2*R)*V;<br>
</em></em></em></em></em></em></em></em></em></em></em></em></em></em></em><em><em><em><em><em><em><em><em><em><em><em><em><em><em><em>　　&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Y=y[k]+Math.cos(P2*R)*V;<br>
</em></em></em></em></em></em></em></em></em></em></em></em></em></em></em><em><em><em><em><em><em><em><em><em><em><em><em><em><em><em>　　&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; /*================================*/<br>
</em></em></em></em></em></em></em></em></em></em></em></em></em></em></em><em><em><em><em><em><em><em><em><em><em><em><em><em><em><em>　　&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; //溢出边界重生(类似流星效果)<br>
</em></em></em></em></em></em></em></em></em></em></em></em></em></em></em><em><em><em><em><em><em><em><em><em><em><em><em><em><em><em>　　&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if(X&lt;x0||X&gt;xM||Y&lt;y0||Y&gt;yM){<br>
</em></em></em></em></em></em></em></em></em></em></em></em></em></em></em><em><em><em><em><em><em><em><em><em><em><em><em><em><em><em>　　&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; X=xi0;<br>
</em></em></em></em></em></em></em></em></em></em></em></em></em></em></em><em><em><em><em><em><em><em><em><em><em><em><em><em><em><em>　　&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Y=yi0;<br>
</em></em></em></em></em></em></em></em></em></em></em></em></em></em></em><em><em><em><em><em><em><em><em><em><em><em><em><em><em><em>　　&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }<br>
</em></em></em></em></em></em></em></em></em></em></em></em></em></em></em><em><em><em><em><em><em><em><em><em><em><em><em><em><em><em>　　&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; /*----------------------------------<br>
</em></em></em></em></em></em></em></em></em></em></em></em></em></em></em><em><em><em><em><em><em><em><em><em><em><em><em><em><em><em>　　&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; /*================================*/<br>
</em></em></em></em></em></em></em></em></em></em></em></em></em></em></em><em><em><em><em><em><em><em><em><em><em><em><em><em><em><em>　　&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; //边界限制<br>
</em></em></em></em></em></em></em></em></em></em></em></em></em></em></em><em><em><em><em><em><em><em><em><em><em><em><em><em><em><em>　　&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; x[k]=X=(X&lt;x0)?x0:(X&gt;xM)?xM-2:X;<br>
</em></em></em></em></em></em></em></em></em></em></em></em></em></em></em><em><em><em><em><em><em><em><em><em><em><em><em><em><em><em>　　&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; y[k]=Y=(Y&lt;y0)?y0:(Y&gt;yM)?yM-2:Y;<br>
</em></em></em></em></em></em></em></em></em></em></em></em></em></em></em><em><em><em><em><em><em><em><em><em><em><em><em><em><em><em>　　&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; r[k]=R&gt;1?R-1:R&lt;0?R+1:R;<br>
</em></em></em></em></em></em></em></em></em></em></em></em></em></em></em><em><em><em><em><em><em><em><em><em><em><em><em><em><em><em>　　&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; v[k]=V=(V&lt;v0)?v0:((V&lt;vM)?V:vM);<br>
</em></em></em></em></em></em></em></em></em></em></em></em></em></em></em><em><em><em><em><em><em><em><em><em><em><em><em><em><em><em>　　&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; /*================================*/<br>
</em></em></em></em></em></em></em></em></em></em></em></em></em></em></em><em><em><em><em><em><em><em><em><em><em><em><em><em><em><em>　　&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; obj.style.left=x[k]=X;<br>
</em></em></em></em></em></em></em></em></em></em></em></em></em></em></em><em><em><em><em><em><em><em><em><em><em><em><em><em><em><em>　　&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; obj.style.top=y[k]=Y;<br>
</em></em></em></em></em></em></em></em></em></em></em></em></em></em></em><em><em><em><em><em><em><em><em><em><em><em><em><em><em><em>　　&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; setTimeout('Move('+(i+Unit)%Total+')',Unit);<br>
</em></em></em></em></em></em></em></em></em></em></em></em></em></em></em><em><em><em><em><em><em><em><em><em><em><em><em><em><em><em>　　&nbsp; &nbsp; &nbsp; &nbsp; }<br>
</em></em></em></em></em></em></em></em></em></em></em></em></em></em></em><em><em><em><em><em><em><em><em><em><em><em><em><em><em><em>　　}<br>
</em></em></em></em></em></em></em></em></em></em></em></em></em></em></em><em><em><em><em><em><em><em><em><em><em><em><em><em><em><em>　　//根据浏览器自动加载动画<br>
</em></em></em></em></em></em></em></em></em></em></em></em></em></em></em><em><em><em><em><em><em><em><em><em><em><em><em><em><em><em>　　switch(navigator.appName.toLowerCase()){<br>
</em></em></em></em></em></em></em></em></em></em></em></em></em></em></em><em><em><em><em><em><em><em><em><em><em><em><em><em><em><em>　　&nbsp; &nbsp; &nbsp; &nbsp; case "netscape":<br>
</em></em></em></em></em></em></em></em></em></em></em></em></em></em></em><em><em><em><em><em><em><em><em><em><em><em><em><em><em><em>　　&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; window.addEventListener("load",document.onclick,false);<br>
</em></em></em></em></em></em></em></em></em></em></em></em></em></em></em><em><em><em><em><em><em><em><em><em><em><em><em><em><em><em>　　&nbsp; &nbsp; &nbsp; &nbsp; break;<br>
</em></em></em></em></em></em></em></em></em></em></em></em></em></em></em><em><em><em><em><em><em><em><em><em><em><em><em><em><em><em>　　&nbsp; &nbsp; &nbsp; &nbsp; case "microsoft internet explorer":<br>
</em></em></em></em></em></em></em></em></em></em></em></em></em></em></em><em><em><em><em><em><em><em><em><em><em><em><em><em><em><em>　　&nbsp; &nbsp; &nbsp; &nbsp; default:<br>
</em></em></em></em></em></em></em></em></em></em></em></em></em></em></em><em><em><em><em><em><em><em><em><em><em><em><em><em><em><em>　　&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; window.attachEvent("onload",document.onclick);<br>
</em></em></em></em></em></em></em></em></em></em></em></em></em></em></em><em><em><em><em><em><em><em><em><em><em><em><em><em><em><em>　　&nbsp; &nbsp; &nbsp; &nbsp; break;<br>
</em></em></em></em></em></em></em></em></em></em></em></em></em></em></em><em><em><em><em><em><em><em><em><em><em><em><em><em><em><em>　　}<br>
</em></em></em></em></em></em></em></em></em></em></em></em></em></em></em><em><em><em><em><em><em><em><em><em><em><em><em><em><em><em>　　&lt;/script&gt;<br>
</em></em></em></em></em></em></em></em></em></em></em></em></em></em></em><em><em><em><em><em><em><em><em><em><em><em><em><em><em><em>　　&lt;/head&gt;<br>
</em></em></em></em></em></em></em></em></em></em></em></em></em></em></em><em><em><em><em><em><em><em><em><em><em><em><em><em><em><em>　　&lt;body scroll="no"&gt;<br>
</em></em></em></em></em></em></em></em></em></em></em></em></em></em></em><em><em><em><em><em><em><em><em><em><em><em><em><em><em><em>　　&lt;div id="food" class="food"&gt;&lt;/div&gt;<br>
</em></em></em></em></em></em></em></em></em></em></em></em></em></em></em><em><em><em><em><em><em><em><em><em><em><em><em><em><em><em>　　&lt;div id="nest" class="nest"&gt;&lt;/div&gt;<br>
</em></em></em></em></em></em></em></em></em></em></em></em></em></em></em><em><em><em><em><em><em><em><em><em><em><em><em><em><em><em>　　&lt;/body&gt;<br>
</em></em></em></em></em></em></em></em></em></em></em></em></em></em></em><em><em><em><em><em><em><em><em><em><em><em><em><em><em><em>　　&lt;/html&gt;<br><br><br><br><br><br><br><br></em></em></em></em></em></em></em></em></em></em></em></em></em></em></em><br><br><img src ="http://www.cppblog.com/syqxidian/aggbug/82984.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/syqxidian/" target="_blank">苹果西瓜</a> 2009-05-14 19:57 <a href="http://www.cppblog.com/syqxidian/archive/2009/05/14/82984.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>总结（一）</title><link>http://www.cppblog.com/syqxidian/archive/2009/05/13/82874.html</link><dc:creator>苹果西瓜</dc:creator><author>苹果西瓜</author><pubDate>Wed, 13 May 2009 13:32:00 GMT</pubDate><guid>http://www.cppblog.com/syqxidian/archive/2009/05/13/82874.html</guid><wfw:comment>http://www.cppblog.com/syqxidian/comments/82874.html</wfw:comment><comments>http://www.cppblog.com/syqxidian/archive/2009/05/13/82874.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/syqxidian/comments/commentRss/82874.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/syqxidian/services/trackbacks/82874.html</trackback:ping><description><![CDATA[&nbsp;&nbsp; 本学期以来有两个活，开始的事准备复试加毕设，然后复试在四月中偏点下旬结束了。然后就是毕设的问题。我一直以来都很迷茫，每天除了讨厌的文献要看之外，还有什么活可以干，终于在上周五与老师的见面中，我可以实现一下ad hoc网络的比较故障诊断方法，高兴的又休息了好几天，然后发现自己对于OMNet++不但一点不会，学习的也很是费劲，而且自己的C++水平实在不敢恭维。晚上在床上一想，自己什么也做不出来，有辱在计算机学院待了四年。<br>&nbsp; 接下来的任务就是把毕设完成，然后学习《c++primer》和《深入浅出MFC》<br><br><br><img src ="http://www.cppblog.com/syqxidian/aggbug/82874.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/syqxidian/" target="_blank">苹果西瓜</a> 2009-05-13 21:32 <a href="http://www.cppblog.com/syqxidian/archive/2009/05/13/82874.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>布尔数学体系</title><link>http://www.cppblog.com/syqxidian/archive/2009/05/12/82657.html</link><dc:creator>苹果西瓜</dc:creator><author>苹果西瓜</author><pubDate>Tue, 12 May 2009 01:42:00 GMT</pubDate><guid>http://www.cppblog.com/syqxidian/archive/2009/05/12/82657.html</guid><wfw:comment>http://www.cppblog.com/syqxidian/comments/82657.html</wfw:comment><comments>http://www.cppblog.com/syqxidian/archive/2009/05/12/82657.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/syqxidian/comments/commentRss/82657.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/syqxidian/services/trackbacks/82657.html</trackback:ping><description><![CDATA[　逻辑是探索、阐述和确立有效推理原则的学科，最早由<a target="_blank" href="http://baike.baidu.com/view/64778.htm">古希腊</a>学者<a target="_blank" href="http://baike.baidu.com/view/4482.htm">亚里士多德</a>创建的。用数学的方法研究关于推理、证明等问题的学科就叫做数理逻辑。也叫做符号逻辑。<br>
数理逻辑的产生<br>
利用计算的方法来代替人们思维中的逻辑推理过程，这种想法早在十七世纪就有人提出过。莱布尼茨
就曾经设想过能不能创造一种&#8220;通用的科学语言&#8221;，可以把推理过程象数学一样利用公式来进行计算，从而得出正确的结论。由于当时的社会条件，他的想法并没有
实现。但是它的思想却是现代数理逻辑部分内容的萌芽，从这个意义上讲，莱布尼茨的思想可以说是数理逻辑的先驱。<br>
1847年，英国数学家布尔发表了《逻辑的数学分析》，建立了&#8220;布尔代数&#8221;，并创造一套符号系统，利用符号来表示逻辑中的各种概念。布尔建立了一系列的运算法则，利用代数的方法研究逻辑问题，初步奠定了数理逻辑的基础。<br>
十九世纪末二十世纪初，数理逻辑有了比较大的发展，1884年，德国数学家弗雷格出版了《数论
的基础》一书，在书中引入量词的符号，使得数理逻辑的符号系统更加完备。对建立这门学科做出贡献的，还有美国人皮尔斯，他也在著作中引入了逻辑符号。从而
使现代数理逻辑最基本的理论基础逐步形成，成为一门独立的学科。<br>
数理逻辑的内容<br>
数理逻辑包括哪些内容呢？这里我们先介绍它的两个最基本的也是最重要的组成部分，就是&#8220;命题演算&#8221;和&#8220;谓词演算&#8221;。<br>
命题演算是研究关于命题如何通过一些逻辑连接词构成更复杂的命题以及逻辑推理的方法。命题是指具有具体意义的又能判断它是真还是假的句子。<br>
如果我们把命题看作运算的对象，如同代数中的数字、字母或代数式，而把逻辑连接词看作运算符号，就象代数中的&#8220;加、减、乘、除&#8221;那样，那么由简单命题组成复和命题的过程，就可以当作逻辑运算的过程，也就是命题的演算。<br>
这样的逻辑运算也同代数运算一样具有一定的性质，满足一定的运算规律。例如满足交换律、结合
律、分配律，同时也满足逻辑上的同一律、吸收律、双否定律、狄摩根定律、三段论定律等等。利用这些定律，我们可以进行逻辑推理，可以简化复和命题，可以推
证两个复合命题是不是等价，也就是它们的真值表是不是完全相同等等。<br>
命题演算的一个具体模型就是逻辑代数。逻辑代数也叫做开关代数，它的基本运算是逻辑加、逻辑乘和逻辑费，也就是命题演算中的&#8220;或&#8221;、&#8220;与&#8221;、&#8220;非&#8221;，运算对象只有两个数 0和 1，相当于命题演算中的&#8220;真&#8221;和&#8220;假&#8221;。<br>
逻辑代数的运算特点如同电路分析中的开和关、高电位和低电位、导电和截至等现象完全一样，都只有两种不同的状态，因此，它在电路分析中得到广泛的应用。<br>
利用电子元件可以组成相当于逻辑加、逻辑成和逻辑非的门电路，就是逻辑元件。还能把简单的逻辑元件组成各种逻辑网络，这样任何复杂的逻辑关系都可以有逻辑元件经过适当的组合来实现，从而使电子元件具有逻辑判断的功能。因此，在自动控制方面有重要的应用。<br>
谓词演算也叫做命题涵项演算。在谓词演算里，把命题的内部结构分析成具有主词和谓词的逻辑形式，由命题涵项、逻辑连接词和量词构成命题，然后研究这样的命题之间的逻辑推理关系。<br>
命题涵项就是指除了含有常项以外还含有变项的逻辑公式。常项是指一些确定的对象或者确定的属性
和关系；变项是指一定范围内的任何一个，这个范围叫做变项的变域。命题涵项和命题演算不同，它无所谓真和假。如果以一定的对象概念代替变项，那么命题涵项
就成为真的或假的命题了。<br>
命题涵项加上全程量词或者存在量词，那么它就成为全称命题或者特称命题了。<br>
数理逻辑的发展<br>
数理逻辑这门学科建立以后，发展比较迅速，促进它发展的因素也是多方面的。比如，非欧几何的建立，促进人们去研究非欧几何和欧氏几何的无矛盾性，就促进了数理逻辑的发展。<br>
集合论的产生是近代数学发展的重大事件，但是在集合论的研究过程中，出现了一次称作数学史上的第三次大危机。这次危机是由于发现了集合论的悖论引起。什么是悖论呢？悖论就是逻辑矛盾。集合论本来是论证很严格的一个分支，被公认为是数学的基础。<br>
1903年，英国唯心主义哲学家、逻辑学家、数学家罗素却对集合论提出了以他名字命名的&#8220;罗素悖论&#8221;，这个悖论的提出几乎动摇了整个数学基础。<br>
罗素悖论中有许多例子，其中一个很通俗也很有名的例子就是&#8220;理发师悖论&#8221;：某乡村有一位理发
师，有一天他宣布：只给不自己刮胡子的人刮胡子。那么就产生了一个问题：理发师究竟给不给自己刮胡子？如果他给自己刮胡子，他就是自己刮胡子的人，按照他
的原则，他又不该给自己刮胡子；如果他不给自己刮胡子，那么他就是不自己刮胡子的人，按照他的原则，他又应该给自己刮胡子。这就产生了矛盾。<br>
悖论的提出，促使许多数学家去研究集合论的无矛盾性问题，从而产生了数理逻辑的一个重要分支—公理集合论。<br>
非欧几何的产生和集合论的悖论的发现，说明数学本身还存在许多问题，为了研究数学系统的无矛盾性问题，需要以数学理论体系的概念、命题、证明等作为研究对象，研究数学系统的逻辑结构和证明的规律，这样又产生了数理逻辑的另一个分支—证明论。<br>
数理逻辑新近还发展了许多新的分支，如递归论、模型论等。第归论主要研究可计算性的理论，他和计算机的发展和应用有密切的关系。模型论主要是研究形式系统和数学模型之间的关系。<br>
数理逻辑近年来发展特别迅速，主要原因是这门学科对于数学其它分支如集合论、数论、代数、拓扑学等的发展有重大的影响，特别是对新近形成的计算机科学的发展起了推动作用。反过来，其他学科的发展也推动了数理逻辑的发展。<br>
正因为它是以门新近兴起而又发展很快的学科，所以它本身也存在许多问题有待于深入研究。现在许多数学家正针对数理逻辑本身的问题，进行研究解决。<br>
总之，这门学科的重要性已经十分明显，他已经引起了更多人的关心和重视。
<br><img src ="http://www.cppblog.com/syqxidian/aggbug/82657.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/syqxidian/" target="_blank">苹果西瓜</a> 2009-05-12 09:42 <a href="http://www.cppblog.com/syqxidian/archive/2009/05/12/82657.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>什么叫WCDMA</title><link>http://www.cppblog.com/syqxidian/archive/2009/05/04/81840.html</link><dc:creator>苹果西瓜</dc:creator><author>苹果西瓜</author><pubDate>Mon, 04 May 2009 09:06:00 GMT</pubDate><guid>http://www.cppblog.com/syqxidian/archive/2009/05/04/81840.html</guid><wfw:comment>http://www.cppblog.com/syqxidian/comments/81840.html</wfw:comment><comments>http://www.cppblog.com/syqxidian/archive/2009/05/04/81840.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/syqxidian/comments/commentRss/81840.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/syqxidian/services/trackbacks/81840.html</trackback:ping><description><![CDATA[<p style="text-indent: 2em;"><strong> 1.W-CDMA的概念：</strong> </p>
<p style="text-indent: 2em;">W-CDMA是一种由3GPP具体制定的，基于GSM
MAP核心网，UTRAN（UMTS陆地无线接入网）为无线接口的第三代移动通信系统。目前WCDMA有Release 99、Release
4、Release 5、Release
6等版本。W-CDMA（宽带码分多址）是一个ITU(国际电信联盟)标准，它是从码分多址（CDMA）演变来的，在官方上被认为是IMT-2000的直
接扩展，与现在市场上通常提供的技术相比，它能够为移动和手提无线设备提供更高的数据速率。 </p>
<p style="text-indent: 2em;">WCDMA采用直接序列扩频码分多址（DS-CDMA）、频分双工（FDD）方式，码片速率
为3.84Mcps，载波带宽为5MHz.基于Release 99/ Release
4版本，可在5MHz的带宽内，提供最高384kbps的用户数据传输速率。W-CDMA能够支持移动/手提设备之间的语音、图象、数据以及视频通信，速
率可达2Mb/s（对于局域网而言）或者384Kb/s（对于宽带网而言）。输入信号先被数字化，然后在一个较宽的频谱范围内以编码的扩频模式进行传输。
窄带CDMA使用的是200KHz宽度的载频，而W-CDMA使用的则是一个5MHz宽度的载频。 </p>
<p style="text-indent: 2em;"><strong> 2.W-CDMA的定位：</strong>  </p>
<p style="text-indent: 2em;">目前，3G的主流技术有W-CDMA、CDMA2000和TD-SCDMA三种。
CDMA2000由美国高通公司提出，技术成熟性最高，有着明确的提高频谱利用率的演进路线，但全球漫游能力一般，韩国已经开通了CDMA2000商用
网。W-CDMA由欧洲和日本支持，有较高的扩频增益，发展空间较大，全球漫游能力最强，但技术成熟性一般，在日本已经投入商用。 </p>
<p style="text-indent: 2em;"><strong> 3.W-CDMA的特点概要:</strong>  </p>
<p style="text-indent: 2em;">W-CDMA由ETSI NTT
DoCoMo作为无线介面为他们的3G网路FOMA开发。后来NTTDocomo提交给ITU一个详细规范作为一个象IMT-2000一样作为一个候选的
国际3G标准。国际电信联盟(ITU)
最终接受W-CDMA作为IMT-2000家族3G标准的一部分。后来W-CDMA被选作UMTS的无线介面，作为继承GSM的3G技术或者方案。 </p>
<p style="text-indent: 2em;">尽管名字跟CDMA很相近，但是W-CDMA跟CDMA关系不大。多大多小要看不同人的立足
点。在行动电话领域，术语CDMA
可以代指码分多址扩频复用技术，也可以指美国高通（Qualcomm）开发的包括IS-95/CDMA1X和CDMA2000(IS-2000)的
CDMA标准族。 </p>
<p style="text-indent: 2em;"><strong> 4.W-CDMA和CDMA的差异：</strong>  </p>
<p style="text-indent: 2em;">The在Qualcomm为IS-95协议使用它之前，CDMA复用技术已经存在很长时间，
然而此协议被广泛的叫做CDMA是因为他具有像CDMA复用方法那样通过相同的频段共用多个连接的原理特性，以区别其他的复用方案(例如GSM的
TDMA)。W-CDMA
也使用CDMA的复用技术而且它跟Qualcomm的标准也很相似。但是W-CDMA不仅仅是复用标准。它是一个详细的定义行动电话怎样跟基站通讯，信号
怎样调制，数据帧怎么构建等的完整的规范集。</p>
<p style="text-indent: 2em;">4.1.尽管名字跟CDMA很相近，但是W-CDMA跟CDMA关系不大。多大多小要看不同人的立足点。 </p>
<p style="text-indent: 2em;">4.2.在行动电话领域，术语CDMA可以代指码分多址扩频复用技术，也可以指美国高通（Qualcomm）开发的包括IS-95/CDMA1X和CDMA2000(IS-2000)的CDMA标准族。 </p>
<p style="text-indent: 2em;">4.3.The 在Qualcomm为IS-95协议使用它之前，CDMA复用技术已经存在很长时间，然而此协议被广泛的叫做""CDMA""是因为他具有像CDMA复用方法那样通过相同的频段共用多个连接的原理特性，以区别其他的复用方案(例如GSM的TDMA)。 </p>
<p style="text-indent: 2em;">4.4.W-CDMA 也使用CDMA的复用技术而且它跟Qualcomm的标准也很相似。但是W-CDMA不仅仅是复用标准。它是一个详细的定义行动电话怎样跟基站通讯，信号怎样调制，数据帧怎么构建等的完整的规范集。 </p>
<p style="text-indent: 2em;"><strong> 5.W-CDMA发展简史：</strong>  </p>
<p style="text-indent: 2em;">1.2001年，日本NTT DoCoMo公司的FOMA是世界上第一个商业运营W-CDMA服务。FOMA不相容UMTS。 </p>
<p style="text-indent: 2em;">2.J-Phone 日本电话(现沃达丰)已经继推出基於W-CDMA服务后，声称&#8220;沃达丰全球标准&#8221;相容UMTS (尽管2004年时还有争议)。 </p>
<p style="text-indent: 2em;">3.2003年初，和记黄埔逐步在全球运营他们的UMTS网路(简称3)。 </p>
<p style="text-indent: 2em;">4.大多数欧洲GSM运营商计划未来某个时间推出UMTS服务，尽管有几个已经把此服务提到日程上来，有一些甚至从2003年底就开始运营UMTS网路。 </p>
<p style="text-indent: 2em;">5.沃达丰于2004年2月在欧洲多个UMTS网路投入运行。沃达丰还打算在其他国家（包括澳大利亚及新西兰）建设UMTS网路。 </p>
<p style="text-indent: 2em;">6.TeliaSonera於2004年10月13日开始在芬兰提供384kbps速率的W-CDMA服务。服务只是在主要城市可用。通讯费率大约2美元每兆位元组。</p>
<p style="text-indent: 2em;">7.AT&amp;T无线(现属于Cingular Wireless) 在一些城市开通了UMTS。尽管因为公司兼并使得网路建设进度被延迟，但Cingular已宣布计划在2005年与HSDPA一起部署W-CDMA。 </p>
<p style="text-indent: 2em;"><strong> 6.W-CDMA在中国</strong>  </p>
<p style="text-indent: 2em;">2008年10月15日，新联通正式成立，这意味着电信重组形式的部分已经画上句号。</p>
<p style="text-indent: 2em;">2008年5月份电信重组宣布，半年时间过去，形式上重组的完成，几大难题都已经解决。重组
要解决的难题主要是两个，一个是中国联通的C网剥离，一个是新联通的成立。10月1日，中国电信已经全面接手中国联通的C网，这一难题已经解决，当然，后
面要处理好各方面的矛盾，问题依然很多的，不过这一工作远比我们想象快的实现了，这说明电信业还是一个讲纪律、讲大局的企业，在组织结构调整过程中，总体
来说，员工还是服从大局，这方面的耗费还是较少的。另一方面，对于中国电信而言，既然已经决定收购，它就要尽快把C网拿到自己的手里，让这个网完善起来，
尽快产生效益。</p>
<p style="text-indent: 2em;">电信重组的第二大难题就是新联通的成立了。要使中国联通和中国网通融合好，确实需要一个较为
漫长的时期，不过尽快完成组织结构的建设，尽快进入正轨，这也是新联通绝大部领导和员工的共识。今年已经已近尾声，下一年工作如何开展，是未来新联通面临
的大问题，如果组织结构不能确定，企业一直飘摇不定，下一年的工作就很难开展，新联通拿出的业绩将是一个很大的问题。在这样一个指导思想下，新联通很快成
立了，总部的组织结构也会在10月底至11月初决定，不管有多少矛盾要解决，年内各省领导班子确立，新联通要在2009年市场竞争中，一展身手，这是联通
领导一直在努力的。</p>
<p style="text-indent: 2em;">新联通的成立，可以说中国3G牌照发放的所有障碍都扫除了。</p>
<p style="text-indent: 2em;">新联通成立之日，常小兵总裁接受媒体采访时，就高调表示，新联通已经成立，希望政府尽快发放
3G牌照，而奚国华副部长也表示，政府已经承诺电信重组完成之后，就会发放3G牌照。对于中国联通和中国电信而言，现在市场压力非常大，每月新增移动用户
700万左右，绝大部分是移动的用户，如果要和移动竞争，抢夺用户，必须要有亮点，要有可以打动用户的武器，短时间内提升原有的网络质量，提高服务水平都
不是易事，而且即使做到，要用户认知并且形成口碑也是需要一个漫长的时间。所以只有3G才是中国电信和中国联通的卖点。而且从技术上来说，未来3G中国联
通和中国电信采用的制式，会较为成熟，这两个企业会预计自己在这个领域发展的速度较快。因此，今天的情况，中国电信和中国联通对于拿到3G牌照的要求非常
迫切。</p>
<p style="text-indent: 2em;">有一种声音，中国移动还是希望3G牌照不要发放。当然，对移动而言，最好的情况是只放发TD
-SCDMA牌照，不给其他两家运营商发牌照，不过这种情况出现，非常难。其实如果同时发放3张牌照，对移动而言迟发不如早发。中国移动要发展TD-
SCDMA，一直处于试商用状态，并不是一个好的选择，因为这样一种状态，事实上铺开建设，大规模进行业务推广很难，而且一直是试商用状态也容易造成内部
的消极和终端厂商的消极。中国移动现在推动TD的建设，基本上是上面压，下面不急。中国移动高层要面对来自国家管理部门的压力，但是对于基层而言，它并没
有感受到其他运营商在竞争上的压力，所以做TD是一个面对上面的任务，而不是下决心做好的一个竞争手段。对于TD相关工作，基层很多的做法是做一些，应付
一下，调动各种因素千方百计把它做好，让它产生经济效益，现在移动的基层还没有这么想。</p>
<p style="text-indent: 2em;">3G牌照发放，其他两家运营商也拿到3G牌照，一定把3G作为一个进攻点，中国移动必须做好
TD来进行应对，尤其是基层，原来对付上面检查，现在就要变成自身的压力。而终端厂商看到移动能动起来，看到市场前景，当然会下决心一搏，现在连个正式牌
照都没有，难怪诺基亚这样的大厂商出手谨慎，其他国际大厂商也是只能对付一两款手机，都是在等，我们大家都要知道，TD要等，永远等不来发展，只能推和压
才能有机会。</p>
<p style="text-indent: 2em;">纵观今年才成立的工信部，办事不拖是一大特点，3G牌照发放条件不成熟，不发有其道理，既然条件已经成熟，为什么还要拖？我想，不会拖的。</p>
<p style="text-indent: 2em;">几年来，3G牌照发放一拖再拖，所以现在的论者都出言谨慎了，以我的感觉，如果3G牌照的发放不是由更高层来主导将其作为国际政治谈判的一个筹码，3G牌照将在3个月内发放。</p>
<p style="text-indent: 2em;">等待6年 3G牌照发放终响发令枪</p>
<p style="text-indent: 2em;">今年内用户就能体验丰富的3G应用（图据CFP）</p>
<p style="text-indent: 2em;">国务院常务会议日前同意启动3G牌照发放工作，四川千万手机用户将受益</p>
<p style="text-indent: 2em;">牌照发放终响发令枪</p>
<p style="text-indent: 2em;">就在2008年的最后一天，3G牌照发放工作正式启动。这意味着传言6年多的3G牌照发放即
将尘埃落定。视频点播、可视电话、高速下载、手机网络游戏等丰富的3G信息化应用，将在2009年与四川手机用户见面。不过，由于需要经过一定程序的公
示，3G牌照正式发放还需一段时间。昨天早些时候有消息称，中国3G牌照很可能在昨晚发放，受此消息刺激，昨日A股通信板块集体上涨。</p>
<p style="text-indent: 2em;">3G牌照发放工作获准启动</p>
<p style="text-indent: 2em;">日前召开的国务院常务会议，研究同意工业和信息化部按照程序启动第三代移动通信（3G）牌照
发放工作。工信部当天还召开专题会议，要求积极稳妥做好3G牌照发放和推动TD-SCDMA发展工作。中国通信业盼望多年的3G牌照发放正式进入程序。会
议指出，TD-SCDMA作为第三代移动通信国际标准，是我国科技自主创新的重要标志，国家将继续支持研发、产业化和应用推广。发放3G牌照对于拉动内
需，优化电信市场竞争结构，促进TD-SCDMA产业链成熟，具有重要作用。目前，电信企业改革重组工作基本完成，已具备发放第三代移动通信TD-
SCDMA和WCDMA、CDMA2000牌照的条件。</p>
<p style="text-indent: 2em;">2800亿3G投资拉动内需</p>
<p style="text-indent: 2em;">工信部部长李毅中此前透露，2009-2010年预计完成3G投资2800亿元，对于应对金融</p>
<p style="text-indent: 2em;">危机、投资拉动经济有重要意义。他强调，3G牌照发放将经过一定的程序进行公示，各运营企业
要根据各自发展规划建设3G网络，杜绝重复建设。记者从四川省通信管理局了解到，预计四川通信业今年将累计完成规划项目投资150亿元，其中包括支持我国
自主知识产权的3G标准TD-SCDMA的网络建设和业务应用。</p>
<p style="text-indent: 2em;">□名词解释3G，全称为3rdGeneration，</p>
<p style="text-indent: 2em;">指第三代移动通信。1995年问世的第一代模拟制式手机（1G）只能进行语音通话；1996
到1997年出现的第二代GSM、TDMA等数字制式手机（2G）增加了接收数据的功能，如接受电子邮件或网页；第三代与前两代的主要区别是在传输速度上
的提升，能够更好地实现无缝漫游，处理图像、音乐、视频流等，提供网页浏览、电话会议、电子商务等服务。</p>
<p style="text-indent: 2em;">□方案细节据此前召开的全国工业</p>
<p style="text-indent: 2em;">和信息化工作会议，3G实施方案如下：</p>
<p style="text-indent: 2em;">1、发放方式：中国移动将获TD-SCDMA牌照；中国联通获WCDMA牌照；中国电信获CDMA2000牌照。2、市场监管：既要投入拉动经济发展，又要防止重复建设；营造一个规范公平的竞争秩序，不劫富济贫。</p>
<p style="text-indent: 2em;">□发牌前夜运营商对比</p>
<p style="text-indent: 2em;">中国移动：截至2008年11月底，手机用户4.5亿。目前我国为TD分配了155MHz工作频段，TD规模建网已分配到20M。</p>
<p style="text-indent: 2em;">中国联通：截至2008年11月底，G网用户1.3亿。合并完网通后固网用户1.05亿。联通的优势是获得了产业链最为成熟的WCDMA标准牌照，劣势是融合的难度以及资金实力偏弱。</p>
<p style="text-indent: 2em;">中国电信：截至2008年11月底，收购联通C网后，中国电信公布C网当前用户规模为2797万；固网用户2.1亿。中国电信优势是移动固网的捆绑策略以及资金实力，劣势是CDMA2000产业链的全球衰落。</p>
<p style="text-indent: 2em;">□市场影响</p>
<p style="text-indent: 2em;">今年成都三环内开通3G服务</p>
<p style="text-indent: 2em;">3G实施首先将带动四川老百姓的手机信息化应用水平。据悉，中国移动即将在川正式开放188
号段，塑造3G业务品牌；而四川电信也已宣布189号码放号，以抢占3G市场。另外，据传中国联通获配的3G号段为186。目前成都已作为中国移动TD-
SCDMA二期试点工程入选城市，成都移动将投资12亿元，今年3月前建设1030个TD-SCDMA基站，6月前进行网络优化，从而保障在今年真正开通
3G的移动通信服务，覆盖三环内区域和周边高校，无线下载速率将达到2.8Mbps，是目前的14倍。在此基础上将实现视频点播、可视电话、高速下载、手
机游戏等丰富的3G应用。</p>
<p style="text-indent: 2em;">从本月开始，成都地区的TD网络建设就将进入高峰期。手机用户将来可以顺利地实现不用换号、不用换卡、不用登记，只需换一个双模手机就可以享受TD服务。</p>
<p style="text-indent: 2em;">3G实施将带动整个通信产业链，带来更广泛的就业机会。国内最大无线互联网站"3G门户网"CEO<a href="http://go.tech.163.com/renwu/data/27.html">邓裕强</a>表示，围绕着电信运营商的增值服务企业多年来一直盼望3G牌照的正式发放，从而带动更大规模的业务需求，刺激整个行业的上升。"预计3G发牌照之后，手机上网速度将大大提高，一直居高不下的手机上网资费可能下降。"</p>
<p style="text-indent: 2em;">3G实施还在一定程度上使得投资于通信概念股的股民受益。昨天下午3G板块、通信板块多只股
票上涨。截至收盘，东信和平上涨5.89%，海信电器上涨4.75%，ST大唐上涨4.66%，中兴通讯上涨2.84%，中国联通上涨0.8%，中兴通讯
等也有不同程度上涨。中信证券分析师张兵表示，电信业已处于历史估值底部区域，3G及增值业务将是今年运营商价值增长的实质性推动因素。 </p>
<p style="text-indent: 2em;"><strong> 7.3G和W-CDMA的区别</strong>  </p>
<p style="text-indent: 2em;">3G三种制式： </p>
<p style="text-indent: 2em;">我国要发放TD-SCDMA、WCDMA和CDMA2000三张牌照，将分属中国移动、中国联通和中国电信。 </p>
<p style="text-indent: 2em;">TD-SCDMA： </p>
<p style="text-indent: 2em;">特点： 全称Time Division - Synchronous CDMA(时分同步CDMA)，在频谱利用率、对业务支持具有灵活性等独特优势。 </p>
<p style="text-indent: 2em;">优势：中国自有3G技术，获政府支持 </p>
<p style="text-indent: 2em;">WCDMA： </p>
<p style="text-indent: 2em;">特点： 全称为Wideband CDMA，也称为CDMA Direct Spread，意为宽频分码多重存取，这是基于GSM网发展出来的3G技术规范，是欧洲提出的宽带CDMA技术。 </p>
<p style="text-indent: 2em;">优势：有较高的扩频增益，发展空间较大，全球漫游能力最强，技术成熟性最佳。 </p>
<p style="text-indent: 2em;">CDMA2000： </p>
<p style="text-indent: 2em;">特点： CDMA2000是由窄带CDMA(CDMA IS95)技术发展而来的宽带CDMA技术，也称为CDMA Multi-Carrier，由美国高通公司 为主导提出。 </p>
<p style="text-indent: 2em;">优势：可以从原有的CDMA1X直接升级到3G，建设成本低廉。 </p>
<p style="text-indent: 2em;">说联通的WCDMA比移动的TD好，也不完全对，各有各的特点。 </p>
<p style="text-indent: 2em;">TD-SCDMA是我国自主3G标准，2000年5月，ITU(国际电信联盟)公布TD-
SCDMA正式成为ITU第三代移动通信标准3G国际标准的一个组成部分，与欧洲WCDMA、美国CDMA2000并列为三大主流3G国际标准。TD-
SCDMA于2008年4月1日试商用。 </p>
<p style="text-indent: 2em;">TD-HSDPA是TD-SCDMA的下一步演进技术，采用TDD方式。作为后3G的HSDPA技术可以同时适用于WCDMA和TD-SCDMA两种不同制式。 </p>
<p style="text-indent: 2em;">TD-HSDPA之后，TD也将实现TD-HSUPA，实现2.2Mbps的上行速率，最后讲演进到LTE TDD。 </p>
<p style="text-indent: 2em;">WCDMA是GSM的升级(GSM是2G技术，其演进是GSM、GPRS、EDGE、WCDMA)，同时也是全球3G技术中用户最广(GSM系技术拥有全球85%移动用户)、技术和商业应用最成熟的。WCDMA运营商遵循WCDMA、HSPA、LTE演进路线。 </p>
<p style="text-indent: 2em;">HSDPA和HSUPA统称HSPA，后者上行速率更快，中国联通采用HSPA技术，其中大城市使用HSUPA，，在09年6、7月份即可完成部署。 </p>
HSPA后的HSPA+技术也已经开始在澳大利亚、新加坡等地开始建设，速率高达21Mbps。
<br><img src ="http://www.cppblog.com/syqxidian/aggbug/81840.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/syqxidian/" target="_blank">苹果西瓜</a> 2009-05-04 17:06 <a href="http://www.cppblog.com/syqxidian/archive/2009/05/04/81840.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>