Java 小例子:行列式和鸡兔同笼问题
鸡兔同笼问题就是二元一次方程组,高等数学里面用行列式来解此方程。具体过程可 Google “行列式 二元一次方程组
”。对于鸡兔同笼问题还要加上一个限制:方程的解必须是正整数。
下面是代码示例:
/**
* 鸡兔同笼问题。解法请 Google:“行列式 二元一次方程组”
*
* @author yiding.he
*/
public class BinaryLinearEquationGroup {
// 程序入口
public static void main(String[] args) {
int heads = 10;
int legs = 36;
int[] result = calculate(new int[][]{
{1, 1, heads}, // 鸡和兔子各有一个头,共 10 个;
{2, 4, legs} // 鸡有两只脚,兔子四只脚,共 36 只。
});
if (result != null && result.length > 0) {
System.out.println("结果:鸡有 " + result[0] + " 只,兔子有 " + result[1] + " 只。");
} else if (result == null) {
System.out.println("该题无解。");
} else if (result.length == 0) {
System.out.println("该题有无穷解。");
}
}
/**
* 解二元一次方程组,方程组的解必须是正整数,否则视为无解。
*
* @param params 方程组参数
*
* @return 返回 null 表示无解,返回空数组表示无穷解,否则表示正解。
*/
private static int[] calculate(int[][] params) {
Matrix2 delta = new Matrix2(new int[][]{
{params[0][0], params[0][1]},
{params[1][0], params[1][1]}
});
Matrix2 delta_x = new Matrix2(new int[][]{
{params[0][2], params[0][1]},
{params[1][2], params[1][1]}
});
Matrix2 delta_y = new Matrix2(new int[][]{
{params[0][0], params[0][2]},
{params[1][0], params[1][2]}
});
// 判定无穷解或无解的条件
if (delta.isZero() && delta_x.isZero() && delta_y.isZero()) {
return new int[]{};
} else if (delta.isZero()
相关文档:
create PROCEDURE pagelist
@tablename nvarchar(50),
@fieldname nvarchar(50)='*',
@pagesize int output,--每页显示记录条数
@currentpage int output,--第几页
@orderid nvarchar(50),--主键排序
@sort int,--排序方式,1表示升序,0表示降序排列
......
本文详细的介绍了使用Java语言建立一套多线程服务器的过程,该服务器使用对象传递消息,在线程中使用队列机制,使服务器的性能大大提高了。这套服务器可以被用于各种C/S或B/S结构的应用程序中。
Java语言是完全面向对象
的,它的线程机制和对象序列化特别容易使用,使用Java来建立一套多线程服务器要比使用其它语 ......
--包
create or replace package pkg_query as
type cur_query is ref cursor;
end pkg_query;
--过程
CREATE OR REPLACE PROCEDURE "PRC_QUERY" (p_tableName
in varchar2, --表名
& ......
java(jsp)使用MySql数据库,中文乱码的完整解决方案
mysql是一个小型的开源的数据库,用来自学一些技术是十分方便的。但使用mysql存储数据,也会遇到一些非常恶心的问题,如:中文乱码问题、java驱动程序无法使用的问题(已经解决,详见:http://hi.baidu.com/lauo1988/blog/item/ff0da655bd3e2eceb745ae0b.html)。
......