约瑟夫环的实现,几个小孩站成一圈报数,从m报到s,报s的人出列,输出出列的次序
标签:
上传时间: 2016-05-23
上传用户:yxgi5
约瑟夫问题的两种解法 设有n个人围坐在一个圆桌周围,先从第s个人开始报数,数到第m个人出列,然后从出列的下一个人重新开始报数,数到第m个人又出列……如此重复,直到所有的人出列为止。本程序分别用链式存储结构(循环链表)和顺序存储结构(数组)解决约瑟夫问题,可供初学者辨别这两种存储结构的异同 用户输入:n,s,m(逗号隔开) 输出:出列顺序表
标签:
上传时间: 2013-12-19
上传用户:yzhl1988
This LDPC software is intended as an introduction to LDPC codes computer based simulation. The pseudo-random irregular low density parity check matrix is based on Radford M. Neal’s programs collection, which can be found in [1]. While Neal’s collection is well documented, in my opinion, C source codes are still overwhelming, especially if you are not knowledgeable in C language. My software is written for MATLAB, which is more readable than C. You may also want to refer to another MATLAB based LDPC source codes in [2], which has different flavor of code-writing style (in fact Arun has error in his log-likelihood decoder).
标签: LDPC introduction simulation software
上传时间: 2014-12-05
上传用户:change0329
ardware sensors monitor 4.4.2.2 (June 2008) (Shareware, trial period is two weeks) The most universal hardware monitoring program for Windows 9X/ME/NT/2000/XP/2003/VISTA x86/x64 editions This program monitors and displays certain parameters (temperatures, voltages, fans RPM) taken from h/w sensor chips, installed on smart motherboards and/or graphics cards. Customizable alarms can be displayed. Professional license includes thermo control features (so-called "Software cooling"), nVidia/ATi graphics cards and HDD S.M.A.R.T. monitoring.
标签: Shareware ardware sensors monitor
上传时间: 2013-12-17
上传用户:894898248
还在为“基于MATLAB的OFDM系统仿真”的朋友,可以看看我总结的资料! 该代码通过综合了本站中的两个源代码,在MATLAB 7.0下完成OFDM系统的完美仿真:音频数据采集->S/P转换->16QAM映射->IFFT处理->添加CP->P/S->理想/多径信道传送->……(FFT等)->传输结果比较(前后频谱图、可以直接通过听前后的音频文件来辨别系统的好坏-理想信道时音质前后相同)。在此还要感谢那两位站员提供相关的代码,也希望能对其他人有帮助。更希望本站能吸引更多的编程爱好者再创佳绩。
上传时间: 2014-12-02
上传用户:zhangyi99104144
#include <iostream> #include <stdio.head> #include <stdlib.head> #include <string.head> #define ElemType int #define max 100 using namespace std; typedef struct node1 { ElemType data; struct node1 *next; }Node1,*LinkList;//链栈 typedef struct { ElemType *base; int top; }SqStack;//顺序栈 typedef struct node2 { ElemType data; struct node2 *next; }Node2,*LinkQueue; typedef struct node22 { LinkQueue front; LinkQueue rear; }*LinkList;//链队列 typedef struct { ElemType *base; int front,rear; }SqQueue;//顺序队列 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 //1.采用链式存储实现栈的初始化、入栈、出栈操作。 LinkList CreateStack()//创建栈 { LinkList top; top=NULL; return top; } bool StackEmpty(LinkList s)//判断栈是否为空,0代表空 { if(s==NULL) return 0; else return 1; } LinkList Pushead(LinkList s,int x)//入栈 { LinkList q,top=s; q=(LinkList)malloc(sizeof(Node1)); q->data=x; q->next=top; top=q; return top; } LinkList Pop(LinkList s,int &e)//出栈 { if(!StackEmpty(s)) { printf("栈为空。"); } else { e=s->data; LinkList p=s; s=s->next; free(p); } return s; } void DisplayStack(LinkList s)//遍历输出栈中元素 { if(!StackEmpty(s)) printf("栈为空。"); else { wheadile(s!=NULL) { cout<<s->data<<" "; s=s->next; } cout<<endl; } } 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 //2.采用顺序存储实现栈的初始化、入栈、出栈操作。 int StackEmpty(int t)//判断栈S是否为空 { SqStack.top=t; if (SqStack.top==0) return 0; else return 1; } int InitStack() { SqStack.top=0; return SqStack.top; } int pushead(int t,int e) { SqStack.top=t; SqStack.base[++SqStack.top]=e; return SqStack.top; } int pop(int t,int *e)//出栈 { SqStack.top=t; if(!StackEmpty(SqStack.top)) { printf("栈为空."); return SqStack.top; } *e=SqStack.base[s.top]; SqStack.top--; return SqStack.top; } 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 //3.采用链式存储实现队列的初始化、入队、出队操作。 LinkList InitQueue()//创建 { LinkList head; head->rear=(LinkQueue)malloc(sizeof(Node)); head->front=head->rear; head->front->next=NULL; return head; } void deleteEle(LinkList head,int &e)//出队 { LinkQueue p; p=head->front->next; e=p->data; head->front->next=p->next; if(head->rear==p) head->rear=head->front; free(p); } void EnQueue(LinkList head,int e)//入队 { LinkQueue p=(LinkQueue)malloc(sizeof(Node)); p->data=e; p->next=NULL; head->rear->next=p; head->rear=p; } 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 //4.采用顺序存储实现循环队列的初始化、入队、出队操作。 bool InitQueue(SqQueue &head)//创建队列 { head.data=(int *)malloc(sizeof(int)); head.front=head.rear=0; return 1; } bool EnQueue(SqQueue &head,int e)//入队 { if((head.rear+1)%MAXQSIZE==head.front) { printf("队列已满\n"); return 0; } head.data[head.rear]=e; head.rear=(head.rear+1)%MAXQSIZE; return 1; } int QueueLengthead(SqQueue &head)//返回队列长度 { return (head.rear-head.front+MAXQSIZE)%MAXQSIZE; } bool deleteEle(SqQueue &head,int &e)//出队 { if(head.front==head.rear) { cout<<"队列为空!"<<endl; return 0; } e=head.data[head.front]; head.front=(head.front+1)%MAXQSIZE; return 1; } int gethead(SqQueue head)//得到队列头元素 { return head.data[head.front]; } int QueueEmpty(SqQueue head)//判断队列是否为空 { if (head.front==head.rear) return 1; else return 0; } void travelQueue(SqQueue head)//遍历输出 { wheadile(head.front!=head.rear) { printf("%d ",head.data[head.front]); head.front=(head.front+1)%MAXQSIZE; } cout<<endl; } 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 //5.在主函数中设计一个简单的菜单,分别测试上述算法。 int main() { LinkList top=CreateStack(); int x; wheadile(scanf("%d",&x)!=-1) { top=Pushead(top,x); } int e; wheadile(StackEmpty(top)) { top=Pop(top,e); printf("%d ",e); }//以上是链栈的测试 int top=InitStack(); int x; wheadile(cin>>x) top=pushead(top,x); int e; wheadile(StackEmpty(top)) { top=pop(top,&e); printf("%d ",e); }//以上是顺序栈的测试 LinkList Q; Q=InitQueue(); int x; wheadile(scanf("%d",&x)!=-1) { EnQueue(Q,x); } int e; wheadile(Q) { deleteEle(Q,e); printf("%d ",e); }//以上是链队列的测试 SqQueue Q1; InitQueue(Q1); int x; wheadile(scanf("%d",&x)!=-1) { EnQueue(Q1,x); } int e; wheadile(QueueEmpty(Q1)) { deleteEle(Q1,e); printf("%d ",e); } return 0; }
上传时间: 2018-05-09
上传用户:123456..
蚁群算法基本模型STEP1(外循环)若满足算法停止规则,停止计算,输出计算得到的最好解给定外循环的最大数目,表明有足够的蚂蚁工作当前最优解连续K次相同而停止,K是给定的整数,表示算法已收敛◆给定优化问题的下界和误差值,当算法得到的目标值同下界之差小于给定的误差值时,算法终止否则使蚂蚁s(1≤s≤m)从起点出发,用L(S)表示蚂蚁S行走的城市集合,初始L(s)为空集。设m只蚂蚁在图的相邻节点间移动,协作异步地得到解。蚂蚁计算出下一步所有可达节点的一步转移概率,并按此概率实现一步移动,依此往复。一步转移概率由图中每条边上的两类参数决定:信息素值、可见度(即先验值)。信息素的更新有2种方式:挥发——所有路径上信息素以一定比率减少增强——给评价值“好”(有蚂蚁走过)的边增加信息素蚁群算法基木模型令我们以求解平面上n个城市的TSP问题(1,2,…,n)表示城市号为例说明ACA的模型。n个城市的TSP问题就是寻找通过n个城市各次且最后回到出发点的最短路径蚁群算法研究现状令ACA是模拟自然界中真实蚁群的觅食行为而形成的一种模拟进化算法。10年多来的研究结果已经表明:ACA用于组合优化具有很强的发现较好解的能力,具有分布式计算易于与其他方法相结合、鲁棒性强等优点,在动态环境下也表现出高度的灵活性和健壮性。在求解TSP、QAP问题方面,与遗传算法、模拟退火算法等算法比较,ACA仍是最好的解决方法之一。
标签: 蚂蚁算法
上传时间: 2022-03-10
上传用户:
半导体器件物理考试考试范围 现更改为Physics of Semiconductor Devices/Third Edition,S. M. Sze, KWOK K.NG, John Wiley & Sons,2006 半导体器件物理,施 敏,伍国珏,西安交通大学出版社,2010。
标签: 半导体器件
上传时间: 2022-07-23
上传用户:qdxqdxqdxqdx
VIP专区-嵌入式/单片机编程源码精选合集系列(49)资源包含以下内容:1. 凌阳非接触式红外测温传感器的C51源程序。.2. 液晶模块LCD2X8C驱动程序.3. 含t h r e a d x,u c o s 的b s p.4. 液晶sed1335芯片.5. 8237可编程DMA控制器altera提供.6. xilinx嵌入式开发源码.7. ZLG的LPC2220读取SD卡的源代码.8. 三星44b0 usbpid驱动程序.9. 三星44B0的一款BOOTLOADER.10. i2c_slave mode for pic.11. max7219驱动.12. max7219控制程序.13. 语音通用程序.14. adc通用程序.15. 通用语音资料.16. ATMEGA128....液晶显示程序.17. 基于MSP430的单片机的TC35/MC35的无线通讯MODEM.18. Uc-Os ii的多任务操作系统全部原代码(强烈推荐).19. nios开发ucos源码.20. MinOS嵌入式操作系统,C/C++源代码!基于KeilC51编译器..21. 基于51单片机的滤波程序.22. IIC读写程序.23. 无刷电机无位置传感器dsp程序.24. c51液晶显示程序,显示模块,可通用于基于HD44780内控器的液晶显示器..25. DP-51H下载仿真实验仪提供80C51与接口实例.ZLG7290例程*.26. DP-51H下载仿真实验仪提供80C51与接口实例.读EEPROM并显示例程*.27. 一个读取PCI配置空间的TOOL (在DOS下OR WIN 98).28. AT89C52实时时钟DS1302测试,带Proteus文件.29. 用AT89C52演奏音乐.30. 这个是安防用的控制键盘C源程序,采用KEIL C51开发.用于控制前端解码器!.31. 这是一个用于视频切换的控制程序,采用AT89C51芯片,KEIL 51开发.32. 自己近期写的一个串口通信的小程序.33. 这是基于蓝海微芯LJD-SY-XA+单片机开发系统的远程无线监控系统的DA及AD采集和数码显示的部分.34. 基于51内核的单片机的ucos-ii操作系统的移植的源代码.35. 此代码是实现将lwip协议移植于51单片机的测试程序.36. DOS下采用中断接收数据的串口通讯的例子,很难找到的好东西!.37. lpc2292的can总线的简单收发程序 底层驱动程序都有.38. 数字密码锁设计的源代码,喜欢的朋友就下载..39. 一个使用STGapiBuffer编程的例子.40. 好东西 AVR study.
上传时间: 2013-04-15
上传用户:eeworm
网络带宽依然在不断增长(尤其是在本地网),最后一公里的高速接入日益普及;另一方面的情况是大容量的磁盘、FLASH移动存储盘和激光盘的容量不断增大,使得传送和储存数据的成本不断地下降。不仅使人发问:我们孜孜不倦的搞视频压缩高级算法还有多少意义?我们可以看到,算法的复杂性日益增加,但性能的提高却接近边缘。 是什么还在要求更高的压缩速率?还有被我们遗忘的地方吗?还有什么应用让我们继续追求更精妙的压缩算法? 在作者看来,这个应用领域就是移动视频服务。无线频谱这种稀缺资源的有限性决定了我们必须继续对视频压缩技术进行研究。即使伴随UMTS/IMT2000的到来,移动终端可以获得的数据速率也限制在144Kbit/s,在微蜂窝的时候最高能达到的速率上限也在2Mbit/s。144Kbit/s的速率对于较高质量的视频传输来讲,仍然是有限的。因此,可以预见,移动终端的空中接口这个瓶颈使得我们必须继续进行视频压缩。 另一方面,移动终端领域开发视频压缩算法,在其低功耗和实时性要求下,也是异常困难的。为了减少计算的复杂性和运动估计的功耗,业界提出了许多快速算法,例如2-D的对数搜索,三步搜索,联合搜索。尽管这些方法减少了功耗,其结果是视频压缩性能的降低,因为这些算法的本质是减少了运动搜索的空间。为了实现运动搜索的低功耗,在电路领域又提出了搜索窗口和时钟管理的措施。但这些方法都是在牺牲视频压缩比性能的基础进行的折中,并没有强调算法映射结构上做出处理。 本论文提出了一种新的解决MPEG-4运动估计运算的低功耗实时处理器架构。其基础是采用了心肌阵列并行处理技术和低功耗控制电路。运动估计的繁复运算通过心肌阵列分布式运算得到有效处理。从理论上看,心肌阵列有其简单易理解性,然后,由于FPGA的互联网络有限性,设计这样一个阵列仍有许多值得注意的问题。论文提出使用保守近似处理在全局运动估计中减少功耗,其本质是消除不必要的冗余运算。宏块的最小误差匹配是一个典型的串行操作过程。论文新提出的方法是在进行绝对匹配前使用保守计算,如果保守误差值与最小误差差别过大,则不进行绝对误差计算。 总的说来,论文实现了两个目标:通过心肌阵列实现了实时的运动估计编码,通过在算法层次引入控制电路,降低运动估计电路的功耗。
上传时间: 2013-06-23
上传用户:lacsx