注意
这里的函数有些可能不是最简的,但它反映了思考的过程。对于函数的简化,如果有,则会出现在这里。
前言
曾经我遇到这样一个问题:有一个网站,每天去签到,第一天得 1 分、第二天得 2 分、第三天得 3 分,如此积累到 666 分需要多少天。
当时我想出来一条函数,实际上并不是一条,而是几条函数结合在一起的,算出来的结果大概是一个月,具体的天数我记不清了。
后来,更新了 GeoGebra 导致保存在 GeoGebra 里的函数丢失了,甚至我也想不起来当初的函数是怎么写的,只记得一部分,所以我打算将这些函数记录到这里。我记不住,但互联网有记忆。
函数
注意
函数的绘制软件我推荐 GeoGebra。当然,这个软件还是有槽点的,比如计算的结果通常是小数而不是分数和带根号的数,这样一来有些计算变得麻烦了,不过现在没有更好的软件,有的话请告诉我。
警告
阅读体验欠佳!
该文章中有二维图像和三维图像导致性能下降。
调整函数后刷新或离开此网页会弹出提示框“可能未保存所做的更改。”,请直接点击“刷新”或“离开”。
手机端如需查看函数图像,请点击全屏按钮。
奇偶判断
实际上方法有不少,这里我使用 。
这个函数会根据输入的 的奇偶,当 为奇数时输出 ,偶数时为 ,一般来讲就是用来乘的。如果需要偶数输出 ,奇数输出 ,那么就像 一样,把整个函数向左平移 个单位就好了。
其实这个函数还需要限制 为正整数的,不过这里就不写了,主要是方便后面使用。
正整数相加
这便是我在前言中所说的问题,想了好久想不出来,当初我是用了奇偶判断加其他好几条函数做出来的,那时出来的函数很长,看着图像我猜测是一元二次函数,结果呢…真就是啊。
我已经忘记以前是怎么解的了,那时闲麻烦不想求一元二次方程,虽然现在直接去求一元二次方程了,但心有不甘,还是很想还原出当时写出的式子的。
这里的 是直接带入三个点 、、 解出来的,后面还带入了其他的点,最终确认了是这个函数。
不过 只能判断大于 的部分,后面的 、、…… 只需要把这个函数的正半轴复制并旋转 就行了,也就是 。
最后将两者合并得到 ,这里的 和 这样写是因为有 bug。
至此,这个函数看似已经足够使用了。但是,还有一个问题有待解决,如果我是指定一个范围内的整数相加呢?
其实并不困难,首先定义两个变量,一个是起始,一个是结束,分别为 和 。此时, 必须小于或等于 ,且 和 都为整数。
分五种情况来看:
- 当 为
此时就按照原始的函数去计算就行了。
2. 当 大于
这种情况下,无非是 ,所以也不复杂。
3. 当 小于 , 等于
这种情况也不复杂,直接将 带入到原始公式里就好了
4. 当 小于 , 小于
那么就是 。抽象一些,直接将 和 带入方程,得到两个长度不同的 和 , 整一段都是不需要的,而 包含 ,所以把 里的 去掉就行。
5. 当 小于 , 大于
这时就比较复杂了,根据我们上一种情况的抽象来看, 和 都需要,所以就是
此时不应该直接“综上所述”得到一个多项式,我们再来观察一下。
根据上面的抽象方法,发现了什么没?
那就是当 在正半轴时, 的部分是全都不需要的,只有在负半轴时是需要的。而 正好相反过来。
而当 在正半轴时, 是正数,负半轴时是负数,负数时是需要的,正数是不需要的,所以我们得到下面的函数 。
这里由于没有 出现,GeoGebra 就没有把它当作一条函数来看待。
不过,GeoGebra 不仅可以渲染平面的图像,还可以渲染立体的图像,让我们来看看。其中 是我们要的函数。我还尝试过添加限制 ,不过嘛,效果不怎么样,各位可以把 给隐藏了,把 显示出来。点击函数左侧的圆就可以隐藏或显示。(疯狂掉帧ing…)
抽取种类数
之前各种绕弯,那为什么我没想到阶乘即 。
所以现在的情况是两种,有要求顺序和没有要求顺序的。
在下面, 是总数, 是要抽取的数量。
当有序:
当无序:
弯路
懒惰促使我努力去寻找偷懒的方法。
在 个东西里抽取 个东西,不重复抽取,不考虑顺序,求有几种情况。
这个挺麻烦的,一上来就是一条立体函数。不过,我已经有思路了,我们先不要想象什么立体图形,就先想想其中一个平面。
我们假定 是 , 作为自变量,然后看看分别会有几种情况。
当 时,有 种;,;,;,;,。
发现没有,它是对称的,那么又来到求一元二次方程的时候了。
最终的结果是:
由于我们要求的是立体函数,光这一条函数可不够用,还需要多几条来观察。
所以我们假定 ,所以
再假定 ,所以
观察图像,乍一看没什么规律,又好像有点规律,那就是规律了但没完全规律。那就让我来讲讲到底规律了哪里。
首先,我们一直写得都是 ,这样写是为了计算起来方便,但我们还是需要把它们都变成 这种顶点式。
好,现在来转换一下,得到下面的式子。
然而还是没有什么用。可能是 这个数太小了,所以我要尝试一下 。
神奇的事情出现了,到了 就出现了不管怎么算都对不上的情况,带入不同的点出现不同的式子…
(思索片刻)
这代表什么?这代表我们一开始的想法就是错的!它根本不是一元二次方程,只是因为前面的数刚好对上罢了。
将所有的点放到 GeoGebra 当中。(看上面的)
再次好好观察…
会发现它的图像更接近于这种。

看到的第一眼我想到了正态分布。嗯…虽然现在课本上还没讲过正态分布(不知道高二有没有),但我还是可以试一试的。
在百科上看到正态分布的定义后,已经感受到压力了,出现了我从没学过的 ,看来还要先会 。
然后我又想偷懒了,不过还好 GeoGebra 里有“概率模式”,所以我打算尝试一下。
上来就是当头一棒,不仅有正态分布,还有其他的好多种分布,所以我打算利用其中的“二项分布”,看看能不能试出我要的(虽然我也不清楚我到底要什么)。
……
似乎我踏入了不应该踏入的领域。但既然来了,肯定要拿什么回去才行。
注意
2021.09.12 更新
硬来不行,决定换一种方法。
那么,首先我们有两个必要的数,总数(total)和抽取量(extract),这两个是我在此处定义的。
总数和抽取量必须为非负整数,且抽取量不得大于总数。
定好限制之后,接下来开始计算有几种可能。
想起在平时我们怎么计算几种的,感觉有点类似冒泡算法,不过这里不需要排序,只需要每个都冒一遍就行了,整个冒的过程还可以简略。
在这里我们再引入一个“指”(point)的概念,即被“指”的需要被计数,粗略做了一个动画便于理解。

在实际操作中,“指”只会指向最后的几个“目标”(target)上,而它将会指向几个,我们可以通过总数减去倒数第二个“指”的未知来得到。
另外,我们还要检查当前“指”的数量,如果只有一个,则“目标”的数量直接统计起来。如果不止一个,我们需要让“指”进入下一层,直到剩余一个“指”才能统计数量。
可能有点过于抽象了,来举个例子。
现在总数定为 。
当抽取量为 时,此时抽取量为 ,剩余目标为 ,计算总数为 。
当抽取量为 时,此时抽取量不为 ,进入下一层,总数和抽取量各减去 ,此时抽取量为 ,总数为 ,即第一个总数为 ;回到上一层,此时最后一个指已经到最后一个目标了,因此倒数第二个(即第一个)指向后移动一次,同时最后一个指移动到倒数第二个指的后面一个目标上,此时总数为 ,抽取量为 ,老规矩,总数和抽取量各减去 ,然后就来到下一层,此时总数为 ,抽取量为 ,即计入总数 ,回到上一层,倒数第二个指向后移动,此时最后一个指无法移动,即倒数第二个指的计算已经结束。
剩下的如此类推……
将上面的用数字表示,0 是未被指向的目标,1 是被指向的目标,即:
basic
4 > 1
1000
0100
0010
0001
4 > 2
1100
1010
1001
0110
0101
0011
4 > 3
1110
1101
1011
0111
4 > 4
1111
目前的思路到了这了,还在想怎么写成函数。
椭圆截线中点
这标题也太奇怪了吧……好吧,只是我想不出干练的标题罢了。
已知椭圆方程
、椭圆截得直线线段中点坐标
、直线方程
中的任意两个、就可以求出另外一个
要求与参数:
- 椭圆方程为:
- 中点坐标:
- 直线方程(点斜式):
这原本是上课时老师在讲一道例题:已知椭圆方程
、椭圆截得直线线段中点坐标
,求直线方程
。
当时看到老师的推理,我想着这应该可以化成一条式子吧,然后就去试了,具体的推理过程晚点放上来。
其中,