*J

【JavaScript】for循环小练习

百般思念 提交于 2021-02-18 14:30:00
1、输出1-100的和 1 var sum = 0 ; 2 for ( var i=1;i<=100;i++ ){ 3 sum = sum + i; 4 } 5 document.write(sum); 2、输出1-100奇数的和 1         var sum = 0 2         for ( var i=1;i<=100;i+=2 ){ 3 sum = sum+ i; 4 } 5 document.write(sum); 3、输出1-100偶数的和 1         var sum = 0 ; 2 for ( var i=2;i<=100;i+=2 ){ 3 sum = sum+ i; 4 } 5 document.write(sum); 4、打印99乘法口诀表 1       3 var num =0 ; 4 document.write("<table border='0' cellspacing='0' cellpadding='0'>" ); 5 for (var i=9;i>=1;i-- ){     //控制行 6 document.write("<tr>" ) 7 for (var j=1;j<=i;j++ ){     //控制列 8 9 document.write("<td>"+i+"*"+j+"="+i*j+"</td>" ); 10 } 11

Searching the Web UVA

筅森魡賤 提交于 2021-02-15 17:12:08
  The word “search engine” may not be strange to you. Generally speaking, a search engine searches the web pages available in the Internet, extracts and organizes the information and responds to users’ queries with the most relevant pages. World famous search engines, like GOOGLE, have become very important tools for us to use when we visit the web. Such conversations are now common in our daily life: “What does the word like ∗ ∗ ∗ ∗ ∗∗ mean?” “Um. . . I am not sure, just google it.”   In this problem, you are required to construct a small search engine. Sounds impossible, does it? Don’t worry

母函数

天大地大妈咪最大 提交于 2021-02-14 03:48:49
今天要介绍一下母函数,定义为: 生成 函数 即母函数,是组合数学中尤其是计数方面的一个重要理论和工具。 生成函数 有普通型生成函数和指数型生成函数两种,其中普通型用的比较多。形式上说,普通型生成函数用于解决 多重集 的组合问题,而指数型母函数用于解决多重集的排列问题。母函数还可以解决递归数列的通项问题(例如使用母函数解决斐波那契数列的通项公式)。 在数学中,某个序列的 母函数(Generating function,又称生成函数) 是一种形式幂级数,其每一项的系数可以提供关于这个序列的信息。使用母函数解决问题的方法称为 母函数方法 。 母函数可分为很多种,包括 普通母函数 、 指数母函数 、 L级数 、 贝尔级数 和 狄利克雷级数 。对每个序列都可以写出以上每个类型的一个母函数。构造母函数的目的一般是为了解决某个特定的问题,因此选用何种母函数视乎序列本身的特性和问题的类型。 这里先给出两句话,不懂的可以等看完这篇文章再回过头来看: 1.“把组合问题的加法法则和幂级数的乘幂对应起来” 2.“母函数的思想很简单 — 就是把离散数列和幂级数一 一对应起来,把离散数列间的相互结合关系对应成为幂级数间的运算关系,最后由幂级数形式来确定离散数列的构造. 我们首先来看下这个多项式乘法: 母函数图(1) 由此可以看出: 1.x的系数是a1,a2,…an 的单个组合的全体。 2. x^2的系数是a1

luoguP5495:Dirichlet 前缀和

梦想的初衷 提交于 2021-01-14 06:53:32
题意: 给定数组a[]的生成方式,然后b[i]=∑a[j] ,(i%j==0),求所有b[i]的异或和。所有运算%2^32; 思路: 高维前缀和的思想,先筛出所有素数,然后把每个素数当成一维,那么分开考虑即可。复杂度O(NloglogN); 如果有这一维就加进去就可以了~神奇。 #include<bits/stdc++.h> #define rep(i,a,b) for(int i=a;i<=b;i++) using namespace std; const int maxn= 20000010 ; #define uint unsigned int uint seed; inline uint getnext(){ seed ^=seed<< 13 ; seed ^=seed>> 17 ; seed ^=seed<< 5 ; return seed; } uint a[maxn],ans; bool vis[maxn]; int p[maxn/ 10 ],cnt,N; void solve() { rep(i, 2 ,N){ if (!vis[i]) p[++cnt]= i; for ( int j= 1 ;j<=cnt&&i*p[j]<=N;j++ ){ vis[i *p[j]]= 1 ; if (i%p[j]== 0 ) break ; } } rep(i, 1 ,cnt)

利用多项式实现图像几何校正(Matlab实现)

房东的猫 提交于 2021-01-14 06:12:06
1.原理简述: 根据两幅图像中的一些已知对应点(控制点对),建立函数关系式,通过坐标变换,实现失真图像的几何校正。 设两幅图像坐标系统之间畸变关系能用解析式来描述: 根据上述的函数关系,可以依次计算畸变图像每个像素的矫正坐标值,保持各像素值不变,这样生成一幅矫正图像。 2.实现过程: (1)因此首先要得到多项式,matlab提供了拟合多项式的函数 Isqcurvefit, 格式 : lsqcurvefit(f,a,x,y) f:符号函数句柄 a:最开始预估的值(预拟合的未知参数的估计值)。如上面的问题如果我们预估A为1,B为2,则a=[1 2] x:我们已经获知的x的值 y:我们已经获知的x对应的y的值 函数的返回值为对应多项式系数组成的一维数组。 示例(二次多项式): 建立由校正图像到畸变图像的函数 function [F] = fun(a,b) x = b(:,1 ); y = b(:,2 ); F = a(1)+a(2)*x+a(3)*y+a(4)*x.^2+a(5)*x.*y+a(6)*y.^2; end x0 = fixedPoints(:,1 ); y0 = fixedPoints(:,2 ); x1 = movingPoints(:,1 ); y1 = movingPoints(:,2 ); data = [x1,y1]; a = [1 1 1 1 1 1 ]; a1

线性筛素数、欧拉函数

社会主义新天地 提交于 2021-01-12 04:38:38
判断一个数n是否是素数,众所周知可以用O(sqrt(n))的方法。 但是如果要求很多个数,这个方法就不太好了。(比如所有小于n的数,复杂度就是O(n 1.5 )。) 埃拉托斯特尼筛法,大家都听说过。从2到n,去掉每个数的倍数,剩下来的就是质数。 不过这个方法会重复删除,比如6是2、3的倍数,会被删2次,因子越多,删的次数就越多。 改进之后的线性筛保证每个数只被最小的质因子删,所以是O(n)的。 #include<cstdio> #include <cstring> #define MAXN 100005 #define MAXL 1299710 int prime[MAXN]; int check[MAXL]; int tot = 0 ; memset(check, 0 , sizeof (check)); for ( int i = 2 ; i < MAXL; ++ i) { if (! check[i]) { prime[tot ++] = i; } for ( int j = 0 ; j < tot; ++ j) { if (i * prime[j] > MAXL) { break ; } check[i *prime[j]] = 1 ; if (i % prime[j] == 0 ) { break ; } } } View Code tot是计数用的,prime保存质数

运用canvas绘折线图和柱状图

杀马特。学长 韩版系。学妹 提交于 2021-01-07 04:25:50
一、绘制折线图 1、首先,随便定义一个数组对象代表坐标,然后绘出打底的网格线: <canvas width="600px" height="400px" ></canvas> <script> var mycanvas=document.querySelector("canvas" ); var pan=mycanvas.getContext("2d" ); var wid= mycanvas.width; var high= mycanvas.height; var sz= [ { x: 50 , y: 300 }, { x: 150 , y: 100 }, { x: 200 , y: 200 }, { x: 400 , y: 300 }, { x: 500 , y: 50 } ] for (i=1;i<Math.floor(high/10);i++) { pan.moveTo(0,10*i+0.5 ); pan.lineTo(wid, 10*i+0.5 ); pan.strokeStyle ="#eee" ; pan.stroke(); } for (j=1;j<Math.floor(wid/10);j++) { pan.moveTo(10*j+0.5,0 ); pan.lineTo( 10*j+0.5 ,high); pan.strokeStyle ="#eee" ; pan

C语言实现迷宫小游戏

倖福魔咒の 提交于 2020-11-27 04:30:56
代码如下,时间太晚,有空补注释: 1 #include<stdio.h> 2 #include< string .h> 3 #include<time.h> 4 #include<stdlib.h> 5 #include<windows.h> 6 #define n 21 7 #define m 37 8 #define up 1 9 #define down 2 10 #define left 3 11 #define right 4 12 #define Key_Up 72 13 #define Key_Down 80 14 #define Key_Right 77 15 #define Key_Left 75 16 typedef struct Point 17 { 18 int x; 19 int y; 20 int pos; 21 }point; 22 HANDLE h_out_buf; // 缓冲技术解决闪屏 23 COORD coord={ 0 , 0 }; 24 DWORD bytes= 0 ; 25 char data[n+ 2 ][m* 2 + 4 ]; 26 int maze[n+ 2 ][m+ 2 ]; 27 point p[ 10000 ]; 28 int l= 0 ; 29 point start,end; 30 void add(point t) 31

四元数乘法计算和学习体会

柔情痞子 提交于 2020-10-10 14:23:28
关于两个四元数的乘法,网上查了一大堆,没一个说明白的。 我就想知道给我两个四元数,我该怎么算出来它们的乘积。 这么简单的需求都没法找到答案,实在对不起四元数的江湖地位。 要想计算四元数的乘法,首先需要知道 四元数常见的表示方法 : 其中复数式、矢量式和三角式基本是一回事,都是把四元数写成一个标量和一个向量的和的形式。指数式和矩阵式就是一种表示方法,涉及到数学意义和运算还是主要用前三种。 下面介绍不同四元数表示形式的乘法: 1.复数式 这个结果这么复杂,而且看起来毫无规律,当然不能死记硬背。 其实就是简单的展开相乘,注意涉及到i*j的时候按照叉乘右手定则判断,即i*j=k;遇到i*i的时候按照复数运算,或者说按照点乘取负计算,即i*i=-1 当然也可以按照下面的乘数表进行运算 × 1 i j k 1 1 i j k i i -1 k -j j j -k -1 i k k j -i -1 例如,(2+i)(i+j)=2*i+2*j+i*i+i*j=2i+2j-1+k=-1+2i+2j+k 从上面可以看出,四元数的乘法既不是叉乘,也不是点乘,是叉乘和点乘的混合,涉及到正交向量相乘如i*j时是叉乘,涉及到相同向量相乘如i*i时,却是点乘取负,或者看作复数相乘。 因此 四元数乘法 和叉乘类似, 没有乘法交换律 ,如i×j=k,但是j×i=-k。 用复数式计算四元数乘法十分繁琐

复试临时练习

五迷三道 提交于 2020-10-05 06:53:43
  由于疫情原因,考研复试安排到15.16两天,对学校前两年的复试真题做了三遍,将C primer Plus也翻看了一下,战线太长,后劲儿不足; 想到初试成绩排到倒数,还是想挣扎一下的。 计算机的内容实在是太多太杂,虽然有一些面试经验,但是这次复试不太一样 // 菲波拉契数前20项和 #include<stdio.h> #define N 20 int main() { int a[N]={ 1 , 1 }; int i,sum= 0 ; for (i= 0 ;i<N;i++ ) { if (i> 1 ) a[i]=a[i- 1 ]+a[i- 2 ]; sum += a[i]; } printf( " 前%d项和为%d " ,N,sum); return 0 ; } View Code // 回文字符串判断 #include<stdio.h> #include < string .h> #define N 100 int huiwen( char * p); int main() { char a[N]; gets(a); int flag; flag = huiwen(a); if (flag) printf( " 回文字符串 " ); else printf( " 非回文字符串 " ); return 0 ; } int huiwen( char * p) { char