Coursera课程笔记----计算导论与C语言基础----Week 1
计算机的基本原理(Week 1)
第一次数学危机
公元前500年,毕达哥拉斯学派,他们相信数是万物的本源:一切数均可表示成整数或者整数之比
然而毕达哥拉斯证明了勾股定理,某些直角三角形的三边比不能用整数表达
希帕索斯悖论:边长为1的正方形,对角线?
危机的缓解:比例论,使用几何方法避开无理数
危机的解决:实数理论的建立
第二次数学危机
微积分:牛顿和莱布尼兹,建立在**无穷小****分析之上
贝克莱悖论:无穷小一会儿是0,一会儿不是0,像一个幽灵~
危机的缓解:重建实数理论
新的问题:魏尔斯特拉斯给出了一个处处不可微的连续函数➡直观&几何思考不可靠
第三次数学危机
集合论:康托尔建立,一切数学成果可建立在集合论基础上
罗素悖论:S由一切不是自身元素的集合所组成,S是否属于S?
哥德尔不完备性定理:把数学彻底形式化的愿望是不可实现的
问题:如何判断问题可计算or不可计算?
解决思路:为计算建立一个数学模型(计算模型),它能够完成的就是可计算的——图灵机
图灵与图灵机
1936年,《论可计算数在判定问题中的应用》提出了理想的计算机数学模型——图灵机(Turing Machine)
图灵机的构成
一条存储带:其上有一个个小方格,可存储一个数字or字母
一个控制器:包含一个读写头(读or写or改),可接受程序语句,可存储&改变自身状态,可沿着存储带移动
图灵机如何工作
准备:存储带初始化、控制器置于起始并设置好自身状态、准备好程序
执行过程:读字母or数字、根据状态和字符找到对应的程序语句、执行三个动作(写入字母or数字、变更自身状态、左右移)
停机:表示计算完毕,存储带上即为计算结果
图灵机的理论意义
特点:简单,强大,可实现
意义:可实现的通用计算模型,引入了通过读写符号和状态改变进行运算的思想,证实了基于简单字母表完成复杂运算的能力,引入了存储区、程序、控制器等概念的原型
计算机为什么能计算
计算机中数的表示——二进制
十进制转为二进制:除以二的商取余数,”触底反弹“
二进制转为八进制和十六进制:卡3位/4位
计算机中数的计算——布尔运算
基本逻辑运算:与、或、非
复合逻辑运算:同或、异或等
二进制加法:本位是异或运算,进位是与运算——半加器
半加器进行组合,一个半加器的输出作为另一个半加器的输入——全加器
布尔运算的实现——电路
结论——电路能够实现计算
Coursera课程笔记----计算导论与C语言基础----Week 1的更多相关文章
- Coursera课程笔记----计算导论与C语言基础----Week 6
理性认识C程序 导论(Week 6) 明确学习进度 讲课内容 感性➡️理性➡️函数➡️指针等 作业练习 初级阶段 ➡️正常作业练习 C语言的由来 程序设计语言的分类 低级语言之机器语言 0010101 ...
- Coursera课程笔记----计算导论与C语言基础----Week 8
C语言中的运算成分(Week 8) 赋值运算符 "="赋值运算符 给赋值号左边的变量赋予数值 在变量定义的同时可以为变量赋初值 要点一:两面类型不同 若=两边的类型不一致,赋值时要 ...
- Coursera课程笔记----计算导论与C语言基础----Week 7
C语言中的数据成分(Week7) 内存 把内存想象成长带,带子上有许多方格,每个方格有8位(8bit) 2^10 = 1024 1B = 8 b 1KB = 1024Byte MB.GB.TB.PB- ...
- Coursera课程笔记----计算导论与C语言基础----Week 4
感性认识计算机程序(Week 4) 引入 编程序 = 给计算机设计好运行步骤 程序 = 人们用来告诉计算机应该做什么的东西 问题➡️该告诉计算机什么?用什么形式告诉? 如果要创造一门"程序设 ...
- Coursera课程笔记----计算导论与C语言基础----Week 2
计算机的历史与未来(Week 2) 计算机历史 早期计算机:手工计算器➡️机械计算器➡️计算机原型 现代计算机:电子管计算机➡️晶体管计算机➡️集成电路计算机➡️超大规模集成电路 早期的手工计算辅助工 ...
- Coursera课程笔记----计算导论与C语言基础----Week 9
C语言中的控制成分(Week 9) 计算机程序的基本结构 任何具有单入口单出口的程序,都可以用顺序结构.分支结构.循环结构来表达 分支语句 在执行if语句前,先对表达式求解 if()内可以是任意的数值 ...
- Coursera课程笔记----计算导论与C语言基础----Week 3
存储程序式计算机 冯·诺伊曼式计算机 "关于EDVAC的报告草案" 组成:控制器(协调工作).运算器(算数&逻辑运算).存储器(存储操作信息和中间结果).输入设备.输出设备 ...
- Coursera课程笔记----计算导论与C语言基础----Week 12
期末编程测试(Week 12) Quiz1 判断闰年 #include <iostream> using namespace std; int main() { int year; cin ...
- Coursera课程笔记----计算导论与C语言基础----Week 11
C程序中的字符串(Week 11) 字符数组 所有的字符串,都是以\0结尾的 只能在数组定义并初始化的时候:char c[6] = "China"; 不能用赋值语句将一个字符串常量 ...
随机推荐
- Pormetheus(一)
(1)Prometheus由来普罗米修斯的灵感来自于谷歌的Borgmon.它最初是由马特·t·普劳德(Matt T. Proud)作为一个研究项目开发的,普劳德曾是谷歌(google)的一名雇员.在普 ...
- DataGridView编辑状态自动提交
在使用bindingSource.bindingNavigator+DataGridView修改时会发现,当你需要保存修改过后的内容,必须将光标指向另外一行,DataGridView才会将编辑过后的数 ...
- Jmeter命令行执行并生成HTML报告
前提:准备好jmeter脚本,找到jmeter配置文件查看生成的日志格式是否为csv,如果不是请改为csv 注意:使用命令执行jmeter脚本必须使用jmeter 3.0及以上版本1.使用命令行执行脚 ...
- PDF各种骚操作如何用python实现
前言 文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作者: wLsq PS:如有需要Python学习资料的小伙伴可以加点击下方链 ...
- Alpha-release 总结
因组员一周来事情较多,因此博客更新停滞了一个星期.这周我们已经开始了第二个release的相关工作,首先先对上一个release的工作进行简短总结. 团队在上个星期进行了alpha-release版本 ...
- mysql搭建亿级cmd5数据库,毫秒级查询 完全过程
前言: 最近也在玩数据库,感觉普通机子搞数据库,还是差了点,全文查找,慢的要查一分钟更久. 但是搞cmd5库很不错,亿级数据库,毫秒级. qq 944520563好吧,下面开始,首先你得需要一个mys ...
- ChaosBlade--动态脚本实现 Java 实验场景
动态脚本实现 : 参考文档:https://github.com/chaosblade-io/chaosblade/wiki/%E5%8A%A8%E6%80%81%E8%84%9A%E6%9C%AC% ...
- Spring Cloud Gateway+Nacos,yml+properties两种配置文件方式搭建网关服务
写在前面 网关的作用不在此赘述,举个最常用的例子,我们搭建了微服务,前端调用各服务接口时,由于各服务接口不一样,如果让前端同事分别调用,前端同事会疯的.而网关就可以解决这个问题,网关屏蔽了各业务服务的 ...
- Mac安装多版本JDK
0. 配置JDK环境 安装完成之后,配置.bash_profile文件 使用source ./bash_profile激活 2. 如何切换默认的jdk? 使用java -version就可以看默认版本 ...
- 任意文件下载(pikachu)
任意文件下载漏洞 很多网站都会提供文件下载功能,即用户可以通过点击下载链接,下载到链接所对应的文件. 但是,如果文件下载功能设计不当,则可能导致攻击者可以通过构造文件路径,从而获取到后台服务器上的其他 ...