区块链倪老师:《区块链思维》第一章

上回我在《区块链思维》——序章中提到,从“零维思维”晋升到“一维思维”的过程就像是区块链接成链的过程。

区块链由一串使用密码学算法产生的区块连接而成。每一个区块上写满了交易记录,区块按顺序相连形成链状结构,也就是区块链大账本。

以比特币为例,矿工在生成新区块时,需要根据前一个区块的哈希值、新交易区块和随机数,来计算新的哈希值和随机数。也就是说每一个区块都是在前一个区块数据的基础上生成的,该机制保证了区块链数据的唯一性。

通俗地说,每个新生成的区块都必须有旧区块的数据生成的哈希值参与,区块链就是以这种方式保证了每个区块的顺序相连并且真实有效。每个新区块都以旧区块为基础,新旧区块块块相连,打造出一条正确的最长链条。

这种链接的方式如果用思维方式来命名,那么其就是线性思维。也就是我说的“一维思维”

比如《论语·子路》中的经典语录:

名不正则言不顺,

言不顺则事不成,

事不成则礼乐不兴,

礼乐不兴则刑罚不中,

刑罚不中则民无所措手足。

故君子名之必可言也,言之必可行也。

这个彼此连接逐步推导的过程,就是线性思维。

因为名不正所以言不顺,因为言不顺所以事不成。孔子用这种层层推导的方式来解释一个比较难以理解的概念。这就是线性思维。

线性思维是逻辑推理中非常重要的部分。逻辑推理也称为演绎推理,这是一种由一般到特殊的推理方法。

实际上我们日常生活中已经在不断地使用这种根据线性思维进行演绎推理的方法进行推理。

比如今天下大雨,所以我要提前出门上班。你要是仔细推敲这句话其实是没什么道理的,为什么下雨就要提前出门?

∵下雨路面变滑

∵在变滑的路面上行车应该慢一点保证安全

∴下雨的时候开车应该慢一点

∵去上班要开车,或者坐别人开的车

∴下雨的时候在上班的路上需要花更多的时间

∵上班不能迟到

∴下雨的时候要提前出门

我们通常根据日常生活总结出的一些经验来省略这中间的推导过程。比如周一要提前出门因为根据我之前的经验周一会比往常更堵、吃海鲜要少吃因为我一多吃就拉肚子,这些都是根据经验进行归纳,归纳出的结果就能直接用来使用。

所以为什么在一些如职场之类的场景更需要你有从业经验?因为经验可以帮助你省去复杂繁琐的推导过程。这样你的效率就可以更高,做同样的事情用的时间就更少。

说到这你可能有一些疑惑,我不是让大家从点状的“零维思维”进阶到线性的“一维思维”吗?怎么现在听起来感觉这个“一维思维”这么浪费时间,效率这么低呢?

没错,“一维思维”的优点在于其能根据点与点之间的强联系推导出一些必然的结论,将知识进行连接从而得出更深层次的结论。但其一个非常致命的缺点就是会让你的思维模式变得单向而局限,看不到事物之间更复杂的因果关系,从而因为过分关注局部而忽略整体。

但,“一维思维”是所有思维模式的基础,也是你从小到大学习所有知识的时候都必须要用到的演绎推理思维。

“一维思维”是地基,熟练地使用一维思维是让你思维方式进阶的重要步骤。

那话又说回来了,比“一维思维”更高深一点的思维方式是什么呢?“二维思维”吗?

大家有没有过这种感受,如果你的汽车发生了一些故障,比如异响,或者是无法启动,如果这时候没有修车师傅到场,你会怎么去检查车辆故障原因?

除去有经验的老司机,我想大部分人应该是跟我一样,不管三七二十一先把发动机盖打开,有模有样地往发动机舱里面望两眼,摸两下,然而最后大概率是找不到问题在哪的...

而4S店的修车师傅就不一样,他会先根据你描述的问题找到可能发生故障的部位,再开始检修,通常我们眼中的找不到故障原因的“大问题”在这些修车师傅眼中就是轻轻松松可以找到的“小问题”。

为什么?因为我们对于修车没有概念,我们不知道可能发动机舱内发生的异响其实根源在传动轴,于是我们只能通过简单地线性思维去找可能的故障点。用手摸,有没有哪里太烫,用鼻子闻有没有哪里漏油,用眼睛看有没有哪里冒烟...

而在修车师傅眼里,你描述的所有问题都有可能的故障部位,只需要通过你描述的额问题就可以大幅缩小他的工作范围。

因为在修车师傅的眼里,整部车是分为不同的结构的,每个结构都有其负责的功能,于是他可以通过你描述的问题精确地找到故障部位。

这种将脑袋里的信息结构化的思维方式,称之为“结构化思维”,也就是“二维思维”

我们知道,一维是线,二维是面。通过一些“大前提+小前提”,我们可以根据一维的思维方式往前不断地推导出最后的结论。

而“二维思维”是以“一维思维”为基础,每一个在线上的点都可以辐射出更多的线,从而构成一整个面。这也就是我为什么称之为“二维思维”的原因。

我虽然不负责技术方面的业务,但也时常跟公司技术部门交流。在我的眼中,他们敲代码的过程就像是一种二维的多方向辐射。当他们在根据程序想要实现的目的构建代码规则体系的时候,通常不会以简单地线性思维进行规划。

这点我想同学们有接触过程序开发的应该了解,当你写下这一行代码的时候,你就应该要考虑到后续很多方向应该完善和补充的内容,而这些内容通常可能与最终程序想要实现的目的无关,而仅仅是为了弥补代码中的一些不足之处。

他们通常也像修成师傅一样,对程序划分结构,当代码呈现出现问题,他们就可以通过程序呈现的结果快速找到问题所在。

这就是“二维思维”,也叫“结构化思维”,下期区块链思维内容我将告诉大家如何运用“二维思维”。

好了今天的《区块链思维》就到这了,喜欢我文章的朋友可以关注我的同名内容首发平台,我是区块链倪老师,我们下期不见不散!

 

```python import random # 生成随机不重复中文名 def random_name(): first_name = ['赵', '钱', '孙', '李', '周', '吴', '郑', '王', '冯', '陈', '褚', '卫', '蒋', '沈', '韩', '杨', '朱', '秦', '尤', '许', '何', '吕', '施', '张', '孔', '曹', '严', '华', '金', '魏', '陶', '姜', '戚', '谢', '邹', '喻', '柏', '水', '窦', '章', '云', '苏', '潘', '葛', '奚', '范', '彭', '郎', '鲁', '韦', '昌', '马', '苗', '凤', '花', '方', '俞', '任', '袁', '柳', '邓', '鲍', '史', '唐', '费', '廉', '岑', '薛', '雷', '贺', '', '汤', '滕', '殷', '罗', '毕', '郝', '邬', '安', '常', '乐', '于', '时', '傅', '皮', '卞', '齐', '康', '伍', '余', '元', '卜', '顾', '孟', '平', '黄', '和', '穆', '萧', '尹'] last_name = ['子璇', '淼', '国栋', '夫子康', '筱涵', '涵宇', '伟', '瑾瑜', '志国', '丽娟', '淑芬', '文静', '明辉', '玉龙', '燕青', '伟男', '佳莹', '文杰', '婷婷', '玉洁', '梓璇', '瑾梅', '静茹', '建国', '晓庆', '国梁', '丽', '淑君', '晓燕', '志强', '敏', '静', '文静', '云飞', '振宇', '子涵', '浩宇', '雪松', '建军', '晓东', '瑞霞', '凯', '帅', '伟峰', '伟男', '伟杰', '建军', '健', '建华', '晓刚', '晓康', '晓月', '康', '晓凡', '晓琳', '瑞', '秀英', '丽娜', '霞', '红', '玲', '芳', '磊', '洋', '勇', '艳', '杰', '娟', '涛', '明', '超', '秀兰', '静', '丹', '小青', '瑜', '莹', '帆', '波', '峰', '莹莹', '倩', '婷', '婷婷', '涛涛', '昊', '晨', '浩', '宇', '欣', '琳', '楠', '宁', '杨', '洋', '蕾', '芹', '萍', '凡', '军', '琳', '娜', '辉', '莉', '玲', '强', '璐', '凯', '伟', '刚', '建平', '玉华', '文华', '学文', '建国', '立', '文', '华', '明', '强', '乐', '建华', '建林', '小华', '志强', '晓莉', '宏', '海燕', '小平', '新', '建军', '亮', '建设'] name = random.choice(first_name) + random.choice(last_name) return name # 生成随机不重复工号 def random_teacher_id(teacher_id_set): while True: teacher_id = 'T{:0>3d}'.format(random.randint(1,500)) # 生成1-500之间的数字,左侧补0至3位 if teacher_id not in teacher_id_set: teacher_id_set.add(teacher_id) return teacher_id # 生成随机院系号 def random_dept(): dept = 'DEPT{:0>3d}'.format(random.randint(1,100)) # 生成1-100之间的数字,左侧补0至3位 return dept # 生成随机性别 def random_gender(): gender = random.choice(['男', '女']) return gender # 生成随机生日 def random_birthday(): year = random.randint(1960, 2000) month = random.randint(1, 12) day = random.randint(1, 28) # 假设2月最多有28天 birthday = '{}-{:0>2d}-{:0>2d}'.format(year, month, day) return birthday # 生成随机职称 def random_title(): title = random.choice(['讲师', '副教授', '教授']) return title # 生成500位老师信息 teacher_id_set = set() # 工号集合,用于判断工号是否重复 teachers = [] for i in range(500): teacher_id = random_teacher_id(teacher_id_set) dept = random_dept() name = random_name() gender = random_gender() birthday = random_birthday() title = random_title() teacher = '{}\t{}\t{}\t{}\t{}\t{}'.format(teacher_id, dept, name, gender, birthday, title) teachers.append(teacher) # 将结果入txt文件 with open('teachers.txt', 'w') as f: for teacher in teachers: f.write(teacher + '\n') # 输出结果示例 with open('teachers.txt', 'r') as f: print(f.read()) ``` 输出结果示例: ``` T001 DEPT086 杨婷婷 女 1978-11-01 副教授 T002 DEPT065 韩晓月 女 1999-05-06 教授 T003 DEPT014 梓璇 女 1972-12-02 讲师 T004 DEPT077 蒋建华 男 1985-08-18 教授 T005 DEPT100 赵建国 男 1985-06-15 讲师 T006 DEPT073 张小青 女 1996-09-27 教授 T007 DEPT001 邹帆 男 1998-05-05 副教授 T008 DEPT098 史伟 男 1961-03-05 教授 T009 DEPT096 鲁建军 男 1994-08-16 讲师 T010 DEPT073 袁琳 女 1992-06-12 讲师 T011 DEPT024 鲍玉洁 女 1996-03-14 讲师 ... ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值