以前写的一个分片算法,对股票进行分片处理,保证每台机器处理的股票数是平均的,下面的核心算法是返回当前机器处理的数量:
import java.util.HashMap;
import java.util.Map;
/**
* @author LIANGXI
* @Description:分片算法
*
*/
public class Utils {
public static void main(String[] args) {
Integer splitStockCode = splitStockCode(5000, 5, 1);
System.out.println(splitStockCode);
}
/**
* 对股票代码进行分片
* @param countNum 总数
* @param splitNum 片数
* @param spoutNum 几号机
* @return
*/
public static Integer splitStockCode(int countNum,int splitNum,int spoutNum) {
Map map = new HashMap();
if(countNum < splitNum && countNum % splitNum == countNum){
if(spoutNum == 1){
return countNum;
}else{
return 0;
}
}else if(countNum == splitNum && countNum % splitNum == 0){
return countNum/splitNum;
}else if(countNum > splitNum){
if(spoutNum == 1){
int a = countNum - (countNum % splitNum);
return (a / splitNum)+(countNum % splitNum);
}else{
int a = countNum - (countNum % splitNum);
return a / splitNum;
}
}
return 0;
}
}