对任意正数$n$,$g(n)$是最大的能被$n$整除的完全平方数。
比如$g(18)=9,g(19)=1$。
定义
$$S(N)=\sum_{n=1}^ng(n)$$
例如$S(10)=24,S(100)=767$。
求$S(10^{14})$,结果模$1’000’000’007$。
$10^{14}$非常大,遍历肯定是不现实的。
一点一点前进...
115题是114题的扩展版本,所以分析115就足够了。
和116 & 117两个题目的思路是一样的,一层一层(也就是砖的下标)向前统计。
不过有两点不同,115题只限制了最小长度$m$,而没有限制最大程度,那么最大程度就是$n$,所有在最后求解满足条件的数量的和下一层灰色的数量的时候,需要从$m$累加到$n$。同时,由于长度不固定,那么在更新每层的颜色的时候,不能几个语句完成而要使用for
循环更新所有状态。
下面给出代码,然后在代码里面解释为什么要这么做。
这两道题非常类似,不过后一题比前一题稍微复杂点。
一排由5块灰色正方形瓷砖组成的长条中,有一部分被红色(长度为2)、绿色(长度为3)或蓝色(长度为4)中的一种颜色的长方形瓷砖所取代。
如果选择了红色,有七种方式:
如果选择了绿色,有三种方式:
如果选择了蓝色,就只有两种方式了:
总共有12种方式铺灰色长条。如果长灰色的长度是50,那么有多少种铺法呢?
一个数如果左边的数字不会超过右边的数字,那么称为递增数,比如134468
反之,如果右边的数字不会超过左边的数字,那么称为递减数,比如66420
除了上述两种数之外的数称为跳跃数,比如155349
随着$n$的增加,跳跃数的比例在上升(非跳跃比例下降),比如一百万内有 12951 个非跳跃数,$10^{10}$以内有 277032 个非跳跃数。
求$10^{100}$以内有多少个非跳跃数。
很显然,不可能遍历。算法要和指数的大小相关。很直观的,要想办法从$i$位数字中非跳跃数的个数构造出$i+1$位数字中非跳跃数的个数。
如果我们看到一个序列的前$k$项,不能确定下一项的值,因为有无限多的多项式函数可以模拟这个序列。
比如立方函数产生的序列:
$$u_n=1,8,27,64,125,216\dots$$
如果只给出前两项,最佳匹配(最简单)是线性函数,那么下一项是15。如果给出前三项,那么最佳匹配是二次多项式。
我们定义$OP(k, n)$为序列前$k$项的最优多项式函数的第$n$项。如果$n\leq k$,那么能够精确表示序列的第$n$项。潜在的第一个不匹配项FIT(first incorrect term
)是$OP(k, k+1)$,这种情况称为称作bad OP(BOP
)。
如果只给出一项,最明智的选择是常数函数。
因此,对于立方函数的序列来说,OP
如下所示:
$$\begin{aligned}
OP(1,n)&=1&&1,1,1,1\dots\
OP(2,n)&=7n-6&&1,8,15\dots\
OP(3,n)&=6n^2-11n+6&&1,8,27,58,\dots\
OP(4,n)&=n^3&&1,8,27,64,125\dots
\end{aligned}$$
$k\geq 4$就没有BOP了。
所有的FIT之和是$1+15+58=74$。
对于下面的十阶多项式函数
$$u_n=1-n+n^2-n^3+n^4-n^5+n^6-n^7+n^8-n^9+n^{10}$$
求所有BOP对应的FIT之和。
整本书通过一个个真实的案例,或者是精心设计的实验,将十二个小道理娓娓道来,这里面有些让人感觉耳目一新,或许隐约知道而这里系统的表达出来。
道理都懂,更应该常常回顾这些小道理,让人生过得更通透。
人们很少做不加对比的选择。我们的心里并没有一个“内部价值计量器”来告诉我们某种物品真正的价值是多少。相反,我们关注的这种物品与其他物品的相对优势,以此来估算其价值。多数人只有到了具体情境才知道自己真正想要的是什么。
事实上,我们总是靠观察周围的事物以确定彼此的关系。我们不但喜欢将事物与事物相互比较,而且喜欢比较容易比较的,以此来避免不容易比较的事物。
比如A和B,两个衡量维度,俩者各有优缺点,我们很难比较,但是如果有了A-,它在两个维度上都比A略差,我们往往会选择A,至少,A比A-要好。
这个游戏就是小时候玩的大富翁,掷骰子来决定前进步数,到了某个方格可能会触发一些事件,转移到某个方格。
问题如果无限玩这个游戏,那么走到哪三个格子的概率最大呢?
一个比较正规的做法是建立一个四十乘四十的矩阵,是概率转移矩阵,记录每个格子转移到其他格子的概率,这个矩阵自乘成千上万次收敛之后,用初始状态,一个四十维的向量,和矩阵相乘,得到最终的四十维的向量,选择三个概率最高的格子。
祸兮,福之所倚;福兮,祸之所伏。
不知这是第几次提及,老子描述矛盾统一的规律。这种观察事物的辨证方法,是其哲学上的最大成就。一切事物都在对立的情况中反复交变,这种反复交变的转化过程是无尽止的。这种循环倚伏之理,常令人迷惑不解。这里老子告诉我们,观察事物,不可停留在表面,应从显相中透视里层,作全面的了解。
老子的智慧让我们拉开了观察事物的视野,使我们能够拔于现实环境的局限,使我们不致为眼前的困境所陷住,也使我们不致为当下的心境所执迷。
治人事天,莫若啬。
老子提出“啬”这个观念,并非专指财物上的,乃是特重精神上的。我理解也可以包含身心这层含义,介于财务和精神俩者之间。“啬”即是培蓄能量,厚藏根基,充实生命力。
企者不立,跨者不行。
踮着脚跟站不稳,跨步前行走不远。这就是自见、自伐、自矜的譬喻。这些轻躁的举动都是反自然的行径,短暂而不能持久的。
人法地,地法天,天法道,道法自然。
自然,自然而然。宇宙有四大,道,天,地,人。这四者都自然而行。道法自然,道以自然为归,道的本性就是自然。
自然这个概念是老子哲学的核心,基本精神。
故善人者,不善人之师;不善人者,善人之资。不贵其师,不爱其资,虽智大迷,是谓要妙。
这里不仅仅讲到“择其善者而从之,其不善者而改之”,更重要的是说善人要主动劝勉他人。有道者,无弃人无弃物的心怀。对于善人和不善人,都加以善待。特别是对于不善的人,并不因其不善而鄙弃他,一方面要劝勉他,诱导他,令一方面也可给善人作一个借鉴。
下文可以当作阅读陈鼓应的《老子今注今释》的心得体会吧。全文以书本内容为主,增补些许个人感悟。
《老子》一书阐述了老子的哲学观,他的观点主要分成两块,一是对自然、世界本源的思考,二是对人的思考,后者分成两个层次,一是个人,二是统治者。老子关于“道”有很大程度形而上的东西,但是更关注的是人生和政治(更多的是对统治者的期许,或许是他基于那个纷乱的世界的思考)。写这篇文章是想总结一下对自然和世界本源的思考和对个人的思考。因为1)对自然、世界、宇宙的思考是共性问题;2)对人的思考可以作为实际人生的指导。
在开始讨论正文内容前,简单说说我对自然无为的认识。自然是指任何事物都应该顺任事物本身的情状去发展,而不应收到外界的的意志去制约它,所以自然不是指具体的东西,而是形容“自己如此”的状态;同时,老子的自然也不是指“大自然”的自然,也不是小时候学习的“自然课”指的自然。无为,涉及个人的修行,不过更多的讲统治者,从政治角度出发的,不是不为,不做事,而是不妄为,以无为的态度去为。不过时至今日,我个人觉得他这个思想对当今世界的政府的意义有,但是不大了,因为现在的政府要做的事情太多,同时世界的复杂度比古时要大得多得多。
陈鼓应也指出了老子一书的缺点,比如用类比得出结论,水(柔弱)滴石(刚强)穿来说柔弱胜刚强,如果非要举坚硬之物胜于柔弱之物的例子呢?所以这里理解老子本身的内涵就好,不要太钻牛角尖来驳斥一些论述有瑕疵的地方。