包裹 分箱简单算法 算出临界值 分箱数量加1
/**
*预估分箱算法
* @return
*/
private Tuple2<BigDecimal,Integer> calculateFareAndNums(List<BigDecimal> list,PxChannelPrice price){
if(list==null||list.isEmpty()){
Tuple2.of(BigDecimal.ZERO,0);
}
Collections.sort((List<BigDecimal>) list, new Comparator<BigDecimal>() {
@Override
public int compare(BigDecimal o1, BigDecimal o2) {
return o2.compareTo(o1);
}
});
BigDecimal taxSum = BigDecimal.ZERO;//税费
BigDecimal taxLmt = new BigDecimal(50);//税费限制
int bagCnt = 0;//分包数量
for (int i = 0;i<list.size();i++){
BigDecimal decimal = list.get(i);
if(decimal.compareTo(taxLmt)>-1){
bagCnt++;
}else {
if(taxSum.add(decimal).compareTo(taxLmt)>-1){
bagCnt++;
taxSum = decimal;
}else{
taxSum = taxSum.add(decimal);
}
}
}
if(taxSum.compareTo(BigDecimal.ZERO)==1){
bagCnt++;
}
return Tuple2.of(new BigDecimal(bagCnt).multiply(price.getInitialWeightPrice()),bagCnt);
}
public class Tuple2<V1, V2> {
private final V1 v1;
private final V2 v2;
public Tuple2(V1 t1, V2 t2) {
this.v1 = t1;
this.v2 = t2;
}
public static <V1, V2> Tuple2<V1, V2> of(V1 v1, V2 v2) {
return new Tuple2<>(v1, v2);
}
public V1 _1() {
return v1;
}
public V2 _2() {
return v2;
}
@Override
public String toString() {
return "(" + v1 + "," + v2 + ')';
}
@Override
public boolean equals(Object o) {
if (this == o)
return true;
if (o == null || getClass() != o.getClass())
return false;
Tuple2<?, ?> tuple2 = (Tuple2<?, ?>) o;
if (!v1.equals(tuple2.v1))
return false;
return v2.equals(tuple2.v2);
}
@Override
public int hashCode() {
int result = v1.hashCode();
result = 31 * result + v2.hashCode();
return result;
}
}
分享到:
相关推荐
Python中的卡方值分箱算法(Chi-Squared Binning)是一种数据预处理技术,常用于特征工程,特别是在信用评分、风险评估等领域。该算法的主要目的是将连续变量转换为离散的类别,以便更好地进行建模和分析。卡方值...
【物理应用】多种二维相位解包裹matlab算法
3) 基于可靠度排序的非连续路径解包裹算法-仿真包裹相位.m(仿真包裹相位分析函数) 4) 基于可靠度排序的非连续路径解包裹算法-仿真包裹相位-GBK格式.m(防注释乱码) 5) 基于可靠度排序的非连续路径解包裹算法-实验包裹...
标题中的"FDDCT.rar_包裹_相位展开_相位解包裹_解包裹算法_解相位"表明这个压缩包可能包含了一个用于处理包裹相位问题的软件或脚本,具体来说,是基于四向最小二乘解包裹算法的实现。这种算法旨在将包裹相位转换为...
### 数据挖掘与数据分析应用案例:基于C语言的分箱与聚类算法进行数据预处理 #### 重要性及背景 数据预处理作为数据挖掘过程的一个关键环节,对于提高挖掘效果至关重要。原始数据往往存在各种问题,如不完整、冗余...
2. **unwrapphase.m**:此脚本可能是对包裹相位进行解包裹的通用接口函数,它可能调用 LSunwrap.m 或其他解包裹算法,同时可能包含预处理和后处理步骤,如数据平滑、噪声过滤等,以提高解包裹结果的准确性。...
在IT领域,尤其是在信号处理和图像分析中,相位解包裹算法是一项重要的技术。它用于处理含有周期性误差的相位数据,例如由于量子噪声、采样限制或测量不精确导致的相位断裂。本文将深入探讨基于有限差分的快速傅里叶...
二维解包裹算法是数字信号处理领域中的一个重要技术,特别是在光学干涉计量、地震成像和雷达信号分析等应用中。Miguel的二维解包裹算法是一种鲁棒性强的算法,能够有效地处理数据中的噪声和不连续性,从而准确地恢复...
实现CART算法进行连续变量最优分箱的Python代码,首先要导入必要的库,读取数据集,并定义一些基础函数: 1. `calc_score_median`函数用于计算分割变量的中位数列表。 2. `choose_best_split`函数用于基于最优基尼不...
解包裹算法的步骤通常包括: 1. 初始化:选择一个起始点,并记录它的相位值。 2. 遍历相位图:对于每个后续点,计算与前一点的相位差。 3. 如果相位差大于π,则减去2π;如果相位差小于-π,则加上2π。这一步确保...
而"一种基于强度传输方程快速准确的相位解包裹算法"则提出了一种新的解决方案,结合了强度传输方程(TIE,Transport of Intensity Equation)的概念,以提高解包裹的速度和准确性。 强度传输方程是光学成像理论中的...
最小二乘解包裹算法通常是引入离散余弦变换(DCT)求解离散泊松方程,得到最小二乘意义上的相位展开解,最后得到真实连续的展开相位。该算法运算速度快,并且稳健。 该算法可用于全息干涉,散斑干涉等任何实际使用中...
路径无关算法是一类重要的相位解包裹算法,其中最常用的是各种最小二乘算法。由于最小二乘算法无法限制误差在空间中传播,因此不能直接获得精确的解包裹相位,其应用受到了限制。分析最小二乘相位解包裹算法误差的...
当前很多文章尝试过最优分箱,python上也有cut等方法进行等宽分箱。为了方便日后输出结果以及分箱要求。做一个简单的轮子以供大家日后使用。很多能用其他轮子的地方也没有多余出力,也不托大会比别人写的好。空间...
2.领域:智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、路径规划、无人机等多种领域的Matlab仿真,更多内容可点击博主头像 3.内容:标题所示,对于介绍可点击主页搜索博客 4.适合人群:本科,硕士...
算法的扩展可以包括以下方面: 1. 添加分箱数约束,限制特征被分割成的区间数量,以避免过度分割。 2. 引入最小箱占比,确保每个箱内至少包含一定比例的样本。 3. 坏人率约束,特别是在信用评分或者欺诈检测等场景,...
"单卡车协同多无人机任务分配(包裹投递)算法"是针对这一需求提出的创新解决方案。该算法主要用于优化包裹投递过程,通过一辆卡车与多架无人机的协同工作,提高配送效率,减少运输时间和成本。 首先,我们需要理解...
针对这一问题,研究人员提出了一系列解包裹算法,而基于FPGA(现场可编程门阵列)的实现方式因其高性能和灵活性受到了特别关注。 FPGA是一种可编程逻辑设备,它允许用户通过硬件描述语言来配置其内部逻辑功能。与...
关于该资源的详细情况可参考本人博客文章 ... 该资源演示了加权以及未加权最小二乘解包裹算法,提供了仿真包裹相位以及实验包裹相位图,通过残差点的获取来作为加权系数。资源适用于干涉检测领域。