mark for pull
This commit is contained in:
@@ -4,13 +4,13 @@ package com.cnbm.qualityPlanning.common;
|
||||
import com.cnbm.qualityPlanning.entity.ControlLimit;
|
||||
import com.cnbm.qualityPlanning.entity.ControlLimitDetail;
|
||||
import com.cnbm.qualityPlanning.entity.Point;
|
||||
import io.swagger.models.auth.In;
|
||||
|
||||
import java.util.*;
|
||||
|
||||
/**
|
||||
* @Desc: "检测参数统计受控 检验类"
|
||||
* @Author: caixiang
|
||||
* todo : ① 开头第一组,和最后一组 是否漏掉 问题;② 中间情况 时候把最后一个元素漏掉。
|
||||
* @DATE: 2022/7/11 15:27
|
||||
*/
|
||||
public class StatisticalControlledTest {
|
||||
@@ -26,18 +26,18 @@ public class StatisticalControlledTest {
|
||||
private static final Integer rule10Number = 10;
|
||||
|
||||
public static List<Point> createData(){
|
||||
Point point = new Point(1,new Double(1.7));
|
||||
Point point2 = new Point(2,new Double(8));
|
||||
Point point3 = new Point(3,new Double(8));
|
||||
Point point4 = new Point(4,new Double(1.7));
|
||||
Point point5 = new Point(5,new Double(1.7));
|
||||
Point point6 = new Point(6,new Double(1.7)); //3
|
||||
Point point7 = new Point(7,new Double(1.7)); //3
|
||||
Point point8 = new Point(8,new Double(1.7)); //3 //3
|
||||
Point point9 = new Point(9,new Double(1.7));
|
||||
Point point10 = new Point(10,new Double(1.7));
|
||||
Point point11 = new Point(11,new Double(1.7));
|
||||
Point point12 = new Point(12,new Double(1.7));
|
||||
Point point = new Point(1,new Double(0.7));
|
||||
Point point2 = new Point(2,new Double(0.7));
|
||||
Point point3 = new Point(3,new Double(3.7));
|
||||
Point point4 = new Point(4,new Double(0.7));
|
||||
Point point5 = new Point(5,new Double(0.7));
|
||||
Point point6 = new Point(6,new Double(3.7)); //3
|
||||
Point point7 = new Point(7,new Double(3.7)); //3
|
||||
Point point8 = new Point(8,new Double(3.7)); //3 //3
|
||||
Point point9 = new Point(9,new Double(3.7));
|
||||
Point point10 = new Point(10,new Double(3.7));
|
||||
Point point11 = new Point(11,new Double(3.7));
|
||||
Point point12 = new Point(12,new Double(3.7));
|
||||
List<Point> list = new ArrayList<>();
|
||||
list.add(point);
|
||||
list.add(point2);
|
||||
@@ -62,8 +62,8 @@ public class StatisticalControlledTest {
|
||||
// Boolean aBoolean1 = rule1(list, controlLimit);
|
||||
//
|
||||
//TEST FOR RULE2
|
||||
Boolean aBoolean2 = rule2(list, controlLimit, 9);
|
||||
System.out.println();
|
||||
// Boolean aBoolean2 = rule2(list, controlLimit, 9);
|
||||
// System.out.println();
|
||||
//
|
||||
//
|
||||
// //TEST FOR RULE3
|
||||
@@ -72,7 +72,7 @@ public class StatisticalControlledTest {
|
||||
//
|
||||
//
|
||||
// //TEST FOR RULE4
|
||||
// Boolean aBoolean4 = rule4(list, 4);
|
||||
// Boolean aBoolean4 = rule4(list, 5);
|
||||
// System.out.println();
|
||||
|
||||
// //TEST FOR RULE5
|
||||
@@ -88,6 +88,10 @@ public class StatisticalControlledTest {
|
||||
Boolean aBoolean7 = rule7(list, controlLimit,7);
|
||||
System.out.println();
|
||||
|
||||
//TEST FOR RULE8
|
||||
// Boolean aBoolean8 = rule8(list, controlLimit,8);
|
||||
// System.out.println();
|
||||
|
||||
// int[] array={1,2,3,4,5,6};
|
||||
// int[] ret=new int[3];
|
||||
// System.arraycopy(array,0,ret,0,3);
|
||||
@@ -123,7 +127,6 @@ public class StatisticalControlledTest {
|
||||
* name : 规则2
|
||||
* desc : 连续 n 点落在中心线的用一侧 (默认:9)
|
||||
* 注意: 如果存在满足rule2的点,会在原数组 Point.unsatisfiedRules 里标注出来。
|
||||
* //todo 存在bug while((upi+1) < data.size()){ ,最后一个点轮询不到
|
||||
* return :
|
||||
* 存在满足rule2的点 => true
|
||||
* 不存在满足rule2的点 => false
|
||||
@@ -160,7 +163,7 @@ public class StatisticalControlledTest {
|
||||
//1.
|
||||
for (Point key:forMarkPoints){
|
||||
for(Point j:data){
|
||||
if(key.getPosition()== j.getPosition()){
|
||||
if(key.getPosition().equals(j.getPosition())){
|
||||
j.getUnsatisfiedRules().add(rule2Number);
|
||||
continue;
|
||||
}
|
||||
@@ -197,7 +200,7 @@ public class StatisticalControlledTest {
|
||||
|
||||
for (Point key:forMarkPoints){
|
||||
for(Point j:data){
|
||||
if(key.getPosition()== j.getPosition()){
|
||||
if(key.getPosition().equals(j.getPosition())){
|
||||
j.getUnsatisfiedRules().add(rule2Number);
|
||||
continue;
|
||||
}
|
||||
@@ -280,7 +283,6 @@ public class StatisticalControlledTest {
|
||||
* name : 规则4
|
||||
* desc : 连续 n 点中 相邻点 交替上下 ( 默认:14 )
|
||||
* 注意: 如果存在满足rule4的点,会在原数组 Point.unsatisfiedRules 里标注出来。
|
||||
* //todo 有bug while((upi+1) < data.size()) 这里 upi+1 会存在问题
|
||||
* return :
|
||||
* 存在满足rule4的点 => true
|
||||
* 不存在满足rule4的点 => false
|
||||
@@ -301,6 +303,24 @@ public class StatisticalControlledTest {
|
||||
|
||||
while((upi+1) < data.size()){
|
||||
if(isBetween( data.get(upi),data.get(upi+1) )){
|
||||
//
|
||||
if(forMarkKey.size()==(n-1)){
|
||||
Double u1 = data.get(upi-2).getValue();
|
||||
Double u2 = data.get(upi-1).getValue();
|
||||
Double u3 = data.get(upi).getValue();
|
||||
if(isUpAndDown(u1,u2,u3)){
|
||||
forMarkKey.add(upi);
|
||||
times++;
|
||||
}
|
||||
if(times >= n){
|
||||
for(Integer key:forMarkKey){
|
||||
data.get(key).getUnsatisfiedRules().add(rule4Number);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
//A-B<0 True
|
||||
//A-B>0 False
|
||||
if(isSmall(data.get(upi),data.get(upi+1))){
|
||||
@@ -313,7 +333,19 @@ public class StatisticalControlledTest {
|
||||
if (current.equals(nextNeeded)){
|
||||
times++;
|
||||
forMarkKey.add(upi);
|
||||
if(times == n){
|
||||
//加入最后一个元素的判断
|
||||
if((upi+1)==(data.size()-1)){
|
||||
Double u0 = data.get(upi - 1).getValue();
|
||||
Double u1 = data.get(upi).getValue();
|
||||
Double u2 = data.get(upi + 1).getValue();
|
||||
if(isUpAndDown(u0,u1,u2)){
|
||||
forMarkKey.add(upi+1);
|
||||
times++;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if(times >= n){
|
||||
for(Integer key:forMarkKey){
|
||||
data.get(key).getUnsatisfiedRules().add(rule4Number);
|
||||
}
|
||||
@@ -334,6 +366,8 @@ public class StatisticalControlledTest {
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* name : 规则5
|
||||
* desc : 连续 m 点中 有 n 点 落在中心线同一侧,B区以外。( 默认 m:3 , n:2 )
|
||||
@@ -403,7 +437,7 @@ public class StatisticalControlledTest {
|
||||
/**
|
||||
* name : 规则6
|
||||
* desc : 连续 m 点中 有 n 点 落在中心线同一侧,C区以外。( 默认 m:5 , n:4 )
|
||||
* 注意: 如果存在满足rule5的点,会在原数组 Point.unsatisfiedRules 里标注出来。
|
||||
* 注意: 如果存在满足rule6的点,会在原数组 Point.unsatisfiedRules 里标注出来。
|
||||
* return :
|
||||
* 存在满足rule6的点 => true
|
||||
* 不存在满足rule6的点 => false
|
||||
@@ -469,7 +503,7 @@ public class StatisticalControlledTest {
|
||||
/**
|
||||
* name : 规则7
|
||||
* desc : 连续 n 点 落在中心线两侧的C区内。( 默认 n:15 )
|
||||
* 注意: 如果存在满足rule5的点,会在原数组 Point.unsatisfiedRules 里标注出来。
|
||||
* 注意: 如果存在满足rule7的点,会在原数组 Point.unsatisfiedRules 里标注出来。
|
||||
* return :
|
||||
* 存在满足rule7的点 => true
|
||||
* 不存在满足rule7的点 => false
|
||||
@@ -477,7 +511,7 @@ public class StatisticalControlledTest {
|
||||
private static Boolean rule7(List<Point> data,ControlLimit controlLimit, Integer n){
|
||||
|
||||
|
||||
Integer upi = 0;
|
||||
//Integer upi = 0;
|
||||
ControlLimitDetail controlLimitDetail = new ControlLimitDetail(controlLimit.getUCL(), controlLimit.getCL(), controlLimit.getLCL());
|
||||
System.out.println(controlLimitDetail.toString());
|
||||
Integer times = 0;
|
||||
@@ -486,12 +520,12 @@ public class StatisticalControlledTest {
|
||||
|
||||
for(int i=0;i<data.size();i++){
|
||||
//判断最后一次
|
||||
if((upi+1) == data.size()){
|
||||
Point point = data.get(upi);
|
||||
if((i+1) == data.size()){
|
||||
Point point = data.get(i);
|
||||
if(point.getValue()>controlLimitDetail.getLC()[0] && point.getValue()<controlLimitDetail.getUC()[1]){
|
||||
times++;
|
||||
markKey.add(point);
|
||||
if(times==n){
|
||||
if(times.equals(n)){
|
||||
for(Point j:markKey){
|
||||
j.getUnsatisfiedRules().add(rule7Number);
|
||||
}
|
||||
@@ -506,11 +540,11 @@ public class StatisticalControlledTest {
|
||||
|
||||
//通常情况
|
||||
Point point = data.get(i);
|
||||
if( isBetween( data.get(upi),data.get(upi+1) ) ){
|
||||
if( isBetween( data.get(i),data.get(i+1) ) ){
|
||||
if(point.getValue()>controlLimitDetail.getLC()[0] && point.getValue()<controlLimitDetail.getUC()[1]){
|
||||
times++;
|
||||
markKey.add(point);
|
||||
if(times==n){
|
||||
if(times.equals(n)){
|
||||
for(Point j:markKey){
|
||||
j.getUnsatisfiedRules().add(rule7Number);
|
||||
}
|
||||
@@ -528,8 +562,68 @@ public class StatisticalControlledTest {
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* name : 规则8
|
||||
* desc : 连续 n 点 落在中心线两侧,且无一点在C区内。( 默认 n:8 )
|
||||
* 注意: 如果存在满足rule8的点,会在原数组 Point.unsatisfiedRules 里标注出来。
|
||||
* return :
|
||||
* 存在满足rule8的点 => true
|
||||
* 不存在满足rule8的点 => false
|
||||
* */
|
||||
private static Boolean rule8(List<Point> data,ControlLimit controlLimit, Integer n){
|
||||
|
||||
|
||||
//Integer upi = 0;
|
||||
ControlLimitDetail controlLimitDetail = new ControlLimitDetail(controlLimit.getUCL(), controlLimit.getCL(), controlLimit.getLCL());
|
||||
System.out.println(controlLimitDetail.toString());
|
||||
Integer times = 0;
|
||||
List<Point> markKey = new ArrayList<>();
|
||||
|
||||
|
||||
for(int i=0;i<data.size();i++){
|
||||
//判断最后一次
|
||||
if((i+1) == data.size()){
|
||||
Point point = data.get(i);
|
||||
if( point.getValue()>controlLimitDetail.getUC()[1] || point.getValue()<controlLimitDetail.getLC()[0] ){
|
||||
times++;
|
||||
markKey.add(point);
|
||||
if(times.equals(n)){
|
||||
for(Point j:markKey){
|
||||
j.getUnsatisfiedRules().add(rule8Number);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
}else {
|
||||
times = 0;
|
||||
markKey = new ArrayList<>();
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
//通常情况
|
||||
Point point = data.get(i);
|
||||
if( isBetween( data.get(i),data.get(i+1) ) ){
|
||||
if( point.getValue()>controlLimitDetail.getUC()[1] || point.getValue()<controlLimitDetail.getLC()[0] ){
|
||||
times++;
|
||||
markKey.add(point);
|
||||
if(times.equals(n)){
|
||||
for(Point j:markKey){
|
||||
j.getUnsatisfiedRules().add(rule8Number);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
}else {
|
||||
times = 0;
|
||||
markKey = new ArrayList<>();
|
||||
}
|
||||
}else {
|
||||
times = 0;
|
||||
markKey = new ArrayList<>();
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* 如果 这两个点是相邻的 ==》 true
|
||||
* */
|
||||
@@ -549,4 +643,19 @@ public class StatisticalControlledTest {
|
||||
return (head.getValue()- after.getValue()) > 0;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 如果这三个参数 是起伏的 ====> true
|
||||
*
|
||||
* */
|
||||
private static boolean isUpAndDown(Double u1,Double u2,Double u3){
|
||||
Boolean r1 = ((u1-u2)>0);
|
||||
Boolean r2 = ((u2-u3)>0);
|
||||
if(!r1.equals(r2)){
|
||||
return true;
|
||||
}else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -1,261 +0,0 @@
|
||||
package com.cnbm.qualityPlanning.constant;
|
||||
|
||||
/**
|
||||
* @Desc: " "x bar - R" 控制系数 "
|
||||
* @Author: caixiang
|
||||
* @DATE: 2022/6/30 10:44
|
||||
*/
|
||||
public class XBarRCoefficients {
|
||||
public static Double getA2(Integer sampleSize){
|
||||
if(sampleSize<=1){
|
||||
return null;
|
||||
}
|
||||
Double res = null;
|
||||
switch(sampleSize){
|
||||
//P92
|
||||
case 2:
|
||||
res = new Double(1.880);
|
||||
break;
|
||||
case 3:
|
||||
res = new Double(1.023);
|
||||
break;
|
||||
case 4:
|
||||
res = new Double(0.729);
|
||||
break;
|
||||
case 5:
|
||||
res = new Double(0.577);
|
||||
break;
|
||||
case 6:
|
||||
res = new Double(0.483);
|
||||
break;
|
||||
case 7:
|
||||
res = new Double(0.419);
|
||||
break;
|
||||
case 8:
|
||||
res = new Double(0.373);
|
||||
break;
|
||||
case 9:
|
||||
res = new Double(0.337);
|
||||
break;
|
||||
case 10:
|
||||
res = new Double(0.308);
|
||||
break;
|
||||
case 11:
|
||||
res = new Double(0.285);
|
||||
break;
|
||||
case 12:
|
||||
res = new Double(0.266);
|
||||
break;
|
||||
case 13:
|
||||
res = new Double(0.249);
|
||||
break;
|
||||
case 14:
|
||||
res = new Double(0.235);
|
||||
break;
|
||||
case 15:
|
||||
res = new Double(0.223);
|
||||
break;
|
||||
case 16:
|
||||
res = new Double(0.212);
|
||||
break;
|
||||
case 17:
|
||||
res = new Double(0.203);
|
||||
break;
|
||||
case 18:
|
||||
res = new Double(0.194);
|
||||
break;
|
||||
case 19:
|
||||
res = new Double(0.187);
|
||||
break;
|
||||
case 20:
|
||||
res = new Double(0.180);
|
||||
break;
|
||||
case 21:
|
||||
res = new Double(0.173);
|
||||
break;
|
||||
case 22:
|
||||
res = new Double(0.167);
|
||||
break;
|
||||
case 23:
|
||||
res = new Double(0.162);
|
||||
break;
|
||||
case 24:
|
||||
res = new Double(0.157);
|
||||
break;
|
||||
//大于等于25 都是用0.153
|
||||
default :
|
||||
res = new Double(0.153);
|
||||
break;
|
||||
}
|
||||
return res;
|
||||
}
|
||||
|
||||
public static Double getD3(Integer sampleSize){
|
||||
if(sampleSize<=1){
|
||||
return null;
|
||||
}
|
||||
Double res = null;
|
||||
switch(sampleSize){
|
||||
//P92
|
||||
case 2:
|
||||
res = new Double(0);
|
||||
break;
|
||||
case 3:
|
||||
res = new Double(0);
|
||||
break;
|
||||
case 4:
|
||||
res = new Double(0);
|
||||
break;
|
||||
case 5:
|
||||
res = new Double(0);
|
||||
break;
|
||||
case 6:
|
||||
res = new Double(0);
|
||||
break;
|
||||
case 7:
|
||||
res = new Double(0.076);
|
||||
break;
|
||||
case 8:
|
||||
res = new Double(0.136);
|
||||
break;
|
||||
case 9:
|
||||
res = new Double(0.184);
|
||||
break;
|
||||
case 10:
|
||||
res = new Double(0.223);
|
||||
break;
|
||||
case 11:
|
||||
res = new Double(0.256);
|
||||
break;
|
||||
case 12:
|
||||
res = new Double(0.283);
|
||||
break;
|
||||
case 13:
|
||||
res = new Double(0.307);
|
||||
break;
|
||||
case 14:
|
||||
res = new Double(0.328);
|
||||
break;
|
||||
case 15:
|
||||
res = new Double(0.347);
|
||||
break;
|
||||
case 16:
|
||||
res = new Double(0.363);
|
||||
break;
|
||||
case 17:
|
||||
res = new Double(0.378);
|
||||
break;
|
||||
case 18:
|
||||
res = new Double(0.391);
|
||||
break;
|
||||
case 19:
|
||||
res = new Double(0.403);
|
||||
break;
|
||||
case 20:
|
||||
res = new Double(0.415);
|
||||
break;
|
||||
case 21:
|
||||
res = new Double(0.425);
|
||||
break;
|
||||
case 22:
|
||||
res = new Double(0.434);
|
||||
break;
|
||||
case 23:
|
||||
res = new Double(0.443);
|
||||
break;
|
||||
case 24:
|
||||
res = new Double(0.451);
|
||||
break;
|
||||
//大于等于25 都是用0.459
|
||||
default :
|
||||
res = new Double(0.459);
|
||||
break;
|
||||
}
|
||||
return res;
|
||||
}
|
||||
|
||||
public static Double getD4(Integer sampleSize){
|
||||
if(sampleSize<=1){
|
||||
return null;
|
||||
}
|
||||
Double res = null;
|
||||
switch(sampleSize){
|
||||
//P92
|
||||
case 2:
|
||||
res = new Double(3.267);
|
||||
break;
|
||||
case 3:
|
||||
res = new Double(2.574);
|
||||
break;
|
||||
case 4:
|
||||
res = new Double(2.282);
|
||||
break;
|
||||
case 5:
|
||||
res = new Double(2.114);
|
||||
break;
|
||||
case 6:
|
||||
res = new Double(2.004);
|
||||
break;
|
||||
case 7:
|
||||
res = new Double(1.924);
|
||||
break;
|
||||
case 8:
|
||||
res = new Double(1.864);
|
||||
break;
|
||||
case 9:
|
||||
res = new Double(1.816);
|
||||
break;
|
||||
case 10:
|
||||
res = new Double(1.777);
|
||||
break;
|
||||
case 11:
|
||||
res = new Double(1.744);
|
||||
break;
|
||||
case 12:
|
||||
res = new Double(1.717);
|
||||
break;
|
||||
case 13:
|
||||
res = new Double(1.693);
|
||||
break;
|
||||
case 14:
|
||||
res = new Double(1.672);
|
||||
break;
|
||||
case 15:
|
||||
res = new Double(1.653);
|
||||
break;
|
||||
case 16:
|
||||
res = new Double(1.637);
|
||||
break;
|
||||
case 17:
|
||||
res = new Double(1.622);
|
||||
break;
|
||||
case 18:
|
||||
res = new Double(1.608);
|
||||
break;
|
||||
case 19:
|
||||
res = new Double(1.597);
|
||||
break;
|
||||
case 20:
|
||||
res = new Double(1.585);
|
||||
break;
|
||||
case 21:
|
||||
res = new Double(1.575);
|
||||
break;
|
||||
case 22:
|
||||
res = new Double(1.566);
|
||||
break;
|
||||
case 23:
|
||||
res = new Double(1.557);
|
||||
break;
|
||||
case 24:
|
||||
res = new Double(1.548);
|
||||
break;
|
||||
//大于等于25 都是用1.541
|
||||
default :
|
||||
res = new Double(1.541);
|
||||
break;
|
||||
}
|
||||
return res;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,257 +0,0 @@
|
||||
package com.cnbm.qualityPlanning.constant;
|
||||
|
||||
/**
|
||||
* @Desc: " "x bar - s" 控制系数 "
|
||||
* @Author: caixiang
|
||||
* @DATE: 2022/6/30 10:44
|
||||
*/
|
||||
public class XBarSCoefficients {
|
||||
public static Double getAS(Integer sampleSize){
|
||||
if(sampleSize<=1){
|
||||
return null;
|
||||
}
|
||||
Double res = null;
|
||||
switch(sampleSize){
|
||||
case 2:
|
||||
res = new Double(2.659);
|
||||
break;
|
||||
case 3:
|
||||
res = new Double(1.954);
|
||||
break;
|
||||
case 4:
|
||||
res = new Double(1.628);
|
||||
break;
|
||||
case 5:
|
||||
res = new Double(1.427);
|
||||
break;
|
||||
case 6:
|
||||
res = new Double(1.287);
|
||||
break;
|
||||
case 7:
|
||||
res = new Double(1.182);
|
||||
break;
|
||||
case 8:
|
||||
res = new Double(1.099);
|
||||
break;
|
||||
case 9:
|
||||
res = new Double(1.032);
|
||||
break;
|
||||
case 10:
|
||||
res = new Double(0.975);
|
||||
break;
|
||||
case 11:
|
||||
res = new Double(0.972);
|
||||
break;
|
||||
case 12:
|
||||
res = new Double(0.866);
|
||||
break;
|
||||
case 13:
|
||||
res = new Double(0.850);
|
||||
break;
|
||||
case 14:
|
||||
res = new Double(0.817);
|
||||
break;
|
||||
case 15:
|
||||
res = new Double(0.789);
|
||||
break;
|
||||
case 16:
|
||||
res = new Double(0.763);
|
||||
break;
|
||||
case 17:
|
||||
res = new Double(0.739);
|
||||
break;
|
||||
case 18:
|
||||
res = new Double(0.718);
|
||||
break;
|
||||
case 19:
|
||||
res = new Double(0.698);
|
||||
break;
|
||||
case 20:
|
||||
res = new Double(0.680);
|
||||
break;
|
||||
case 21:
|
||||
res = new Double(0.663);
|
||||
break;
|
||||
case 22:
|
||||
res = new Double(0.647);
|
||||
break;
|
||||
case 23:
|
||||
res = new Double(0.633);
|
||||
break;
|
||||
case 24:
|
||||
res = new Double(0.619);
|
||||
break;
|
||||
//大于等于25 都是用0.606
|
||||
default :
|
||||
res = new Double(0.606);
|
||||
break;
|
||||
}
|
||||
return res;
|
||||
}
|
||||
|
||||
public static Double getBU(Integer sampleSize){
|
||||
if(sampleSize<=1){
|
||||
return null;
|
||||
}
|
||||
Double res = null;
|
||||
switch(sampleSize){
|
||||
case 2:
|
||||
res = new Double(3.267);
|
||||
break;
|
||||
case 3:
|
||||
res = new Double(2.568);
|
||||
break;
|
||||
case 4:
|
||||
res = new Double(2.266);
|
||||
break;
|
||||
case 5:
|
||||
res = new Double(2.089);
|
||||
break;
|
||||
case 6:
|
||||
res = new Double(1.970);
|
||||
break;
|
||||
case 7:
|
||||
res = new Double(1.882);
|
||||
break;
|
||||
case 8:
|
||||
res = new Double(1.815);
|
||||
break;
|
||||
case 9:
|
||||
res = new Double(1.761);
|
||||
break;
|
||||
case 10:
|
||||
res = new Double(1.716);
|
||||
break;
|
||||
case 11:
|
||||
res = new Double(1.679);
|
||||
break;
|
||||
case 12:
|
||||
res = new Double(1.646);
|
||||
break;
|
||||
case 13:
|
||||
res = new Double(1.618);
|
||||
break;
|
||||
case 14:
|
||||
res = new Double(1.594);
|
||||
break;
|
||||
case 15:
|
||||
res = new Double(1.572);
|
||||
break;
|
||||
case 16:
|
||||
res = new Double(1.552);
|
||||
break;
|
||||
case 17:
|
||||
res = new Double(1.534);
|
||||
break;
|
||||
case 18:
|
||||
res = new Double(1.518);
|
||||
break;
|
||||
case 19:
|
||||
res = new Double(1.503);
|
||||
break;
|
||||
case 20:
|
||||
res = new Double(1.490);
|
||||
break;
|
||||
case 21:
|
||||
res = new Double(1.477);
|
||||
break;
|
||||
case 22:
|
||||
res = new Double(1.466);
|
||||
break;
|
||||
case 23:
|
||||
res = new Double(1.455);
|
||||
break;
|
||||
case 24:
|
||||
res = new Double(1.445);
|
||||
break;
|
||||
//大于等于25 都是用1.435
|
||||
default :
|
||||
res = new Double(1.435);
|
||||
break;
|
||||
}
|
||||
return res;
|
||||
}
|
||||
|
||||
public static Double getBL(Integer sampleSize){
|
||||
if(sampleSize<=1){
|
||||
return null;
|
||||
}
|
||||
Double res = null;
|
||||
switch(sampleSize){
|
||||
case 2:
|
||||
res = new Double(0);
|
||||
break;
|
||||
case 3:
|
||||
res = new Double(0);
|
||||
break;
|
||||
case 4:
|
||||
res = new Double(0);
|
||||
break;
|
||||
case 5:
|
||||
res = new Double(0);
|
||||
break;
|
||||
case 6:
|
||||
res = new Double(0.030);
|
||||
break;
|
||||
case 7:
|
||||
res = new Double(0.118);
|
||||
break;
|
||||
case 8:
|
||||
res = new Double(0.185);
|
||||
break;
|
||||
case 9:
|
||||
res = new Double(0.239);
|
||||
break;
|
||||
case 10:
|
||||
res = new Double(0.284);
|
||||
break;
|
||||
case 11:
|
||||
res = new Double(0.321);
|
||||
break;
|
||||
case 12:
|
||||
res = new Double(0.354);
|
||||
break;
|
||||
case 13:
|
||||
res = new Double(0.382);
|
||||
break;
|
||||
case 14:
|
||||
res = new Double(0.406);
|
||||
break;
|
||||
case 15:
|
||||
res = new Double(0.428);
|
||||
break;
|
||||
case 16:
|
||||
res = new Double(0.448);
|
||||
break;
|
||||
case 17:
|
||||
res = new Double(0.466);
|
||||
break;
|
||||
case 18:
|
||||
res = new Double(0.482);
|
||||
break;
|
||||
case 19:
|
||||
res = new Double(0.497);
|
||||
break;
|
||||
case 20:
|
||||
res = new Double(0.510);
|
||||
break;
|
||||
case 21:
|
||||
res = new Double(0.523);
|
||||
break;
|
||||
case 22:
|
||||
res = new Double(0.534);
|
||||
break;
|
||||
case 23:
|
||||
res = new Double(0.545);
|
||||
break;
|
||||
case 24:
|
||||
res = new Double(0.555);
|
||||
break;
|
||||
//大于等于25 都是用0.565
|
||||
default :
|
||||
res = new Double(0.565);
|
||||
break;
|
||||
}
|
||||
return res;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user