本篇博客仅做初赛复习用(其实对于博主来说绝大部分是新学的)
本来是想在笔记本上划拉划拉,但是记着记着就乱了,索性打在博客里更新、整理都方便。
电脑对于文件大小的计算有一些常见的单位
1B(byte,字节)= 8 bit(这里就是二进制“0”和“1”);
1KB(Kilobyte,千字节)=1024B= 2 10 2^{10} 210 B;
1MB(Megabyte,兆字节,百万字节,简称“兆”)=1024KB= 2 20 2^{20} 220 B;
1GB(Gigabyte,吉字节,十亿字节,又称“千兆”)=1024MB= 2 30 2^{30} 230 B;
1TB(Terabyte,万亿字节,太字节)=1024GB= 2 40 2^{40} 240 B;
1PB(Petabyte,千万亿字节,拍字节)=1024TB= 2 50 2^{50} 250 B;
例题:NOIP2014 TG初赛 T3 考1TB = 2 40 2^{40} 240 B
位图大小 N = 长 像 素 数 ∗ 宽 像 素 数 ∗ 位 图 位 数 8 ∗ 1024 K B N = \frac{长像素数*宽像素数*位图位数}{8*1024} KB N=8∗1024长像素数∗宽像素数∗位图位数KB
拿例题解释
NOIP2017 TG初赛
3.分辨率为 1600x900、16 位色的位图,存储图像信息所需的空间为( )。
A. 2812.5KB
B. 4218.75KB
C. 4320KB
D. 2880KB
答案是A, 1600 ∗ 900 ∗ 16 8 ∗ 1024 = 2812.5 K B \frac{1600*900*16}{8*1024}=2812.5 KB 8∗10241600∗900∗16=2812.5KB
(尽管博主实测画图创建的如此的位图比计算的小多了)
和在小学中学到的十进制数每一位的定义差不多,二进制数整数部分从第一位起分别代表 2 0 2^0 20 , 2 1 2^1 21 , 2 2 2^2 22 …
自然地,我们可以引申出K进制数的定义:
对于任意一个数 x x x ,若能表示成
x = a n ∗ k n + ⋯ + a 1 ∗ k 1 + a 0 ∗ k 0 + a − 1 ∗ k − 1 + ⋯ + a − m ∗ k − m x = a_n*k^n + \cdots + a_1*k^1 + a_0*k^0 + a_{-1}*k^{-1} + \cdots + a_{-m}*k^{-m} x=an∗kn+⋯+a1∗k1+a0∗k0+a−1∗k−1+⋯+a−m∗k−m
的形式,则它的K进制可表示为 ( a n a n − 1 ⋯ a 1 a 0 a − 1 ⋯ a − m + 1 a − m ) k (a_na_{n-1} \cdots a_1a_0a_{-1}\cdots a_{-m+1}a_{-m})_{k} (anan−1⋯a1a0a−1⋯a−m+1a−m)k
(貌似一进制也是可以的…)
将K进制转换为十进制,自然只需要我们按权相加就可以了。
比如 ( 1101.1 ) 2 = 1 ∗ k 3 + 1 ∗ 2 2 + 0 ∗ 2 1 + 1 ∗ 2 0 + 1 ∗ 2 − 1 = 13.5 (1101.1)_2 = 1*k^3 + 1*2^2 + 0*2^1 + 1*2^0 + 1*2^{-1} = 13.5 (1101.1)2=1∗k3+1∗22+0∗21+1∗20+1∗2−1=13.5
八进制 / 十六进制转二进制比较特殊(此处未完待续)
例题:
NOIP2018 TG初赛 3.设某算法的时间复杂度函数的递推方程是T(n) = T(n-1) + n(n 为正整数)及T(0) = 1,则该算法的时间复杂度为( )。
A. O( log n \log n logn)
B. O( n log n n \log n nlogn)
C. O( n n n)
D. O( n 2 n^2 n2)
把 T ( n ) = T ( n − 1 ) + n T(n)=T(n-1)+n T(n)=T(n−1)+n看成一个数列中, a n = a n − 1 + n a_n=a_{n-1}+n an=an−1+n
那么
a 2 − a 1 = 2 a_2-a_1=2 a2−a1=2
a 3 − a 2 = 3 a_3-a_2=3 a3−a2=3
⋯ \cdots ⋯
a n − a n − 1 = n a_n-a_{n-1}=n an−an−1=n
将其全部相加,得到 a n − a 1 = 2 + 3 + ⋯ + n a_n-a_1=2+3+\cdots+n an−a1=2+3+⋯+n
又知道 a 1 = 1 a_1=1 a1=1,整理一下: a n = n 2 + n 2 a_n=\frac{n^2+n}{2} an=2n2+n
发现 n n n最高次项是 2 2 2,所以是 O ( n 2 ) O(n^2) O(n2)
例题:
若某算法的计算时间表示为递推关系式:
T(N) = 2T(N / 2) + N log N
T(1) = 1
则该算法的时间复杂度为( )。
A. O ( N ) O(N) O(N)
B. O ( N log N ) O(N \log N) O(NlogN)
C. O ( N log 2 N ) O(N \log^2 N) O(Nlog2N)
D. O ( N 2 ) O(N^2) O(N2)
这种数列不好求通项公式,我们就用蒙猜法
做过一些类似的题后,我们发现这种题一般由两项构成,一项是 ⋯ T ( ⋯ ) \cdots T(\cdots) ⋯T(⋯) (与之前的项有关),还有一项是这次新加的 ⋯ n ⋯ \cdots n \cdots ⋯n⋯ 。
经验:如果第一项含有 / 2 /2 /2 等结构,时间复杂度一般是取对数,即 log N \log N logN(可以借助快速排序和其时间复杂度思考),前面只要是常数就省略不看,最后然后再乘上第二部分的结构。
注:这里的 log \log log 一般是指 log 2 \log_2 log2
则该算法的时间复杂度为 O ( log N ∗ N log N ) = O ( N log 2 N ) O(\log N * N \log N)=O(N \log^2 N) O(logN∗NlogN)=O(Nlog2N)
例题2
假设某算法的计算时间表示为递推关系式 T ( n ) = 2 T ( N 4 ) + n T(n) = 2T(\frac{N}{4})+\sqrt{n} T(n)=2T(4N)+n,求时间复杂度
按照蒙猜法,时间复杂度为 O ( n log N ) O(\sqrt{n} \log N) O(nlogN)
实在猜不出来就动笔试一下,算几个看看算了几次(博主还没试过…)
部分转自百度百科
NOI,全国青少年信息学奥林匹克竞赛,官网 http://www.noi.cn/。
CSP-J/S,CCF非专业级软件能力认证(Certified Software Professional Junior/Senior)
立即了解:
官网地址->全国青少年信息学奥林匹克竞赛系列活动简介
NOI始创于1984年
NOIP始创于1995年 暂停于2019年
CSP-J/S始创于2019年(这应该都知道吧)
艾伦·麦席森·图灵(英语:Alan Mathison Turing,1912年6月23日—1954年6月7日),英国数学家、逻辑学家,被称为计算机科学之父,人工智能之父。1931年图灵进入剑桥大学国王学院,毕业后到美国普林斯顿大学攻读博士学位,第二次世界大战爆发后回到剑桥,后曾协助军方破解德国的著名密码系统Enigma,帮助盟军取得了二战的胜利。
1952年,英国政府对图灵的同性恋取向定罪,随后图灵接受化学阉割(雌激素注射)。1954年6月7日,图灵吃下含有氰化物的苹果中毒身亡,享年41岁。2013年12月24日,在英国司法大臣克里斯·格雷灵的要求下,英国女王伊丽莎白二世向图灵颁发了皇家赦免。
—博主注:向这位伟大的人表示惋惜。
图灵对于人工智能的发展有诸多贡献,提出了一种用于判定机器是否具有智能的试验方法,即图灵试验,至今,每年都有试验的比赛。此外,图灵提出的著名的图灵机模型为现代计算机的逻辑工作方式奠定了基础。
图灵测试:
图灵测试(The Turing test)由艾伦·麦席森·图灵发明,指测试者与被测试者(一个人和一台机器)隔开的情况下,通过一些装置(如键盘)向被测试者随意提问。
进行多次测试后,如果机器让平均每个参与者做出超过30%的误判,那么这台机器就通过了测试,并被认为具有人类智能。图灵测试一词来源于计算机科学和密码学的先驱艾伦·麦席森·图灵写于1950年的一篇论文《计算机器与智能》,其中30%是图灵对2000年时的机器思考能力的一个预测,目前我们已远远落后于这个预测。
冯·诺依曼(John von Neumann,1903年12月28日-1957年2月8日),美籍匈牙利数学家、计算机科学家、物理学家,是20世纪最重要的数学家之一。冯·诺依曼是布达佩斯大学数学博士,在现代计算机、博弈论、核武器和生化武器等领域内的科学全才之一,被后人称为“计算机之父”、“博弈论之父”。
简单来说他的精髓贡献是两点:2进制思想与程序内存思想。
他投身的EDVAC方案明确奠定了新机器由五个部分组成,包括:运算器、控制器、存储器、输入和输出设备,并描述了这五部分的职能和相互关系。报告中,诺伊曼对EDVAC中的两大设计思想作了进一步的论证,为计算机的设计树立了一座里程碑。
图灵奖(Turing Award),全称“A.M. 图灵奖(A.M Turing Award)”,由美国计算机协会(ACM)于1966年设立,专门奖励那些对计算机事业作出重要贡献的个人。其名称取自计算机科学的先驱、英国科学家艾伦·麦席森·图灵(Alan M. Turing)。 由于图灵奖对获奖条件要求极高,评奖程序又是极严,一般每年只奖励一名计算机科学家,只有极少数年度有两名合作者或在同一方向作出贡献的科学家共享此奖。因此它是计算机界最负盛名、最崇高的一个奖项,有“计算机界的诺贝尔奖”之称。
2019年3月27日 ——ACM宣布,深度学习的三位创造者Yoshua Bengio, Yann LeCun, 以及Geoffrey Hinton获得了2019年的图灵奖。
中国计算机学会王选奖是中国计算机学会设立的奖项,为了纪念王选院士为中国计算机事业做出的非凡贡献,学习他严谨、务实、奉献、创新、勇于超越的科研精神。该奖授予在计算机科学技术前沿取得重要突破,研究成果通过转化和产业化,创造显著经济或社会效益的科技工作者。
中国计算机学会王选奖的前身中国计算机学会创新奖于2005年设立。2006年更名为中国计算机学会王选奖。2007年12月方正集团出资100万元人民币作为“中国计算机学会王选奖”基金。
根据中国计算机学会官网显示,中国计算机学会王选奖每年评选一次,获奖人数不超过二名,其中一名奖励学术,一名奖励技术或工程。截至2018年10月,该奖共评选了9次,共有17人获得该奖项。
高级语言:
解释型语言:Java,Python,HTML…
编译型语言: C,C++,Pascal…
面向对象语言:C++,C#,JAVA…