Euler函数: m = p1^r1 * p2^r2 * …… * pn^rn ai >= 1 , 1 <= i <= n Euler函数: 定义:phi(m) 表示小于等于m并且与m互质的正整数的个数。 phi(m) = p1^(r1-1)*(p1-1) * p2^(r2-1)*(p2-1) * …… * pn^(rn-1)*(pn-1) = m*(1 - 1/p1)*(1 - 1/p2)*……*(1 - 1/pn) = p1^(r1-1)*p2^(r2-1)* …… * pn^(rn-1)*phi(p1*p2*……*pn) 定理:若(a , m) = 1 则有 a^phi(m) = 1 (mod m) 即a^phi(m) - 1 整出m 在实际代码中可以用类似素数筛法求出 for (i = 1 i < MAXN i++) phi[i] = i for (i = 2 i < MAXN i++) if (phi[i] == i) { for (j = i j < MAXN j += i) { phi[j] /= i phi[j] *= i - 1 } } 容斥原理:定义phi(p) 为比p小的与p互素的数的个数 设n的素因子有p1, p2, p3, … pk 包含p1, p2…的个数为n/p1, n/p2… 包含p1*p2, p2*p3…的个数为n/(p1*p2)… phi(n) = n - sigm_[i = 1](n/pi) + sigm_[i!=j](n/(pi*pj)) - …… +- n/(p1*p2……pk) = n*(1 - 1/p1)*(1 - 1/p2)*……*(1 - 1/pk)
上传时间: 2014-01-10
上传用户:wkchong
sbit CS = P1^0 sbit SCK = P1^6 sbit SIN = P1^7 sbit SOUT = P1^5 sbit WP = P1^1 void XReady(void) void XSendByte(unsigned char b) unsigned char XGetByte(void) void XWriteEn(void) void XWriteDis(void) unsigned char XReadStatus(void) void XWipPoll(void) void XWriteStatus(unsigned char b) void XReadData(unsigned char *m,unsigned char x,unsigned char n) void XWriteData(unsigned char *m,unsigned char x,unsigned char n) #define XResetDog() {CS=0 CS=1 } void InitX5045(void)
上传时间: 2014-01-17
上传用户:lijinchuan
C程序设计语言(第二版,中文版,B.W.Kernighan、D.M.Ritchie 著)
上传时间: 2017-07-08
上传用户:1109003457
C语言是在 70 年代初问世的。一九七八年由美国电话电报公司(AT&T)贝尔实验室正 式 发 表 了 C 语 言 。 同 时 由 B.W.Kernighan 和 D.M.Ritchit 合 著 了 著 名 的 “THE C PROGRAMMING LANGUAGE” 一书。 通常简称为《 K&R》, 也有人称之为《 K&R》 标准。 但是, 在 《 K&R》中并没有定义一个完整的标准 C 语言, 后来由美国国家标准协会 ( American National Standards Institute) 在此基础上制定了一个 C 语言标准, 于一九八三年发表。 通常 称之为 ANSI C。
上传时间: 2016-08-03
上传用户:vito
#include <iostream.h> #include <string.h> #include <iomanip.h> #include "Stud.h" Stud::Stud(){} char *Stud::getno() //获取学号 { return no; } char *Stud::getname() //获取姓名 { return name; } char *Stud::getsex() //获取性别 { return sex; } char *Stud::getminzu() //获取民族 { return minzu; } char *Stud::getaddress() //获取出生地 { return address; } char *Stud::getbirth() //获取出生年月 { return birth; } int Stud::gettag() //获取姓名 { return tag; } void Stud::changeno(char n[]) //设置学号 { strcpy(no,n); } void Stud::changename(char na[]) //设置姓名 { strcpy(name,na); } void Stud::changesex(char s[]) //设置性别 { strcpy(sex,s); } void Stud::changeminzu(char m[]) //设置民族 { strcpy(minzu,m); } void Stud::changeaddress(char a[]) //设置出生地 { strcpy(address,a); } void Stud::changebirth(char b[]) //设置出生年月 { strcpy(birth,b); } void Stud::addstudent(char *rn,char *rna) //增加学生 { strcpy(no,rn); strcpy(name,rna); } void Stud::addstudent(char *rn,char *rna,char *rs,char *rm,char *ra,char *rb) //增加学生 { tag=0; strcpy(no,rn); strcpy(name,rna); strcpy(sex,rs); strcpy(minzu,rm); strcpy(address,ra); strcpy(birth,rb); } void Stud::delstud() //设置删除标记 { tag=1; } void Stud::disp() //输出学生信息 { cout<<setw(15)<<no<<setw(10)<<name<<setw(10)<<sex<<setw(10)<<minzu<<setw(10)<<address<<setw(10)<<birth<<endl; } void Stud::display() //输出学生信息 { cout<<setw(15)<<no<<setw(10)<<name; }
标签: 学生
上传时间: 2016-12-29
上传用户:767483511
1. 编写M程序,利用图像点运算的线性函数:G = aF + b, 给出a、b的不同值,改变图像的对比度、亮度以及图像反相的效果。 2. 利用“二值图像与原图像做点乘,得到子图像”的原理.,编写M程序,构造特殊的二值图像,最终得到需要的子图像。 3. 编写M程序,实现两个大小不同图像的叠加。 4,(提高题)编写M程序,实现图像的动态平移。
上传时间: 2017-05-10
上传用户:mouroutao
费恩曼(R.P.Feynman)1918年生于布鲁克林区,1942年在普林斯顿获得博士学位。第二次世界大战期间在洛斯阿拉莫斯,尽管当时他还很年轻,但已在曼哈顿计划中发挥了重要作用。以后,他在康奈尔大学和加利福尼亚理工学院任教。1965年,因他在量子电动力学方面的工作和朝永振一郎及施温格(J.Schwinger)同获诺贝尔物理学奖。费因曼博士获得诺贝尔奖是由于成功地解决了量子电动力学理论问题,他也创立了说是液氦中起流动性现象的数学理论。此后,他和盖尔曼(M.Gell-Mann)在B衰变等弱相互作用领域内做出了奠基性的工作。在以后的几年里,他在夸克理论的发展中起了关键性的作用,提出了他的高能质子碰撞过程的部分子模型。除了这些成就之外,费恩曼博士将新的基本计算技术及记号法引时物理学,首先是无处不在的费恩曼图,在近代科学历史中,它比任何其他数学形式描述都更大地改变了对基本物理过程形成概念及进行计算的方法。费恩曼是一位卓越的教育家。在他区得的许多奖项中,他对1972年获得的奥斯特教学奖章特别感到自豪。在1963年第一次出版的《费恩曼物理学讲义》被《科学叛国人》杂志的一位评论员描写为“咬不动但富于营养并且津津有味。25年后它仍是教师和最好的初学学生的指导书”。为了使外行的公众增加对物理学的了解,费恩曼博士写了《物理定律和量子电动力学的性质:光和物质的奇特理论》。他还是许多高级出版物的作者,这些都成为研究人员和学生的经典参考书和教科书。费恩曼是一个活跃的公众人物。他在挑战者号调查委员会里的工作是从所周知的,特别是他的著名的O型环对寒冷的敏感性的演示,这是一个优美的实验,除了一杯冰水以外其他什么也不需要。费恩曼博士1960年在加利福尼亚州课程促进会中的工作却很少人知道,他在会上抨击了教材的平庸。仅仅罗列费恩曼的科学和教育成就并没有恰当抓信这个人的本质。即使是他 最最技术性的出版物的读者都知识道,费恩曼活跃的多面的人格在他所有的工作中都闪闪发光。除了作为物理学家,在各种不同的场合下他变成不同的人物:有进是无线电修理工,有时是锁具收藏家,艺术家、舞蹈家、邦戈(bongo)鼓手,甚至玛雅象形文字的解释者。对他的世界人们永远好奇,他是一个典型的经验主义者。费恩曼于1998年2月15日在洛杉矶逝世。
标签: 物理学
上传时间: 2022-04-24
上传用户:得之我幸78
FOC的控制核心——坐标变换■坐标系口一定子坐标系(静止)一A-B-C坐标系(三相定子绕组、相差120度)一a-β坐标系(直角坐标系:a轴与A轴重合、β轴超前a轴90度)口一转子坐标系(旋转)-d-q坐标系(d轴一转子磁极的轴线、q轴超前d轴90度)口一定向坐标系(旋转)M-T坐标系(M轴固定在定向的磁链矢量上,T轴超前M轴90度)转子磁场定向控制一-M-T坐标系与d-q坐标系重合FOC的控制核心——SVPWM■空间矢量口根据功率管的开关状态(上管导通是“1",关闭是“0")定义了8个空间矢量。其中000和111是零矢量。■扇区口空间矢量构成6个扇区口确定Vref位于哪个扇区,才能知道用哪对相邻的基本电压空间矢量去合成Vref。■参考电压矢量合成口利用基本电压空间矢量的线性时间组合得到定子参考电压Vref。■七段式SVPWM,由3段零矢量和4段相邻的两个非零矢量组成。3段零矢量分别位于PWM的开始、中间和结尾。■非零电压空间矢量能使电机磁通空间矢量产生运动,而零电压空间矢量使磁通空间矢量静止
标签: foc
上传时间: 2022-06-30
上传用户:qdxqdxqdxqdx
TLC2543是TI公司的12位串行模数转换器,使用开关电容逐次逼近技术完成A/D转换过程。由于是串行输入结构,能够节省51系列单片机I/O资源;且价格适中,分辨率较高,因此在仪器仪表中有较为广泛的应用。 TLC2543的特点 (1)12位分辩率A/D转换器; (2)在工作温度范围内10μs转换时间; (3)11个模拟输入通道; (4)3路内置自测试方式; (5)采样率为66kbps; (6)线性误差±1LSBmax; (7)有转换结束输出EOC; (8)具有单、双极性输出; (9)可编程的MSB或LSB前导; (10)可编程输出数据长度。 TLC2543的引脚排列及说明 TLC2543有两种封装形式:DB、DW或N封装以及FN封装,这两种封装的引脚排列如图1,引脚说明见表1 TLC2543电路图和程序欣赏 #include<reg52.h> #include<intrins.h> #define uchar unsigned char #define uint unsigned int sbit clock=P1^0; sbit d_in=P1^1; sbit d_out=P1^2; sbit _cs=P1^3; uchar a1,b1,c1,d1; float sum,sum1; double sum_final1; double sum_final; uchar duan[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; uchar wei[]={0xf7,0xfb,0xfd,0xfe}; void delay(unsigned char b) //50us { unsigned char a; for(;b>0;b--) for(a=22;a>0;a--); } void display(uchar a,uchar b,uchar c,uchar d) { P0=duan[a]|0x80; P2=wei[0]; delay(5); P2=0xff; P0=duan[b]; P2=wei[1]; delay(5); P2=0xff; P0=duan[c]; P2=wei[2]; delay(5); P2=0xff; P0=duan[d]; P2=wei[3]; delay(5); P2=0xff; } uint read(uchar port) { uchar i,al=0,ah=0; unsigned long ad; clock=0; _cs=0; port<<=4; for(i=0;i<4;i++) { d_in=port&0x80; clock=1; clock=0; port<<=1; } d_in=0; for(i=0;i<8;i++) { clock=1; clock=0; } _cs=1; delay(5); _cs=0; for(i=0;i<4;i++) { clock=1; ah<<=1; if(d_out)ah|=0x01; clock=0; } for(i=0;i<8;i++) { clock=1; al<<=1; if(d_out) al|=0x01; clock=0; } _cs=1; ad=(uint)ah; ad<<=8; ad|=al; return(ad); } void main() { uchar j; sum=0;sum1=0; sum_final=0; sum_final1=0; while(1) { for(j=0;j<128;j++) { sum1+=read(1); display(a1,b1,c1,d1); } sum=sum1/128; sum1=0; sum_final1=(sum/4095)*5; sum_final=sum_final1*1000; a1=(int)sum_final/1000; b1=(int)sum_final%1000/100; c1=(int)sum_final%1000%100/10; d1=(int)sum_final%10; display(a1,b1,c1,d1); } }
上传时间: 2013-11-19
上传用户:shen1230
7.1 并行接口概述并行接口和串行接口的结构示意图并行接口传输速率高,一般不要求固定格式,但不适合长距离数据传输7.2 可编程并行接口芯片82C55 7.2.1 8255的基本功能 8255具有2个独立的8位I/O口(A口和B口)和2个独立的4位I/O(C口上半部和C口下半部),提供TTL兼容的并行接口。作为输入时提供三态缓冲器功能,作为输出时提供数据锁存功能。其中,A口具有双向传输功能。8255有3种工作方式,方式0、方式1和方式2,能使用无条件、查询和中断等多种数据传送方式完成CPU与I/O设备之间的数据交换。B口和C口的引脚具有达林顿复合晶体管驱动能力,在1.5V时输出1mA电流,适于作输出端口。C口除用做数据口外,当8255工作在方式1和方式2时,C口的部分引脚作为固定的联络信号线。
标签: 并行接口
上传时间: 2013-10-25
上传用户:oooool