勾股定理的一个简单证明

勾股定理的一个图形式的直观证明

勾股定律, 也即直角三角形, 斜边的平方等于另外两条直角边平方之和.

西方称为毕达哥拉斯定理(Pythagorean Theorem), 归功于古希腊数学家毕达哥拉斯(Pythagoras).

如图:

勾股定理的简单证明 a simple proof of pythagorean theroem

红色直角三角形两直角边长为 a 和 b, 斜边长为 c.

正方形 ABCD 与正方形 EFGH 边长相等, 均为 a + b, 因此两者面积相等.

正方形 EFGH 面积 = c2 + 4 × 红色三角形 = 正方形 ABCD 面积 = a2 + b2 + 4 × 红色三角形

约去四个红色三角形面积, 可得 c2 = a2 + b2 .

证毕.

第一种是黑猩猩, 第二种是倭黑猩猩(也叫波诺波猿), 第三种就是我们自己.

而前两种是与我们亲缘关系最近的物种, 其基因组与我们的差异不过 1.6%.

--<<第三种黑猩猩>>

帕累托法则(Pareto Principle) 也就是所谓的 80/20 法则.

这一法则适用于众多领域. Barry Boehm 的研究表明, 程序中 20% 的子程序耗费了 80% 的执行时间.

因此, 在程序的性能调优中, 找到并改进那关键的 20% 的代码, 就能让整体的性能得到大幅提升.

--<<代码大全2>>

配置 p6spy log 输出应用最终执行的 sql 语句

介绍了如何使用 p6spy log 输出应用最终执行的 sql 语句, 以方便调试

在上一篇的 配置 mybatis 打印出执行的 sql 及返回的结果集 中, 说到了在 mybatis 中如何打印出执行的 sql, 但是还是遗留了一个问题, 也即是它的输出的 sql 并不是最终可执行的, 而是类似于 jdbc 那种 PrepareStatement 的形式, 参数的值是用问号代替的, 如下:

select * from user where username = ? and password = ?

虽然其参数值通常也会一起输出, 但如果我们对查询的结果有疑问, 想去数据库里自己执行看看, 就不得不自己去拼凑那些最终的 sql:

select * from user where username = 'admin' and password = '123456';

如果参数特别多的查询, 这会成为一个麻烦. 那么, 是否有方式可以直接输出最终的 sql 呢? 一种方式就是下面将要介绍的 p6spy log.

p6spy log 输出效果

先看其输出的效果:

26:33 #1607390793732 | took 7ms | statement | connection 0| url jdbc:p6spy:mysql://localhost:3306/code_sample?serverTimezone=GMT%2B8
select * from user where username = ? and password = ?
select * from user where username = 'admin' and password = '123456';
26:33 list size: 1

可以看到, 除了那种 PrepareStatement 的形式, 还有最终的 sql. 那么, 要如何去实现这样的效果呢?

另注: 这里的日志布局我启用了一种极简的风格, 只有"分钟:秒数", 具体见 配置简化开发阶段日志输出布局 的介绍.

继续阅读