(1)S2S1=00时,实现模3计数,触发器的状态一次0→1→2→0; (2)S2S1=01时,实现模5计数,触发器的状态一次0→1→2→3→4→0; (3) S2S1=10时,实现模7计数,触发器的状态一次0→1→2→3→4→5→6→0; (4) S2S1=11时,实现模7计数,触发器的状态一次0→1→2→3→4→5→6→7→0
标签: 00
上传时间: 2014-01-04
上传用户:kikye
#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..
以后再也不用担心写爬虫ip被封,不用担心没钱买代理ip的烦恼了 在使用python写爬虫时候,你会遇到所要爬取的网站有反爬取技术比如用同一个IP反复爬取同一个网页,很可能会被封。如何有效的解决这个问题呢?我们可以使用代理ip,来设置代理ip池。 现在教大家一个可获取大量免费有效快速的代理ip方法,我们访问西刺免费代理ip网址 这里面提供了许多代理ip,但是我们尝试过后会发现并不是每一个都是有效的。所以我们现在所要做的就是从里面提供的筛选出有效快速稳定的ip。 以下介绍的免费获取代理ip池的方法: 优点:免费、数量多、有效、速度快 缺点:需要定期筛选 主要思路: 从网址上爬取ip地址并存储 验证ip是否能使用-(随机访问网址判断响应码) 格式化ip地址 代码如下: 1.导入包 import requests from lxml import etree import time 1 2 3 2.获取西刺免费代理ip网址上的代理ip def get_all_proxy(): url = 'http://www.xicidaili.com/nn/1' headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36', } response = requests.get(url, headers=headers) html_ele = etree.HTML(response.text) ip_eles = html_ele.xpath('//table[@id="ip_list"]/tr/td[2]/text()') port_ele = html_ele.xpath('//table[@id="ip_list"]/tr/td[3]/text()') proxy_list = [] for i in range(0,len(ip_eles)): proxy_str = 'http://' + ip_eles[i] + ':' + port_ele[i] proxy_list.append(proxy_str) return proxy_list 1 2 3 4 5 6 7 8 9 10 11 12 13 14 3.验证获取的ip def check_all_proxy(proxy_list): valid_proxy_list = [] for proxy in proxy_list: url = 'http://www.baidu.com/' proxy_dict = { 'http': proxy } try: start_time = time.time() response = requests.get(url, proxies=proxy_dict, timeout=5) if response.status_code == 200: end_time = time.time() print('代理可用:' + proxy) print('耗时:' + str(end_time - start_time)) valid_proxy_list.append(proxy) else: print('代理超时') except: print('代理不可用--------------->'+proxy) return valid_proxy_list 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 4.输出获取ip池 if __name__ == '__main__': proxy_list = get_all_proxy() valid_proxy_list = check_all_proxy(proxy_list) print('--'*30) print(valid_proxy_list) 1 2 3 4 5 技术能力有限欢迎提出意见,保证积极向上不断学习 ———————————————— 版权声明:本文为CSDN博主「彬小二」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.net/qq_39884947/article/details/86609930
上传时间: 2019-11-15
上传用户:fygwz1982
已知一个整数序列A=(a0,a1,…,an-1),其中0≤ai<n(0≤i<n)。若存在ap1=ap2=…=apm=x且m>n/2(0≤pk<n,1≤k≤m),则称x为A的主元素。例如A= ( 0,5,5,3,5,7,5,5 ),则5为主元素;又如A= ( 0,5,5,3,5,1,5,7 ),则A中没有主元素。 假设A中的n个元素保存在一个一维数组中,请设计一个尽可能高效的算法,找出A的主元素。若存在主元素,则输出该元素;否则输出-1。
上传时间: 2020-03-04
上传用户:霖1234
目前,小功率通用或专用变频器以及交流变频家电产品大多采用典型的交-直-交电压型逆变器(vsi)结构,逆变实现一般采用双极性 pwm调制技术,即在同一逆变桥臂上、下 2个开关管施加互补的触发信号。由于开关管自身的特性:开通和关断都需要一定的时间,且关断时间比开通时间要长。因此,若按照理想的触发信号控制开关管的开通和关断,就可能导致同一桥臂的2个开关管直通而损坏开关器件。为了防止这种直通现象的发生,必须在它们开通和关断之间插入一定延时的时间,这个延时时间就称为死区。死区时间内2个开关管都处于关断状态,负载电流通过反并联二极管续流,负载电压不受开关管控制,由此造成负载电压波形发生畸变,逆变器的平均输出电压降低,并产生与死区时间以及调制比成正比的3,5,7,…次谐波分量,进而影响到电动机的输入电流和运行质量。当逆变器工作在低输出频率、开关频率较高和负载感性很弱时这种影响相当严重[1.2]。为此,需要对死区的影响进行补偿,以提高变频器的输出性能和改善电动机的运行工况。常用的补偿方法有电流反馈型和电压反馈型,也有单边补偿与双边补偿、纯硬件补偿与硬件软件结合补偿等具体手段,但其工作原理相似,都是产生一个与死区引起的误差波形反向的波形,以抵消死区的作用[3.10].motorola公司推出的电动机专用控制芯片mr16内部集成了专门的死区补偿硬件电路,只需要简单的外围电流极性检测和简单的软件编程就可以实现可靠的死区补偿
上传时间: 2022-06-26
上传用户:ttalli
98年全国大学生数学建模竞赛B题“水灾巡视问题”,是一个推销员问题,本题有53个点,所有可能性大约为exp(53),目前没有好方法求出精确解,既然求不出精确解,我们使用模拟退火法求出一个较优解,将所有结点编号为1到53,1到53的排列就是系统的结构,结构的变化规则是:从1到53的排列中随机选取一个子排列,将其反转或将其移至另一处,能量E自然是路径总长度。具体算法描述如下:步1: 设定初始温度T,给定一个初始的巡视路线。步2 :步3 --8循环K次步3:步 4--7循环M次步4:随机选择路线的一段步5:随机确定将选定的路线反转或移动,即两种调整方式:反转、移动。步6:计算代价D,即调整前后的总路程的长度之差步7:按照如下规则确定是否做调整:如果D0,则按照EXP(-D/T)的概率进行调整步8:T*0.9-->T,降温
上传时间: 2015-03-14
上传用户:himbly
1. 总则 4 1.1. 概述 4 1.2. 卖方的建议书要求 5 1.3. 报价要求 6 2. 总体要求 7 2.1. 项目目标 7 2.2. 功能要求 7 2.3. 性能要求 7 2.4. 组网要求 7 2.5. 管理要求 8 2.6. 安全要求 8 3. 技术规范 9 3.1. 电子地图应用实现 9 3.1.1. 电子地图查询界面和方法 9 3.1.2. 电子地图回叫 10 3.1.3. 短信应用发布 11 3.1.4. 查询应用形式 11 3.2. 信息采编实现 12 3.2.1. 公交线路的编辑 12 3.2.2. 道路的编辑 12 3.2.3. 单位的编辑 12 3.2.4. 快速定位 13 3.2.5. 管理 13 3.2.6. 统计 13 3.2.7. 金融网点 13 3.2.8. 房产信息 14 3.2.9. 其他 14 3.3. 系统性能要求 14 3.4. 软件与数据库平台要求 14 3.5. 主机与存储设备要求 14 3.6. 系统安全性要求 14 3.7. 组网要求 14 3.8. 系统管理功能要求 15 3.9. 系统的可扩展性要求 16 3.10. 系统维护要求 16 4. 软件开发周期 18 5. 系统安装、调试、试运行及验收 19 5.1. 安装和调试 19 5.2. 验收 19 6. 技术服务和技术培训 20 6.1. 技术服务 20 6.2. 技术培训 20 7. 技术文件
上传时间: 2013-12-20
上传用户:cx111111
第一章绪论 5 1.1课题来源 5 1.2 开发工具的选择 5 1.3 本文所做工作 6 第二章 需求分析 7 2.1 总体需求调查 7 2.1.1 组织结构图 7 2.1.2 系统目标 7 2.1.3 应用现状调查 7 2.1.4业务总体流程调查 8 2.2系统功能调查 9 2.2.1系统维护功能 9 2.3系统功能模块图 9 第三章 概要设计 10 3.1概念设计 10 3.2数据库设计 11 3.2.1 Yhklb用户口令表 11 第四章 详细设计 13 4.1启动界面设计 13 4.1.1 功能说明 13 4.1.2屏幕格式设计 13 4.2 登录窗口设计 14 4.2.1功能说明 14 4.2.2屏幕格式设计 14 4.2.3源程序分析 14 4.3 主窗口设计 16 4.3.1功能说明 16 4.3.2屏幕格式设计 16 4.3.3源程序分析 17 4.4系统维护模块设计 22 4.4.1基本参数维护 22
上传时间: 2014-01-22
上传用户:libinxny
1.有三根杆子A,B,C。A杆上有若干碟子 2.每次移动一块碟子,小的只能叠在大的上面 3.把所有碟子从A杆全部移到C杆上 经过研究发现,汉诺塔的破解很简单,就是按照移动规则向一个方向移动金片: 如3阶汉诺塔的移动:A→C,A→B,C→B,A→C,B→A,B→C,A→C 此外,汉诺塔问题也是程序设计中的经典递归问题
上传时间: 2016-07-25
上传用户:gxrui1991
网页采集系统 ================= 安装配置 ------- 1 程序我就不说了 2 配置文件 applicationContext.xml 里面有详细的注释 3 已经包含了多个论坛博客的参数,如CSDN论坛、博客园、新浪博客、百度Hi、ccidnet等的解析参数 需要的类库 --------- 1 Spring 2.5 2 common-logging 1.1 3 paoding-analysis 2.0.4-beta 4 commons-dbcp-1.2.2.jar 5 mysql-connector-java-5.1.7-bin.jar 6 commons-pool-1.4.jar 7 Lucene.2.4.0.jar 8 Lucene-highlighter-2.4.0.jar 9 java2000.jar 演示例子 ------- 本地:在com.laozizhu.search.demo目录下面 B/S: http://search.laozizhu.com
标签: applicationContext xml 页 采集系统
上传时间: 2017-04-07
上传用户:牧羊人8920