佩尔方程是关于x、y的二次不定方程,表述为:

x^2 - ny^2 = 1  (n为非平方正整数)

当x = 1或-1,y = 0时,满足方程。常把x、y中有一个零的解称为平凡解。

佩尔方程的非平凡解有很多,这里只要求出它的最小正整数解,又称基本解。

算法分析:

a = n*y*y,设置y从1开始递增,每次+1

若a + 1为某一个整数x的平方,则(x,y)即为佩尔方程的基本解。

若a + 1 不是平方数,则y + 1后再试,直到找到解为止。

在这里我们给y设置一个最大上限10000000,当大于这个值,输出"求解无果"

代码实现:

package cn.qblank.enumeration;import java.util.Scanner;
/*** 解佩尔方程* @author Administrator*/
public class Demo2 {public static void main(String[] args) {Scanner input = new Scanner(System.in);System.out.println("*****解佩尔方程:x^2 - ny^2 = 1*****");System.out.println("请输入非平方正整数n:");double n = input.nextInt();input.close();//是否为平方数if (isSqareNum(n)) {System.out.println("n为平方数,方程无正整数解");return;}//初始化y的值int y = 1;while(y <= 10000000){y++;//定义x和a的值 double a = n*y*y;//取整double x = Math.floor(Math.sqrt((a + 1)));//判断是否满足方程if (x*x == a + 1) {System.out.println("方程x^2 - " + n + "y^2 = 1的基本解为:");System.out.println("x = " + x + ",y = " + y);break;}}}/*** 判断n是否是平方数* @param n* @return true 表示是平方数  false表示不是*/public static boolean isSqareNum(double n) {double m = Math.floor(Math.sqrt(n + 1));if (m * m == n) {return true;}return false;}
}

运行结果:

【枚举算法】佩尔方程相关推荐

  1. 佩尔方程(超详细推导+例题讲解) 每日一遍,算法再见!

    这里写目录标题 佩尔方程 第一类佩尔方程 第一类佩尔方程例题讲解 第二类佩尔方程 佩尔方程 第一类佩尔方程 定义:形如x2−dy2=1x^2 - dy^2 = 1x2−dy2=1(d>1,且d不 ...

  2. C语言之基本算法26—佩尔方程求解

    //穷举法! /* ====================================================== 题目:求佩尔方程x*x-73*y*y=1的解. =========== ...

  3. 【算法竞赛学习笔记】佩尔方程-数学提升计划

    title : 佩尔方程 date : 2021-10-31 tags : ACM,数学 author : Linno 佩尔方程 形如x2−dy2=1(d>1且d不为完全平方数)x^2-dy^2 ...

  4. 枚举法C语言三个马驮东西,【MagO第三期】经典枚举算法题:百钱买百鸡

    原标题:[MagO第三期]经典枚举算法题:百钱买百鸡 01 历史故事 张邱建提出的百钱买百鸡问题: 山东临清的数学家--张邱建,约公元5世纪著名的大数学家.他将毕生的精力投入到算学研究之中,为数学的不 ...

  5. 数论笔记 · 佩尔方程

    转载自:http://blog.sina.com.cn/s/blog_5d06e2390100ll92.html 佩尔方程实际上并不是佩尔提出的,而是费尔马提出,却被欧拉误记为佩尔提出,因此佩尔方程的 ...

  6. 数论笔记 · 佩尔方程(连分数)

    http://blog.sina.com.cn/s/blog_5d06e2390100ll92.html 佩尔方程实际上并不是佩尔提出的,而是费尔马提出,却被欧拉误记为佩尔提出,因此佩尔方程的名称沿用 ...

  7. 常用算法——枚举算法

    在进行归纳推理时,如果逐个考察了某类事件的所有可能情况,因而得出一般结论,那么这结论是可靠的,这种归纳方法叫做枚举算法 一.基本概念和算法 枚举算法简称枚举法,也称为列举法.穷举法,是暴力策略的具体体 ...

  8. 枚举算法(暴力法)板子

    1.枚举算法的定义: 在进行归纳推理时,如果逐个考察了某类事件的所有可能情况,因而得出一般结论,那么该结论是可靠 的,这种归纳方法叫做枚举法,因其逐个考察的性质又称其为"暴力枚举法" ...

  9. 好程序员web前端分享javascript枚举算法

    好程序员web前端分享javascript枚举算法,题目:在1,2,3,4,5 五个数中,我们随机选取 3个数.问有多少种取法?并且把每种取出数的方法列举出来. 乍看这道题,其实感觉没什么难度.三个f ...

最新文章

  1. 企业数据中心和互联网数据中心有何不同?
  2. docker搭建pwn环境
  3. Trie 树——搜索关键词提示 1
  4. vitess源码阅读笔记cache系列之用go实现通用资源池
  5. python网址太长_【原创】分享一个自己用python写的长网址转短网址工具,给需要的你...
  6. 轻量级开源内容管理系统-YzmCMS v6.0源码
  7. 转载:Linux批量远程管理主机命令_pssh用法详解
  8. Vue3+Cli4 中使用 Echarts 5
  9. photoshop 2021在m1 mac上导出png发生未知错误的解决方案
  10. 【OUTLINE】使用Oracle Outline技术暂时锁定SQL的执行计划
  11. [Angular 2] Transclusion in Angular 2
  12. php+pdo分页类
  13. CCF推荐国际学术会议和期刊目录2019年
  14. 巧用JSON.stringify()生成漂亮格式的JSON字符串
  15. 专家系统是一种智能计算机软件系统,人工智能习题答案-第6篇-专家系统.pdf
  16. 高德地图根据经纬度获取位置
  17. [WinError 193] %1 不是有效的 Win32 应用程序问题解决
  18. Echats给柱状图及提示文字添加百分号(%)的解决办法
  19. 路胜与阿斯利康达成战略合作;施乐辉携手镁信健康发布PICO;张云出任药研社首席运营官 | 医药健闻...
  20. GA-RPN:Region Proposal by Guided Anchoring

热门文章

  1. 风口背后:第一批 00 后 Web3 创业者,和他们的「人间清醒」
  2. 扩展系统功能——装饰模式(四):透明与半透明装饰模式,装饰模式注意事项,装饰模式总结
  3. HTML复选框checkbox默认样式修改
  4. 第一个帖子,先灌灌水
  5. Scalar的基础篇(零)简单介绍
  6. 逆向思维--魔兽世界封包分析
  7. excel怎么把竖排变成横排_桐城家谱编修丨麻城家谱数字化丨新时代编修家谱该怎么编修?...
  8. PHP/MySQL教程
  9. c51抢答器程序汇编语言,c51单片机汇编语言单片机八位抢答器程序
  10. 双足竞走机器人的意义_双足步行机器人