第3章 数式精彩纷呈
数式是由数字、运算符与等号构成的等式。
【资料图】
素因数分解式
在数学中,因数分解,又称素因数分解,是把一个正整数写成几个约数的乘积。
如:
2016 = 2^5 X 3^2 X 7
201804 = 2^2 X 3 X 67 X 251
在代数学、密码学、计算复杂性理论和量子计算机等领域中有重要意义,因数分解算法可以去百度了解,下面介绍最简单的算法。
试除法是整数分解算法中最简单和最容易理解的算法。给定分解的整数n,试除法是用小于等于n的每个素数去试除待分解的整数。如果找到一个数能够整除除尽,这个数就是待分解整数的因子。
【编程题】
给定正整数n,分解素因数,并按照从小到大写为乘积式(指数形式)
【备注,当n很大时,或者整数的素因数很大时,分解是艰难的】
埃及分数式
埃及分数是指分子是1的分数,也叫单位分数。古代埃及人在进行分数运算时,只使用分子是1的分数。因此这种分数也叫做埃及分数,或者叫单分子分数。
听过下面这个传说故事吗?
老人弥留之际,将家中11匹马分给3个儿子,老大分二分之一,老二分四分之一,老三分六分之一。二分之一是5匹半马,总不能把马杀了吧,正在无奈之际,邻居把自己家的马牵来,老大二分之一,牵走了6匹;老二四分之一,牵走了3匹;老三六分之一,牵走了2匹。一共11匹,分完后,邻居把自己的马牵了回去。即12分之11等于二分之一加四分之一加六分之一。
把一个给定的整数或分数转化为若干不相同的埃及分数之和。其中分解式中埃及分数的个数最少,或在个数相同是埃及分数中最大分母为最小的分解式称为最优分解式。
【编程题】
对给定的发呢书m/d分解为3个埃及分数的分解式,其分母为a, b, c (a < b < c),最大分母不超过Z,输出所有埃及分数式。
桥本分数式
把1,2, . . . 9这9个数填入下列算式的9个方格中(数字不得重复),使下列等式成立。
口/口口 + 口/口口 = 口/口口
如:4/56 + 7/98 = 3/21
【编程题】
桥本分数式有多少不同的解(约定式左边两个分数中分子小的在前)?
如果要求3个分数为最简分数(即分子、分母没有大于1的公因数),有多少中不同的解?
优美和式与平方式
三项优美和式:把1,2,……,9这9个数字分别填入以下和式的9个口中,为体现优美,要求1~9这9个数字在式中出现一次且只出现一次,使得和式成立:
口口口 + 口口口 = 口口口
如: 235 + 746 = 981
【编程题】
三项优美和式中右边和的最小值为多大?有多少种不同的填法?(约定左边两个加数的前一个3位数的各位数字分别小于后一个3位数的相应数字)
【扩充】
四项优美和式
口 + 口口 + 口口口 = 口口口
10数字优美和式(0 ~ 9这10个数字填入)口口口 + 口口口 = 口口口口
优美平方式
把1,2,……,9这9个数字分别填入以下和式的9个口中,数字在式中出现一次且只出现一次,使得等式成立,该等式称为优美平方式。 口口口口口口 = (口口口口)^2
优美综合运算式
隐序四则运算式
把0,1,2,……,9这10个数字不重复填入以下四则运算式中的10个口中,使得等式成立。
口口口 + 口口÷口 - 口口 X 口 = 口
约定1,0不出现在式左边的1位数种,且数字0不能位整数首位。
同时,要求式中的10个不重复的数字须符合指定隐序,指定隐序由输入的整数决定。
如指定隐序为4位数2019,则该运算式中数字的隐含顺序:数字2须在0的左边,数字0须在1的左边,数字1须在9的左边。如:267 + 80 ÷ 5 - 31 X 9 =4
综合运算式
把0,1,2,……,9这10个数字不重复填入以下四则运算式中的10个口中,使得等式成立。
口^口 + 口口÷口 - 口口口 X 口 = 口
约定1,0不出现在式左边的1位数种,且数字0不能位整数首位。
【编程题】
探求指定隐序的优美四则运算式
变序数和式
变序数式由同一组数字通过不同排列所得的位数相同的整数。
变序数和式是由变序数组成的等式。
如:2385 + 2853 = 5238
【编程题】
探索n位变序数和式
逆序与变序倍积式
逆序倍积式
abcd X 4 = dcba
abcd X 9 = dcba
变序倍积式
定义:若n位整数u的k(2 ≤ k ≤ 9)倍积s = uk是u的变序数,则称数式 uk = s为一个n位变序倍积式。
【编程题】
探索n位变序倍积式
对称运算式
对称运算式是含有指定运算且等号左、右两边的数字与运算符完全对称的数学等式。
对称乘积式
2+2位对称乘积式:ab X cd = dc X ba
【编程题】
探索m+n位对称乘积式
【拓展】
对称四则运算式
对称运算式中由加减乘除运算
对称综合运算式
对称运算式中由加减乘除和乘方运算
分段和幂式
卡普雷卡平方式
卡普雷卡数 3025 = (30 + 25)^2
【编程题】
搜索n位卡普雷卡平方式
拓展分段和幂式
【编程题】
输入位数n,段数r和幂指数m,搜索并输出所有n位r段和m次幂式
【读者体会】
这一章介绍了一些精彩的数式。
如果需要编程找到这些的数式。
编程设计要点。枚举法。
1)枚举。分析数式,计算并确定每个数据取值范围,然后循环依次处理(可以利用数式的一些特征,减小搜索区间,减少运行时间)
2)判定数式是否成立。依据数式定义,判定数式是否成立(注意,如果数式中有除法,一般去除除法,另外可用数组存储数式中数据的每一位)
3)判别和输出。依据定义数式和数式中的数是否满足定义。(可以用数组记录数和中间结果的每一位,便于判定)