本文為joshua317原創文章,轉載請注明:轉載自joshua317博客 https://www.joshua317.com/article/65
一、問題
百錢買百雞是一個非常經典的不定方程問題,最早源於我國古代的《算經》,這是古代著名數學家張丘建首次提出的。百錢買百雞問題的原文如下:
雞翁一,值錢五,雞母一,值錢三,雞雛三,值錢一,百錢買百雞,問翁、母、雛各幾何?
這個問題的大致意思是公雞5文錢1只,母雞3文錢1只,小雞3只1文錢,如果用100文錢買100只雞,那么公雞、母雞和小雞各應該買多少只呢?
二、分析
百錢買百雞問題中,有三個變量:公雞數量、母雞數量和小雞數量,分別設為x、y和z。這三者應該滿足如下關系:x+y+z=1005x+3y+z/3=100這里有三個變量,兩個方程,因此是一個不定方程問題。這將導致求解的結果不只一個。可以根據上述兩個方程來求出所有可能的結果。
三、編程
package com.joshua317;
public class Bqbj {
public static void main(String[] args) {
int n = 100;
int m = 100;
getBqbj(n,m);
}
/**
* 百錢買百雞
* @param n 數量
* @param m 錢數
*/
public static void getBqbj(int n, int m) {
int x, y, z;
for (x = 0; x <= n; x++) {
for (y = 0; y <= n; y++) {
z = n - x -y;
if (z > 0 && z%3 == 0 && 5*x+3*y+z/3 == m) {
System.out.println("x = " + x + ", y = " + y + ", z=" + z);
}
}
}
}
}
結果為:
本文為joshua317原創文章,轉載請注明:轉載自joshua317博客 https://www.joshua317.com/article/65