Python-100 练习题 03 完全平方数

本文大约 1600 字,阅读大约需要 8分钟

练习题 3 的网址:

http://www.runoob.com/python/python-exercise-example3.html


Example-3 完全平方数

题目:一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?

思路

首先我们可以假设这个整数是x,那么根据题目有:

x+100 = m**2 (1)
x+100+168 = n**2 (2)

m, n都是正整数,接着就是先根据求解一元二次方程组的做法,可以得到

n**2 - n**2 = 168 (3)

利用平方差分解上式,有(n-m)(n+m)=168,这个时候,我们再做一个变换:

m + n = i (4)
n - m = j (5)
i * j = 168 (6)

这个变换,其实只是再设置两个变量i,j,并且根据它们两者相乘是 168,这是一个偶数,由于两个数相乘是偶数,有两种情况,两者都是偶数,或者一个偶数和一个奇数,然后再求解(4)和(5),有:

n = (i + j) / 2 (7)
m = (i - j) / 2 (8)

根据(7)式子,i+j必须是偶数,这样才可以被 2 整除,得到正整数n,这种情况下,结合(4)和(5),可以推导得到i,j都是大于等于 2 的偶数,又根据(6),可以推导到i,j的范围是:

1 < j < i < 85

这里是假设了i > j的情况,因为不存在一个偶数的平方就是168,所以假设i>j

代码实现

第一种实现:

def perfect_square():for i in range(1, 85):if 168 % i == 0:j = 168 / i;if i > j and (i + j) % 2 == 0 and (i - j) % 2 == 0:m = (i + j) / 2n = (i - j) / 2x = n * n - 100print(x)

第二种实现是网上大神的解法,参考文章:

  • Python练习题 003:完全平方数
  • ZH奶酪:编程语言入门经典100例【Python版】

这种实现其实就是在分析过程中,只推导到m,n部分,即(3)式的部分,然后直接根据这个公式和范围来求解,这个时候m,n的范围就是(1,169)

这是一个应用列表推导式的解法:

def perfect_square2():'''列表推导式:return:'''[print(m**2-100, end=',') for m in range(1, 169) for n in range(1, 169) if (n**2 - m**2) == 168]def perfect_square2_loop():'''for 循环形式:return:'''for m in range(1, 169):for n in range(1, 169):if (n ** 2 - m ** 2) == 168:print(m ** 2 - 100, end=',')

输出结果都是:

-99,21,261,1581,

源代码在:

https://github.com/ccc013/CodesNotes/blob/master/Python_100_examples/example3.py

或者点击原文,也可以查看源代码。


欢迎关注我的微信公众号–机器学习与计算机视觉,或者扫描下方的二维码,大家一起交流,学习和进步!

往期精彩推荐

Python-100 练习系列
  • Python-100 | 练习题 01 & 列表推导式
  • Python-100 练习题 02
学习笔记
  • 机器学习入门系列(1)–机器学习概览
  • [GAN学习系列] 初识GAN
  • [GAN学习系列2] GAN的起源
  • [GAN学习系列3]采用深度学习和 TensorFlow 实现图片修复(上)
数学学习笔记
  • 程序员的数学笔记1–进制转换
  • 程序员的数学笔记2–余数
  • 程序员的数学笔记3–迭代法
Github项目 & 资源教程推荐
  • [Github 项目推荐] 一个更好阅读和查找论文的网站
  • [资源分享] TensorFlow 官方中文版教程来了
  • 必读的AI和深度学习博客
  • [教程]一份简单易懂的 TensorFlow 教程
  • [资源]推荐一些Python书籍和教程,入门和进阶的都有!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/408757.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

特征工程之数据预处理(下)

机器学习入门系列&#xff08;2&#xff09;–如何构建一个完整的机器学习项目&#xff0c;第四篇&#xff01; 该系列的前三篇文章&#xff1a; 机器学习入门系列(2)–如何构建一个完整的机器学习项目(一)机器学习数据集的获取和测试集的构建方法特征工程之数据预处理&#…

学计算机后悔转专业,大学转专业容易吗 会后悔吗

有很多的同学是非常的想知道&#xff0c;大学转专业容易吗&#xff0c;会后悔吗&#xff0c;小编整理了相关信息&#xff0c;希望会对大家有所帮助&#xff01;大学转专业难不难能转专业的学校有两种&#xff0c;有一种是顶级学校&#xff0c;注重人才的培养&#xff0c;每年有…

特征工程之特征缩放特征编码

机器学习入门系列&#xff08;2&#xff09;–如何构建一个完整的机器学习项目&#xff0c;第五篇&#xff01; 该系列的前四篇文章&#xff1a; 机器学习入门系列(2)–如何构建一个完整的机器学习项目(一)机器学习数据集的获取和测试集的构建方法特征工程之数据预处理&#…

Python-100 练习题 04 判断天数

练习题 4 的网址&#xff1a; http://www.runoob.com/python/python-exercise-example4.html Example-4 判断天数 题目&#xff1a;输入某年某月某日&#xff0c;判断这一天是这一年的第几天&#xff1f; 思路 判断输入的日期是一年中的第几天&#xff0c;因为一年有12个月&a…

计算机控制面板图标怎么删除,电脑如何找回消失的“添加或删除程序”图标

&#xfeff;‍我们会根据需要在自己的电脑上下载一些应用程序&#xff0c;但是也会经常卸载掉一些不用的应用程序。这时我们只要打开控制面板中的“添加或删除程序”就可以对已安装在电脑上的软件进行卸载。不过有用户发现自己的电脑上找不到“添加或删除程序”图标&#xff0…

特征工程(完)

机器学习入门系列&#xff08;2&#xff09;–如何构建一个完整的机器学习项目&#xff0c;第六篇&#xff01; 该系列的前五篇文章&#xff1a; 机器学习入门系列(2)–如何构建一个完整的机器学习项目(一)机器学习数据集的获取和测试集的构建方法特征工程之数据预处理&#…

Linux/CentOS下安装Apache/SVN/Subversion图文详解教程

Linux(CentOS)下安装ApacheSubversion(图文教程) 服务器版本和安装软件服务器版本&#xff1a;RedHatCentOS 5.5 32 bit 安装软件&#xff1a;apr-1.3.5.tar.gz&#xff08;APR(Apache portable Run-time libraries&#xff0c;Apache可移植运行库)的目的如其名称一样&#xff…

[Github项目推荐] 机器学习 Python 知识点速查表

2019年第 21 篇文章&#xff0c;总第 45 篇文章今天推荐三份知识点的速查表&#xff0c;分别是机器学习、深度学习和 Python 三方面的知识点速查表。其中前两份都是来自斯坦福大学的课程&#xff0c;分别是 CS229 机器学习 和 CS230 深度学习课程。1. CS229 机器学习速查表传送…

常用机器学习算法汇总比较(上)

机器学习入门系列&#xff08;2&#xff09;–如何构建一个完整的机器学习项目&#xff0c;第七篇&#xff01; 该系列的前六篇文章&#xff1a; 机器学习入门系列(2)–如何构建一个完整的机器学习项目(一)机器学习数据集的获取和测试集的构建方法特征工程之数据预处理&#…

GZIP pre-compression

GZIP pre-compressionPre_compression 并不是一个nginx必须安装的module. Nginx –V 可以显示出当前nginx已经安装的module. 它的作用是: we want to serve and effectively reduce the computation power we waste to compress the file each and every time. This recipe wil…

常用机器学习算法汇总(中)

机器学习入门系列&#xff08;2&#xff09;–如何构建一个完整的机器学习项目&#xff0c;第八篇&#xff01; 该系列的前七篇文章&#xff1a; 机器学习入门系列(2)–如何构建一个完整的机器学习项目(一)机器学习数据集的获取和测试集的构建方法特征工程之数据预处理&#…

iOS7初体验(2)——单元测试

在Xcode 4.6及以前的版本&#xff0c;一直觉得单元测试这部分功能做得很鸡肋&#xff0c;用起来感觉很别扭。这一次Xcode 5.0默认就引入了单元测试&#xff0c;赶快来看看看相比以前的版本有什么提升吧&#xff01;~_~ 1. 首先打开上一节示例用的项目&#xff0c;当然&…