求一个复正弦加白噪声随机过程的信号: xn=exp(j*pi*n-j*pi)+exp(j*w0*n-j*0.7*pi)+v v(n)为零均值白噪声。S/N=10dB。取P=3,构造4阶的自相关矩阵R的基于MUSIC算法的功率谱估计的MATLAB程序
上传时间: 2017-08-31
上传用户:franktu
Ex3-23 亲兄弟问题 « 问题描述: 给定n 个整数0 1 1 , , , n- a a a 组成的序列。序列中元素i a 的亲兄弟元素k a 定义为: min{ | } k i j n j j i a = a a ³ a < < 。 亲兄弟问题要求给定序列中每个元素的亲兄弟元素的位置。元素i a 的亲兄弟元素为k a 时,称k 为元素i a 的亲兄弟元素的位置。当元素i a 没有亲兄弟元素时,约定其亲兄弟元素 的位置为-1。 例如,当n=10,整数序列为6,1,4,3,6,2,4,7,3,5 时,相应的亲兄弟元素位 置序列为:4,2,4,4,7,6,7,-1,9,-1。 « 编程任务: 对于给定的n个整数0 1 1 , , , n- a a a 组成的序列,试用抽象数据类型栈,设计一个O(n) 时间算法,计算相应的亲兄弟元素位置序列。 « 数据输入: 由文件input.txt提供输入数据。文件的第1 行有1 个正整数n,表示给定给n个整数。 第2 行是0 1 1 , , , n- a a a 。 « 结果输出: 程序运行结束时,将计算出的与给定序列相应的亲兄弟元素位置序列输出到output.txt 中。 输入文件示例 输出文件示例 input.txt 10 4 2 4 4 7 6 7 -1 9 -1 output.txt 6 1 4 3 6 2 4 7 3 5
上传时间: 2013-12-17
上传用户:shizhanincc
问题描述 设有n种不同面值的硬币,各硬币的面值存于数组T[1:n]中。现要用这些面值的硬币来找钱,可以实用的各种面值的硬币个数不限。当只用硬币面值T[1],T[2],…,T[i]时,可找出钱数j的最少硬币个数记为C(i,j)。若只用这些硬币面值,找不出钱数j时,记C(i,j)=∞。 编程任务 设计一个动态规划算法,对1≤j≤L,计算出所有的C( n,j )。算法中只允许实用一个长度为L的数组。用L和n作为变量来表示算法的计算时间复杂性 数据输入 由文件input.txt提供输入数据。文件的第1行中有1个正整数n(n<=13),表示有n种硬币可选。接下来的一行是每种硬币的面值。由用户输入待找钱数j。 结果输出 程序运行结束时,将计算出的所需最少硬币个数输出到文件output.txt中。
标签:
上传时间: 2016-07-28
上传用户:yangbo69
Hopfield 网——擅长于联想记忆与解迷路 实现H网联想记忆的关键,是使被记忆的模式样本对应网络能量函数的极小值。 设有M个N维记忆模式,通过对网络N个神经元之间连接权 wij 和N个输出阈值θj的设计,使得: 这M个记忆模式所对应的网络状态正好是网络能量函数的M个极小值。 比较困难,目前还没有一个适应任意形式的记忆模式的有效、通用的设计方法。 H网的算法 1)学习模式——决定权重 想要记忆的模式,用-1和1的2值表示 模式:-1,-1,1,-1,1,1,... 一般表示: 则任意两个神经元j、i间的权重: wij=∑ap(i)ap(j),p=1…p; P:模式的总数 ap(s):第p个模式的第s个要素(-1或1) wij:第j个神经元与第i个神经元间的权重 i = j时,wij=0,即各神经元的输出不直接返回自身。 2)想起模式: 神经元输出值的初始化 想起时,一般是未知的输入。设xi(0)为未知模式的第i个要素(-1或1) 将xi(0)作为相对应的神经元的初始值,其中,0意味t=0。 反复部分:对各神经元,计算: xi (t+1) = f (∑wijxj(t)-θi), j=1…n, j≠i n—神经元总数 f()--Sgn() θi—神经元i发火阈值 反复进行,直到各个神经元的输出不再变化。
上传时间: 2015-03-16
上传用户:JasonC
一个基于GTK+的单词数值计算器,1、 按照规则计算单词的值,如果 A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 26个字母(全部用大写)的值分别为 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,如: WINJACK这个单词的值就为:W+I+N+J+A+C+K=23+9+14+1+3+11=71% HARDWORK=H+A+R+D+W+O+R+D=8+1+18+4+23+15+18+11=98% LOVE=L+O+V+E=12+15+22+5=54% LUCK=L+U+C+K=12+21+3+11=47% ATTITUDE= A+T+T+I+T+U+D+E=1+20+20+9+20+24+4+5=100% 2、对程序的界面布局参考如下图所示,在第一个单行文本框输入一个单词,点击“计算”按钮,按照以上算法计算出该单词的值。 3、如果在最下面的单行文本框输入一个文件路径,此文件每行记录一个单词,那么经过程序计算出各个单词的值,并把结果输出到当前目录下result.txt文件中。如果文件不存在,应该提示错误。
上传时间: 2014-01-11
上传用户:康郎
实验源代码 //Warshall.cpp #include<stdio.h> void warshall(int k,int n) { int i , j, t; int temp[20][20]; for(int a=0;a<k;a++) { printf("请输入矩阵第%d 行元素:",a); for(int b=0;b<n;b++) { scanf ("%d",&temp[a][b]); } } for(i=0;i<k;i++){ for( j=0;j<k;j++){ if(temp[ j][i]==1) { for(t=0;t<n;t++) { temp[ j][t]=temp[i][t]||temp[ j][t]; } } } } printf("可传递闭包关系矩阵是:\n"); for(i=0;i<k;i++) { for( j=0;j<n;j++) { printf("%d", temp[i][ j]); } printf("\n"); } } void main() { printf("利用 Warshall 算法求二元关系的可传递闭包\n"); void warshall(int,int); int k , n; printf("请输入矩阵的行数 i: "); scanf("%d",&k); 四川大学实验报告 printf("请输入矩阵的列数 j: "); scanf("%d",&n); warshall(k,n); }
上传时间: 2016-06-27
上传用户:梁雪文以
# include<stdio.h> # include<math.h> # define N 3 main(){ float NF2(float *x,float *y); float A[N][N]={{10,-1,-2},{-1,10,-2},{-1,-1,5}}; float b[N]={7.2,8.3,4.2},sum=0; float x[N]= {0,0,0},y[N]={0},x0[N]={}; int i,j,n=0; for(i=0;i<N;i++) { x[i]=x0[i]; } for(n=0;;n++){ //计算下一个值 for(i=0;i<N;i++){ sum=0; for(j=0;j<N;j++){ if(j!=i){ sum=sum+A[i][j]*x[j]; } } y[i]=(1/A[i][i])*(b[i]-sum); //sum=0; } //判断误差大小 if(NF2(x,y)>0.01){ for(i=0;i<N;i++){ x[i]=y[i]; } } else break; } printf("经过%d次雅可比迭代解出方程组的解:\n",n+1); for(i=0;i<N;i++){ printf("%f ",y[i]); } } //求两个向量差的二范数函数 float NF2(float *x,float *y){ int i; float z,sum1=0; for(i=0;i<N;i++){ sum1=sum1+pow(y[i]-x[i],2); } z=sqrt(sum1); return z; }
上传时间: 2019-10-13
上传用户:大萌萌撒
#include <stdio.h> #include <stdlib.h> #define SMAX 100 typedef struct SPNode { int i,j,v; }SPNode; struct sparmatrix { int rows,cols,terms; SPNode data [SMAX]; }; sparmatrix CreateSparmatrix() { sparmatrix A; printf("\n\t\t请输入稀疏矩阵的行数,列数和非零元素个数(用逗号隔开):"); scanf("%d,%d,%d",&A.cols,&A.terms); for(int n=0;n<=A.terms-1;n++) { printf("\n\t\t输入非零元素值(格式:行号,列号,值):"); scanf("%d,%d,%d",&A.data[n].i,&A.data[n].j,&A.data[n].v); } return A; } void ShowSparmatrix(sparmatrix A) { int k; printf("\n\t\t"); for(int x=0;x<=A.rows-1;x++) { for(int y=0;y<=A.cols-1;y++) { k=0; for(int n=0;n<=A.terms-1;n++) { if((A.data[n].i-1==x)&&(A.data[n].j-1==y)) { printf("%8d",A.data[n].v); k=1; } } if(k==0) printf("%8d",k); } printf("\n\t\t"); } } void sumsparmatrix(sparmatrix A) { SPNode *p; p=(SPNode*)malloc(sizeof(SPNode)); p->v=0; int k; k=0; printf("\n\t\t"); for(int x=0;x<=A.rows-1;x++) { for(int y=0;y<=A.cols-1;y++) { for(int n=0;n<=A.terms;n++) { if((A.data[n].i==x)&&(A.data[n].j==y)&&(x==y)) { p->v=p->v+A.data[n].v; k=1; } } } printf("\n\t\t"); } if(k==1) printf("\n\t\t对角线元素的和::%d\n",p->v); else printf("\n\t\t对角线元素的和为::0"); } int main() { int ch=1,choice; struct sparmatrix A; A.terms=0; while(ch) { printf("\n"); printf("\n\t\t 稀疏矩阵的三元组系统 "); printf("\n\t\t*********************************"); printf("\n\t\t 1------------创建 "); printf("\n\t\t 2------------显示 "); printf("\n\t\t 3------------求对角线元素和"); printf("\n\t\t 4------------返回 "); printf("\n\t\t*********************************"); printf("\n\t\t请选择菜单号(0-3):"); scanf("%d",&choice); switch(choice) { case 1: A=CreateSparmatrix(); break; case 2: ShowSparmatrix(A); break; case 3: SumSparmatrix(A); break; default: system("cls"); printf("\n\t\t输入错误!请重新输入!\n"); break; } if (choice==1||choice==2||choice==3) { printf("\n\t\t"); system("pause"); system("cls"); } else system("cls"); } }
上传时间: 2020-06-11
上传用户:ccccy
(1)输入E条弧<j,k>,建立AOE-网的存储结构 (2)从源点v出发,令ve[0]=0,按拓扑排序求其余各项顶点的最早发生时间ve[i](1<=i<=n-1).如果得到的拓朴有序序列中顶点个数小于网中顶点数n,则说明网中存在环,不能求关键路径,算法终止 否则执行步骤(3)(3)从汇点v出发,令vl[n-1]=ve[n-1],按逆拓朴排序求其余各顶点的最迟发生时间vl[i](n-2>=i>=2). (4)根据各顶点的ve和vl值,求每条弧s的最早发生时间e(s)和最迟开始时间l(s).若某条弧满足条件e(s)=l(s),则为关键活动.
上传时间: 2014-11-28
上传用户:fredguo
邻接矩阵类的根是A d j a c e n c y W D i g r a p h,因此从这个类开始。程序1 2 - 1给出了类的描述。程 序中,先用程序1 - 1 3中函数Make2DArray 为二组数组a 分配空间,然后对数组a 初始化,以描述 一个n 顶点、没有边的图的邻接矩阵,其复杂性为( n2 )。该代码没有捕获可能由M a k e 2 D A r r a y 引发的异常。在析构函数中调用了程序1 - 1 4中的二维数组释放函数D e l e t e 2 D
标签: 矩阵
上传时间: 2013-12-21
上传用户:lanjisu111