All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.dahuatech.hutool.core.math.MathUtil Maven / Gradle / Ivy

package com.dahuatech.hutool.core.math;

import java.util.List;

/**
 * 数学相关方法工具类
* 此工具类与{@link * com.dahuatech.hutool.core.util.NumberUtil}属于一类工具,NumberUtil偏向于简单数学计算的封装,MathUtil偏向复杂数学计算 * * @author looly * @since 4.0.7 */ public class MathUtil { // --------------------------------------------------------------------------------------------- // Arrangement /** * 计算排列数,即A(n, m) = n!/(n-m)! * * @param n 总数 * @param m 选择的个数 * @return 排列数 */ public static long arrangementCount(int n, int m) { return Arrangement.count(n, m); } /** * 计算排列数,即A(n, n) = n! * * @param n 总数 * @return 排列数 */ public static long arrangementCount(int n) { return Arrangement.count(n); } /** * 排列选择(从列表中选择n个排列) * * @param datas 待选列表 * @param m 选择个数 * @return 所有排列列表 */ public static List arrangementSelect(String[] datas, int m) { return new Arrangement(datas).select(m); } /** * 全排列选择(列表全部参与排列) * * @param datas 待选列表 * @return 所有排列列表 */ public static List arrangementSelect(String[] datas) { return new Arrangement(datas).select(); } // --------------------------------------------------------------------------------------------- // Combination /** * 计算组合数,即C(n, m) = n!/((n-m)! * m!) * * @param n 总数 * @param m 选择的个数 * @return 组合数 */ public static long combinationCount(int n, int m) { return Combination.count(n, m); } /** * 组合选择(从列表中选择n个组合) * * @param datas 待选列表 * @param m 选择个数 * @return 所有组合列表 */ public static List combinationSelect(String[] datas, int m) { return new Combination(datas).select(m); } }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy