【天下有春】数、哲、编程随想(待完成)
文章目录
- 1.线性代数是什么?
- 2.线性代数在干什么?
- 2.1映射
- 3.ORM
- 4.客观规律与元数据
- 5.继承、封装、多态与线性代数的辩证关系
- 6.从唯物辩证法的角度看待Java
- 7.软件设计
本人才疏学浅,此文为本人一点头脑风暴,还在不断修改中,试图找到其同一性,始终认为数、哲、史、编程不分家,他们统一于物质。实践决定认识,认识反复无限。如有错误,恳请指出。
1.线性代数是什么?
从算行列式到各类矩阵、和二次型,我不由得思考,线性代数到底在干什么?
世界是多维且复杂的,而多维矩阵能很好的抽象这个世界,而多维矩阵的性质总结起来,就是线性代数。
从这个角度出发,我们今日应用的很多东西,无外乎是线性与混沌。而今日编程,很大程度上是建立在线性关系上的。
2.线性代数在干什么?
线性代数本质是对世界的一种抽象,以方便让人类更容易理解客观规律。从这个角度来说,高数、线代、英语等语言没有本质区别,都是对客观规律或信息的描述,而线性代数的信息冗余较少,能够很好的抽象这个世界。
2.1映射
从中学开始,接触到函数 y=f(x)y=f(x)y=f(x),函数即function,黑盒,便是映射思想的初步。通过映射,我们可以通过研究x去研究y的性质,即起到了转换研究对象的目的。
类似的应用还有很多,如:二次型的标准化与规范化,我们通过可逆的线性变换,来对二次型进行研究对象转换。
3.ORM
4.客观规律与元数据
我们对一个东西下定义有两种方式
方式 | 解释 |
---|---|
属类定义 | 用大的集合去描述小集合,如:学生是在上学的人,对象是类的实例等 |
关系定义 | 当一个集合无法找到比他更大的范围时,用临近关系定义,如:物质和意识的关系 |
如:如果要跟概念下定义,则概念的概念是什么?我们可以找到更大的集合来描述它。 | |
概念:思维的基本形式之一,反映客观事物的一般的、本质的特征。 |
在Java中,类是对一类事物的抽象,更准确的说,是对事物部分属性的抽象。
但其实,对象其实也是事物(物质)部分属性的抽象。
而类是用来描述对象的元数据。
从这一点出发,字节码是用来描述类的元数据。我更愿意把类称作为字节码对象。
由于class文件很灵活, 它甚至比Java源文件有着更强的描述能力
其实我们仍能以此出发继续深入下去,由此直到电子信号
,甚至能下定义到更底层。
所以我们的学习所谓的底层,其实一直是相对底层
,就如同几何证明,证明到定理那一步即可,不必非证明到公理那一部。换言之,到绝对底层的方面,是前人花费无数时间堆积起来的,我们只需站在巨人肩膀上前行。事物的真正本质,是不必过多纠结的,因为我们绝大多数人,一辈子也想不明白一件真正的本质(如爱因斯坦的相对论)。
由此出发,其实我们现在所谓的底层,源码,在未来或许以另一种形式演化成不需要人思考的产物,人只需要关心更顶层的东西。如:现在汇编对于从事软件工作的很多人来说已经不是刚需。但是,这些必然依赖于硬件水平的发展、生产力的提高、软件架构的革新。未来究竟是何种形式,实在令人期待。
5.继承、封装、多态与线性代数的辩证关系
6.从唯物辩证法的角度看待Java
7.软件设计
软件最大的敌人是复杂性。复杂性的根本原因是系统性和藕合。这导致了软件系统最著名的“人月定律”困境和“巴别塔”问题。
因为,对任何一个复杂的,内部互相影响的系统,变化会导致混沌性产生(比如三体问题),由于混沌性本身的难以预测性和计算,直接就产生了一个软件一旦陷入混沌的”焦油坑“就产生了著名的人月现象:加人解决不了问题,减人解决不了问题,减需求解决不了问题,加需求解决不了问题,降低质量要求解决不了问题,增加质量要求同样解决不了问题,反而软件延期可能更厉害……因为任何变化对混沌系统都是难以预测的,甚至不变也未必是最好的——世界本身必然是变化的。
解决一个混沌系统的方式
方式一 | 降低系统内部的自由度,构建相对隔离的子系统,而不是内部完全自由的大系统 |
---|---|
方式二 | 子系统之间有尽量少得耦合和频率,内部可以有相对多的内聚性和频率 |
方式三 | 子系统数量不要太多,耦合方式最佳是MECE |
【天下有春】数、哲、编程随想(待完成)相关推荐
- 快手2019春招笔试编程题
快手2019春招笔试编程题 第一题 输入描述 输出描述 分析 代码 第二题 输入描述 输出描述 分析 代码 第三题 输入描述 输出描述 分析 代码 个人主页:http://redtongue.cn o ...
- java新手的通病_编程随想:Java新手的通病 PDF 下载
编程随想:Java新手的通病 PDF 下载 下载地址: 提取码:onyi 相关截图: 主要内容: 其实很早以前就想写这样一个文章,可惜当时我没有 Blog,所以到现在才写下来.最近几年,随着 Java ...
- vivo2020春招笔试编程题(下)
本文介绍笔者参加过的vivo2020春招笔试编程的第三题. 第三题:手机屏幕解锁模式 题干 现有一个 3x3 规格的 Android 智能手机锁屏程序和两个正整数 m 和 n ,请计算出使用最少m 个 ...
- Java-函数式编程(二)Lambda表达式
本文首发: Java-函数式编程(二)Lambda表达式 "Lambda 表达式"(lambda expression)是一个匿名函数,Lambda表达式基于数学中的λ演算得名,直 ...
- 数控g71编程实例带图_数车编程G71实例讲解
老铁们大家好,我是你们的好朋友少白,最近找我学习数车编程的老铁们有点多,今天呢我就给大家来分享一组案例,希望能给大家带来一些帮助, G71,G70 编程指令是数控车最常用,也是最方便的指令,一般零件的 ...
- [Google Guava] 4-函数式编程
原文链接 译文链接 译者:沈义扬,校对:丁一 注意事项 截至JDK7,Java中也只能通过笨拙冗长的匿名类来达到近似函数式编程的效果.预计JDK8中会有所改变,但Guava现在就想给JDK5以上用户提 ...
- Java黑皮书课后题第6章:**6.26(回文素数)回文素数是指一个数同时为素数和回文数。编程程序,显示前100个回文素数,每行显示10个数,数字中间用一个空格隔开
6.26(回文素数)回文素数是指一个数同时为素数和回文数.编程程序,显示前100个回文素数,每行显示10个数,数字中间用一个空格隔开 题目描述与运行示例 代码 题目描述与运行示例 6.26(回文素数) ...
- python实现一个数如果恰好等于它的因子之和,这个数就称为“完数” 。例如, 6的因子为 1、2、3,而 6=1+2+3,因此 6 是完数。编程找出1000之内的所有完数
一个数如果恰好等于它的因子之和,这个数就称为"完数" . 例如, 6 的因子为 1.2.3,同时6=1+2+3,因此 6 是完数. 编程找出 1000 之内的所有完数,并输出该完数 ...
- 【天下有春】剑气纵横三万里,一剑光寒十九洲
少年高高提起的双手之间,有缕缕春风欢快萦绕双袖,如一尾尾青色蛟龙在云海游曳. 陈平安轻声问道:"齐先生?" 一个温暖醇厚的嗓音在陈平安身旁响起,"在的." 慢慢 ...
- 如果一个数等于它的因子之和,则称该数为“完数”(或“完全数”)。例如,6的因子为1、2、3,而6=1+2+3,因此6是“完数”。编程找出1000之内的所有完数。
如果一个数等于它的因子之和,则称该数为"完数"(或"完全数").例如,6的因子为1.2.3,而6=1+2+3,因此6是"完数".编程找出10 ...
最新文章
- Hashing散列注意事项
- OpenSceneGraph 笔记--如何导出三角形数据
- tns 连接超时_ORA-12170:TNS:连接超时
- 【收藏】HDFS的Java API使用
- DOCKER存储驱动之DEVICE MAPPER简介
- 第一款Micropython图形化编辑器—Python Editor
- 交互式地图_张晟推出学校资源交互式地图工具
- spring教程笔记3
- 找不org.apache.commons.lang3.builder.EqualsBuilder和commons-lang下载链接
- javascript在IE下的格式问题
- FOR XML PATH 应用及其反向分解
- 【信号与系统】Multisim 仿真信号合成与分解
- jquery 鼠标按住移动的解决方案
- python读取tif图片_python读取tif图片时保留其16bit的编码格式实例
- java 内部类,匿名内部类
- 用p5.js绘制创意自画像
- halcon例程学习笔记(11) 一维码、二维码识别
- 码率,帧率,分辨率_详解
- 喜欢你,才不顾一切的作践自己:QQ伤感日志
- R语言实战Topsis综合评价法