编辑

【暴力】004 不定方程求解

2019-11-13 2019-11-13 52 2 ---【暴力破解】 Hoji

一、题目

4*x - 5*y = 7的通解

二、解法

(1)暴力

public class Main {
  public static void main() {
    for(int x=0; x<100; x++)
    for(int y=0; y<100; y++)
	if(4*x - 5*y == 7)
      print(x + "," + y);
  }
}

该做法无可厚非,对x、y每一种情况都试探,如果满足则输出。有更好的做法吗?其实我们可以利用数学思想:把求两个未知数转化为求一个未知数(加减乘除可能比某一次循环快得多)

(2)数学思想1

于是题目所给方程可以转化为:x = (7+5*y)/4,相应的程序可以改造成:

public class Main {
  public static void main() {
    for(int y=0; y<100; y++)
	if((7+5*y)%4) {
      print(y);
	  print((7+5*y)/4);	 //==x
	}
  }
}

(3)数学思想2

题目的公式可以通化为:ax + by = c这样的通式,对于求这样的通式的通解,比较实用的做法就是:

  • (1). 先求出一个特殊解 x0,y0
  • (2). 然后根据这个特殊解求通解:x = x0 + bt,y = y0 - att=(...,-1,0,1,2,...)
  • (3). 带入原公式,便可约掉abt这些项

Hoji的CSDN(其中不乏各种框架教程、学习方法..) https://blog.csdn.net/qq_43539599

倘若小文于你有益,欢迎
  • 如果您的提问博主没能及时回复,通过分享文章获得援助,何尝不是一种查缺补漏的好做法
  • 版权声明:本文为博主原创文章,遵循CC 4.0 BY版权协议
  • 文章转载:请在文末添加原文章地址,这也是尊重他人劳动成果的一点体现,谢谢您的配合!
  • 评论信息 (注:评论收到回复后,会以邮箱的方式提醒您;您的邮箱不会显示到页面中)

    验证码信息 看不清?点击图片进行切换!
    精彩随处可见 更多精彩内容
    作者: 浏览 61 评论 1 赞 1 2020-01-15
    作者: 浏览 62 评论 1 赞 1 2019-11-29
    作者: 浏览 83 评论 1 赞 1 2019-11-29
    作者: 浏览 54 评论 1 赞 1 2019-11-29
    作者: 浏览 52 评论 1 赞 1 2019-11-29
    目录