JavaScript趣题:丢番图方程
来源:互联网 发布:单片机c语言求质数 编辑:程序博客网 时间:2024/05/19 06:50
在数学中,丢番图方程是一种多项式方程,通常存在两个或多个未知数,要求出它们的整数解。
已知如下的丢番图方程,求它所有的正整数解。
x² - 4y²= n
x和y是未知数,n是一个给定的常量。x,y的解集将使用如下的嵌套数组展示:
[[x1, y1], [x2, y2] ....]
下面是一些例子:
sol_equa(90005) --> [[45003, 22501], [9003, 4499], [981, 467], [309, 37]]
sol_equa(90002) --> []
咋们来看看怎么解决这个问题,先看这个等式的左边,x²- 4y²,你第一眼就有种感觉,它可以转化为(x - 2y) * (x + 2y),当你想到这一步,就迈出了第一步。
因为等式右边的常量N,它有可能是一个很大的数,如果用穷举法,效率是很低的。
我们可以尝试分解这个常量,把它因式分解成两项。
比方说,N=24,分解成两项有如下的可能:
[1,24] , [2,12] , [3,8] , [4,6]
我们拿这些可能往式子上套:
x - 2y = 1
x + 2y = 24
--------------
x - 2y = 2
x + 2y = 12
......
这样就转化成了求二元一次方程。
最后,我们选取其中的正整数解即可。
function solequa(n) { var result = []; for(var a=1,b=n;a<=b;a++){ if(n % a == 0){ b = n / a; var x = (a + b) / 2; var y = (b - a) / 4; if(parseInt(x) == x && parseInt(y) == y && x >=0 && y >= 0){ result.push([x,y]); } } } return result;}
0 0
- JavaScript趣题:丢番图方程
- 丢番图方程
- 丢番图方程的应用
- 丢番图方程引论
- 丢番图方程引论
- Javascript超越方程求解(Nodejs下运行)
- 方程
- 方程
- 方程
- Javascript 二分法解方程 求量杯的高度
- Problem 100 Arranged probability (丢番图方程)
- 线性丢番图方程的C++实现
- 编程之战第十二章 丢番图方程
- 数论读书笔记——线性丢番图方程——解不定方程
- 关于丢番图方程x^2-dy^2=-1
- 关于丢番图方程x^2+y^2=n
- 欧几里德算法 & 扩展欧几里德算法 & 求解丢番图方程
- 求解方程
- CUDA编程入门笔记
- python学习笔记 返回函数
- redis如何后台启动
- virt-manager 解决 kvm虚拟机中鼠标不同步的问题
- Jquery&ajax实现无限刷卡(扫码器扫描),一键认证/确认操作
- JavaScript趣题:丢番图方程
- Java实现对MongoDB的AND、OR和IN操作
- FPGA静态时序分析简单解读
- php函数strrev()反转中文字符串乱码的问题
- 值传递
- Python之遍历文件并统计手机号
- 当读入一个数字,scanf()函数的写法
- WebView 的API解析
- 【杂文】从实习到校招到工作