zoukankan      html  css  js  c++  java
  • 一个将数据均匀分段1,2,5的随写

     1 private static List<int> GetXList(int value)
     2     {
     3         List<int> xList=new List<int>();
     4         //将数据粗略分为10-20段,在此区间内寻找余数最小的值
     5         float minResidueRatio=1.01f;//余数
     6         int goalElement=0;
     7         for(int i=10;i<=20;i++)
     8         {
     9             int element=value/i;
    10             element=GetXSpace(element);
    11             if(value%element==0)
    12             {
    13                 goalElement=element;
    14                 break;
    15             }
    16             float residueRatio=(float)((value/element+1)*element-value)/(float)element;
    17             if(residueRatio<minResidueRatio)
    18             {
    19                 minResidueRatio=residueRatio;
    20                 goalElement=element;
    21             }
    22         }
    23         int segNum=0;//分段数
    24         if(value%goalElement==0)
    25         segNum=value/goalElement;
    26         else
    27         segNum=value/goalElement+1;
    28         for(int i=0;i<=segNum;i++)
    29         {
    30             xList.Add(i*goalElement);
    31         }
    32         return xList;
    33         
    34     }
    35 
    36     private static int GetXSpace(int value)
    37     {
    38         int Digit=GetNumDigit(value);
    39         int num=(int)Math.Pow(10,Digit);
    40         int []arr={1,2,5};
    41         int goal=num;
    42         for(int i=0;i<arr.Length;i++)
    43         {
    44             if(num*arr[i]<=value)
    45             {
    46                 goal=num*arr[i];
    47             }
    48             else
    49             {
    50                 break;
    51             }
    52             
    53         }
    54         return goal;
    55     }
    56 
    57     private static int GetNumDigit(int num)
    58     {
    59         int temp=10; 
    60         int count=0;
    61         while(temp<num)
    62         {
    63             temp*=10;
    64             count++;
    65         }
    66         return count;
    67     }
  • 相关阅读:
    python路径拼接os.path.join()函数的用法
    selenium常用定位方式
    谷歌浏览器发生个人资料错误
    【回顾】html属性、标题、段落、文本格式化
    【回顾】html简介、基础、元素
    类的定义与使用
    简单的超市库存管理系统
    方法定义练习
    参数传递
    方法的重载
  • 原文地址:https://www.cnblogs.com/luxishi/p/9173475.html
Copyright © 2011-2022 走看看