一道有趣的数学题(一)

前段时间看到了一道十分有趣的数学题,如下
\[
\begin{align*}
&x+y+z=1 \&x^2+y^2+z^2=2 \&x^3+y^3+z^3=3 \&\cdots \&x^5+y^5+z^5=?
\end{align*}
\]
这规律看着挺明显哈,那\(x^5+y^5+z^5\)肯定等于\(5\)啊,这题小学僧都随便做~那很不好意思哦,这道题的答案其实是\(6\)(笑。

我们先从一个最简单的做法做起,显然\(x,y,z\)是如下方程的解
\[
\begin{align*}
&(r-x)(r-y)(r-z)=0 \=>&r^3-(x+y+z)r^2+(xy+yz+xz)r-xyz=0 \tag{1}\\end{align*}
\]

  • \(x+y+z=1\)
  • \((x+y+z)^2=x^2+y^2+z^2 +2(xy+yz+xz) => xy+yz+xz={1-2 \over 2} = -{1 \over 2}\)
  • \(x^3+y^3+z^3-3xyz=(x+y+z)(x^2+y^2+z^2-(xy+yz+xz))=>xyz={3-1 \times (2+{1\over2}) \over 3}={1\over6}\)

将上述三个式子代入\((1)\)式有
\[
r^3-r^2-{1\over2}r-{1\over6}=0 \tag{2}
\]
这里\(r=x,y,z\)的时候等式成立,那么对\((2)\)式,我们左乘个\(r\)就有
\[
r^4-r^3-{1\over2}r^2-{1\over6}r=0
\]
然后分别将\(x,y,z\)代入可以得到
\[
\begin{cases}
x^4-x^3-{1\over2}x^2-{1\over6}x=0 \y^4-y^3-{1\over2}y^2-{1\over6}y=0 \z^4-z^3-{1\over2}z^2-{1\over6}z=0
\end{cases}
\]
三个式子相加,那么有
\[
(x^4+y^4+z^4)-(x^3+y^3+z^3)-{1\over2}(x^2+y^2+z^2)-{1\over6}(x+y+z)=0
\]
那么可以得到
\[
x^4+y^4+z^4=3+{1\over2}\times2+{1\over6}={25\over6}
\]
同理我们对\((2)\)式左右同乘\(r^2\),那么就有
\[
r^5-r^4-{1\over2}r^3-{1\over6}r^2=0
\]
分别代入\(x,y,z\)相加,就有
\[
(x^5+y^5+z^5)-(x^4+y^4+z^4)-{1\over2}(x^3+y^3+z^3)-{1\over6}(x^2+y^2+z^2)=0
\]
那么就有
\[
(x^5+y^5+z^5)={25\over6} + {1\over 2} \times3+{1\over6}\times2=6
\]
这题到这里应该就结束了,但是我们要善于思考嘛,那\(x^n+y^n+z^n\)呢?注意到\((2)\)式隐含的信息,假如我们令数列\(a_n=x^n+y^n+z^n\),那么显然有\(a_1=1,a_2=2,a_3=3\),此外根据刚才的运算,我们知道

\[
a_{n}-a_{n-1}-{1\over2}a_{n-2}-{1\over6}a_{n-3}=0
\]
那么依照矩阵求解递推式的原理,我们容易写出如下等式组
\[
\begin{cases}
a_{n}=a_{n-1}+{1\over2}a_{n-2}+{1\over6}a_{n-3} \a_{n-1}=a_{n-1} \a_{n-2}=a_{n-2}
\end{cases}
\]
将其写成矩阵的形式,那么有
\[
\begin{bmatrix}
a_n \a_{n-1} \a_{n-2}
\end{bmatrix} =
\begin{bmatrix}
1 &{1\over2} &{1\over6} \1 &0 &0 \0 &1 &0
\end{bmatrix}
\begin{bmatrix}
a_{n-1} \a_{n-2} \a_{n-3}
\end{bmatrix}
\]
那么将这个式子不断迭代,我们知道
\[
\begin{bmatrix}
a_n \a_{n-1} \a_{n-2}
\end{bmatrix} =
\begin{bmatrix}
1 &{1\over2} &{1\over6} \1 &0 &0 \0 &1 &0
\end{bmatrix}^{n-3}
\begin{bmatrix}
3 \2 \1
\end{bmatrix}
\]
我们令
\[
A=\begin{bmatrix}
1 &{1\over2} &{1\over6} \1 &0 &0 \0 &1 &0
\end{bmatrix}
\]
那么问题就转化成了求\(A^n\)的问题,那么我们知道矩阵的\(n\)次幂一般可以通过矩阵的特征值分解去求,但很可惜,这个矩阵并没有三个特征值,实际上在实数域上只有一个特征值,此外三次方程的求解比较麻烦,特征方程如下
\[
\lambda^3-\lambda^2-{1\over2}\lambda-{1\over6}=0 \tag{3}
\]
我这里就借助python的numpy库给出一个近似解

import numpy as np
a = np.array([[1, 1/2, 1/6], [1, 0, 0], [0, 1, 0]])
eig = np.linalg.eigvals(a)

输出的结果,整理后如下
\[
\begin{align*}
&\lambda_1 = 1.43084957+0.j \&\lambda_2 = -0.21542478+0.2647132j\&\lambda_3 = -0.21542478-0.2647132j
\end{align*}
\]
正常的话,再依据这个矩阵求出特征向量之类,然后将\(A\)换成\(U\Sigma U^T\),那么这题基本就算完事。可针对这道题呢?这三个特征值其实对应的就是\(x,y,z\)的解啊!!!因为方程\(3\)不就是方程\((2)\)嘛?所以我们兜了个大圈子,最后发现还是直接解三次方程好一点。那么结果就有了
\[
x^n+y^n+z^n=1.43084957^n+(-0.21542478+0.2647132j)^n+(-0.21542478-0.2647132j)^n
\]
有人可能要质疑了,你这个解不行啊,不够math啊。说得好!!!我李某元也是这么认为的。那我就给你一组比较math的\(x,y,z\)的解,其实python的一个库sympy可以用来做符号计算,要求解我们的方程组,只需要下面几条代码就可以了

import sympy
x = sympy.Symbol('x')
y = sympy.Symbol('y')
z = sympy.Symbol('z')
result = sympy.solve([x + y + z - 1 , x**2 + y**2 + z**2 - 2, x**3 + y**3+ z**3 - 3], [x, y, z])

输出的结果我给你整理一下哈,算了,懒得整理成latex的格式了,看个大概吧,嘻嘻\(\cdots\)

图中的\(result[0],result[1],result[2]\)分别可以对应\(x,y,z\)的一组解,注意这个方程其实是有\(6\)组解的,我们这里只给出三个让大家瞅瞅啥样哈。不知道这个结果是不是你比较喜欢,反正我不喜欢...

好了,那么大功告成!!!!当然这道题也有更一般的解法,但是用到了群论、数论之类的,其实就是一些很基础的知识,只不过讲的高大上了点,和我的做法本质是一样的,这里不过多引入,有兴趣的可以看知乎上给出的高大上的解法

原文地址:https://www.cnblogs.com/tsotfsk/p/12230456.html

时间: 2024-10-08 10:08:58

一道有趣的数学题(一)的相关文章

一道有趣的数学题

班主任给了我一道数学题: 求证an都能表示成两个自然数的平方和. [分析] 不会就打表(OI后遗症) 那么我们发现an的第2个平方在an+1出现在了第一个(按从小到大) 这个就很py了啊,再看看第二个有啥关系..咦好像是比两倍多一点,多多少呢?咦,1.3.7.17--这不就是我找的那个规律了吗 啊我们就能猜想: 然后我们归纳一波 对于n<=5显然成立(上表),对于n>=6: 假设对于n=i成立,那么就有 目标:证明下式成立 这是啥呢?令A'=B,B'=A+2B,代入即可. 剩下的故事啊就是把递

一道有趣的算法题。。。

题目意思: 用1, 2, 3 ,4 ,5, 6, 7, 8, 9 组成3个三位数 abc, def 和 ghi, 每个数字恰好使用一次,要求abc:def:ghi = 1:2:3.输出所有解. 分析: 模拟所有三位数,判断条件有二: 一.i(abc):j(def):k(ghi)=1:2:3 二.判断是否出现的1~9之间的所有数字 代码: /** *一道有趣的算法题 * */ #include<iostream> #include<cstdio> using namespace st

考考你!一道有趣的Javascript小题目

今天的内容很简单,给大家分享一个有趣的Javascript小题目. 题目很简单,就是填空: var a = ______; var b = a;alert(a==b); // alert "false" 请将程序补充完整,使得弹出的对话框显示为"false". 先答出的有奖哦 ^ ^ --------------------- 用简单而风趣的形式表达出自己的想法是我一直追求的目标(当然,目前还处于"XX主义初级阶段",还有很长的路要走). 如果你

一道有趣的算法题:仿照Excel的列编号,给定一个数字,输出该列编号字符串

       By Long Luo 最近遇到一个算法题: 仿照Excel的列编号,给出一个数字,输出该列编号字符串. 例如:A对应1,Z对应26,AA对应27,AZ对应52 ...... 这个题目是一个典型的26进制思路去处理,但是这个题目里面有很多陷阱,在1, 26, 52等特殊情况进行考虑,经过晚上接近1个小时的编写,完成的代码如下: C++代码如下: #include <iostream> #include <string.h> using namespace std; /

一道有趣的js题以及个人的理解

var number = 2; var obj = { number : 4, fn1 : ( function() { this.number *= 2; number=number*2; var number=3; return function() { this.number *= 2; number*=3; alert(number); } } )(), db2:function(){this.number*=2} }; var fn1 = obj.fn1; alert(number);

一道有趣的面试题

一道面试题.接受参数n=5,不用for循环输出数组[1,2,3,4,5] 这用递归的思路,配合arguments.callee,代码如下 1 function show(n) { 2 var arr = []; 3 return (function () { 4 arr.unshift(n); 5 n--; 6 if (n != 0) { 7 arguments.callee(); 8 } 9 return arr; 10 })() 11 } 12 show(5)//[1,2,3,4,5] 现在

【码之初】的一道有意思的数学题

来源:码之初. http://www.qlcoder.com/task/751e#comment 第2333个能被2或者被3整除的正整数是…?请把答案填入答题框内…如果有问题请查看右侧的学习资料. 举例:(这些数依次是:2,3,4,6,8,9,10,12,14,15,16,18…) 实在不想写最简单的一个while去解决.(有点强迫症,想要搞个更高效的方法.)根据该网友的提示,做法如下: 2333/4=583……1    (每6个数构成一组.每一组中有4个是有效的.所以第2333个有效数应该需要

HDU 1046 &amp; POJ 1450 Gridland【有趣的数学题】

Gridland Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 5697    Accepted Submission(s): 2607 Problem Description For years, computer scientists have been trying to find efficient solutions to

用数值分析方法做一道平面解析几何数学题

问题 看到有人问: 已知拱高10.4米的圆弧弧长36.7米,求圆的半径和圆心角(最好附带Matlab程序).怎么限制x是锐角? 解答 顺便把三个软件都用一遍,用它们各自擅长的.实际上,这个问题而言,单独用任何一款都能画图和解方程(是的,Geogebra不但画图厉害,解这个方程也实际上顶呱呱). 先根据大致情况推导一番(Geogebra作图) 因为r跟θ有如下关系,只须求一个r即可: s=r?θ 可以利用的关系从图上看出还有: x2=h(2r?h) sinθ2=xr 由此三个关系知道: x2=r2