计算机的基本原理(Week 1)

第一次数学危机

公元前500年,毕达哥拉斯学派,他们相信数是万物的本源:一切数均可表示成整数或者整数之比

然而毕达哥拉斯证明了勾股定理,某些直角三角形的三边比不能用整数表达

希帕索斯悖论:边长为1的正方形,对角线?

危机的缓解:比例论,使用几何方法避开无理数

危机的解决:实数理论的建立

第二次数学危机

微积分:牛顿和莱布尼兹,建立在**无穷小****分析之上

贝克莱悖论:无穷小一会儿是0,一会儿不是0,像一个幽灵~

危机的缓解:重建实数理论

新的问题:魏尔斯特拉斯给出了一个处处不可微的连续函数➡直观&几何思考不可靠

第三次数学危机

集合论:康托尔建立,一切数学成果可建立在集合论基础上

罗素悖论:S由一切不是自身元素的集合所组成,S是否属于S?

哥德尔不完备性定理:把数学彻底形式化的愿望是不可实现的

问题:如何判断问题可计算or不可计算?

解决思路:为计算建立一个数学模型(计算模型),它能够完成的就是可计算的——图灵机

图灵与图灵机

1936年,《论可计算数在判定问题中的应用》提出了理想的计算机数学模型——图灵机(Turing Machine)

图灵机的构成

一条存储带:其上有一个个小方格,可存储一个数字or字母

一个控制器:包含一个读写头(读or写or改),可接受程序语句,可存储&改变自身状态,可沿着存储带移动

图灵机如何工作

准备:存储带初始化、控制器置于起始并设置好自身状态、准备好程序

执行过程:读字母or数字、根据状态字符找到对应的程序语句、执行三个动作(写入字母or数字、变更自身状态、左右移)

停机:表示计算完毕,存储带上即为计算结果

图灵机的理论意义

特点:简单,强大,可实现

意义:可实现的通用计算模型,引入了通过读写符号状态改变进行运算的思想,证实了基于简单字母表完成复杂运算的能力,引入了存储区程序控制器等概念的原型

计算机为什么能计算

计算机中数的表示——二进制

十进制转为二进制:除以二的商取余数,”触底反弹“

二进制转为八进制和十六进制:卡3位/4位

计算机中数的计算——布尔运算

基本逻辑运算:与、或、非

复合逻辑运算:同或、异或等

二进制加法:本位是异或运算,进位是与运算——半加器

半加器进行组合,一个半加器的输出作为另一个半加器的输入——全加器

布尔运算的实现——电路

结论——电路能够实现计算

Coursera课程笔记----计算导论与C语言基础----Week 1的更多相关文章

  1. Coursera课程笔记----计算导论与C语言基础----Week 6

    理性认识C程序 导论(Week 6) 明确学习进度 讲课内容 感性➡️理性➡️函数➡️指针等 作业练习 初级阶段 ➡️正常作业练习 C语言的由来 程序设计语言的分类 低级语言之机器语言 0010101 ...

  2. Coursera课程笔记----计算导论与C语言基础----Week 8

    C语言中的运算成分(Week 8) 赋值运算符 "="赋值运算符 给赋值号左边的变量赋予数值 在变量定义的同时可以为变量赋初值 要点一:两面类型不同 若=两边的类型不一致,赋值时要 ...

  3. Coursera课程笔记----计算导论与C语言基础----Week 7

    C语言中的数据成分(Week7) 内存 把内存想象成长带,带子上有许多方格,每个方格有8位(8bit) 2^10 = 1024 1B = 8 b 1KB = 1024Byte MB.GB.TB.PB- ...

  4. Coursera课程笔记----计算导论与C语言基础----Week 4

    感性认识计算机程序(Week 4) 引入 编程序 = 给计算机设计好运行步骤 程序 = 人们用来告诉计算机应该做什么的东西 问题➡️该告诉计算机什么?用什么形式告诉? 如果要创造一门"程序设 ...

  5. Coursera课程笔记----计算导论与C语言基础----Week 2

    计算机的历史与未来(Week 2) 计算机历史 早期计算机:手工计算器➡️机械计算器➡️计算机原型 现代计算机:电子管计算机➡️晶体管计算机➡️集成电路计算机➡️超大规模集成电路 早期的手工计算辅助工 ...

  6. Coursera课程笔记----计算导论与C语言基础----Week 9

    C语言中的控制成分(Week 9) 计算机程序的基本结构 任何具有单入口单出口的程序,都可以用顺序结构.分支结构.循环结构来表达 分支语句 在执行if语句前,先对表达式求解 if()内可以是任意的数值 ...

  7. Coursera课程笔记----计算导论与C语言基础----Week 3

    存储程序式计算机 冯·诺伊曼式计算机 "关于EDVAC的报告草案" 组成:控制器(协调工作).运算器(算数&逻辑运算).存储器(存储操作信息和中间结果).输入设备.输出设备 ...

  8. Coursera课程笔记----计算导论与C语言基础----Week 12

    期末编程测试(Week 12) Quiz1 判断闰年 #include <iostream> using namespace std; int main() { int year; cin ...

  9. Coursera课程笔记----计算导论与C语言基础----Week 11

    C程序中的字符串(Week 11) 字符数组 所有的字符串,都是以\0结尾的 只能在数组定义并初始化的时候:char c[6] = "China"; 不能用赋值语句将一个字符串常量 ...

随机推荐

  1. 这届网友实在是太有才了!用python爬取15万条《我是余欢水》弹幕

    年初时我们用数据解读了几部热度高,但评分差强人意的国产剧,而最近正午阳光带着两部新剧来了,<我是余欢水>和<清平乐>,截止到目前为止,这两部剧在豆瓣分别为7.5分和7.9分,算 ...

  2. 详解 HashMap

    本篇博文的知识点,在我们的日常生活中,应用十分广阔.比如:每个学生,都有自己的对应的学号.每一个公民,都有自己的身份证号- - 相信看到这里,有的同学基本上已经猜到了这个类的主要用途.那么,话不多说, ...

  3. [php] phpStudy+XDebug配置

    一.配置前说明: 1.phpStudy集成了XDebug扩展,所以不用单独下载XDebug. 2.打开XDebug扩展:其它选项菜单 > PHP扩展 > Xdebug 二.配置步骤: ph ...

  4. Springboot:员工管理之删除员工及退出登录(十(9))

    springboot2.2.6 delete请求报错,降至2.1.11功能可用 原因未知 构建员工删除请求 com\springboot\controller\EmployeeController.j ...

  5. 初探Redis-基础类型String

    Redis存在五种基础类型:字符串(String).队列(List).哈希(Hash).集合(Set).有序集合(Sorted Set).String的出镜率算是最高的.本次列举出String的常用操 ...

  6. ArangoDB 3.5:流事务API、搜索性能大幅提升、最短路径功能

    ArangoDB 3.5 发布了.ArangoDB 是一个分布式原生的多模型数据库,具有灵活的文档.图形和键值数据模型.使用方便的 SQL 查询语言或 JavaScript 扩展构建高性能应用程序. ...

  7. 数值计算方法实验之按照按三弯矩方程及追赶法的三次样条插值 (MATLAB 代码)

    一.实验目的 在已知f(x),x∈[a,b]的表达式,但函数值不便计算,或不知f(x),x∈[a,b]而又需要给出其在[a,b]上的值时,按插值原则f(xi)= yi(i= 0,1…….,n)求出简单 ...

  8. MySQL中出现Unknow column 'xx' in field list的解决办法

    首先创建一个表,然后插入数据发现出错误 经过多次尝试发现title前面多了一个空格 我们把空格去掉,然后在插入数据,发现数据创建成功

  9. 在 Azure CentOS VM 中配置 SQL Server 2019 AG - (上)

    前文 假定您对Azure和SQL Server HA具有基础知识 假定您对Azure Cli具有基础知识 目标是在Azure Linux VM上创建一个具有三个副本的可用性组,并实现侦听器和Fenci ...

  10. all_user_func()详解

    来源:https://blog.csdn.net/moliyiran/article/details/83514495 call_user_func — 把第一个参数作为回调函数调用 通过函数的方式回 ...