zoukankan      html  css  js  c++  java
  • java设定窗口步长,依次统计窗口内数值总和

    import java.util.Arrays;
    
    public class test2 {
    
    	public static void main(String[] args) {
    		int winSize = 3;
    		int moveStep = 2;
    		int total = 9;
    		
    		System.out.println("样本为:");
    		for(int i=0;i<total;i++){
    			System.out.print(i+" ");
    		}
    		System.out.println("");
    		System.out.println("窗口大小为:"+winSize);
    		System.out.println("步长大小为:"+moveStep);
    
    		int[] cycleArray = new int[winSize];
    		int count = 0;
    		int addPoint = winSize;
    		// 参数初始化
    		System.out.print("窗口{ ");
    		for (int i = 0; i < winSize; i++) {
    			cycleArray[i] = i;
    			count += cycleArray[i];
    			System.out.print(cycleArray[i]+" ");
    		}
    		System.out.print("}的数据总和为:"+count);
    		System.out.println("");
    
    		for (int i = winSize; i < total; i = i + moveStep) {
    			//先去除前moveStep项
    			int add = addPoint;
    			for (int j = 0; j < moveStep; j++) {
    				count += (add+j);
    				count -= cycleArray[addPoint % winSize];
    				cycleArray[addPoint % winSize] = (add+j);
    				addPoint++;
    			}
    			System.out.print("窗口{ ");
    			int[] array = new int[winSize];
    			for(int k=0;k<winSize;k++){
    				array[k] = cycleArray[k];
    			}			
    			for (int j = 0; j < winSize; j++) {			
    				Arrays.sort(array);  //进行排序
    				System.out.print(array[j]+" ");
    			}
    			System.out.print("}的数据总和为:"+count);
    			System.out.println("");
    		}
    	}
    
    }
    

      

    
    
    样本为:
    0 1 2 3 4 5 6 7 8 
    窗口大小为:3
    步长大小为:2
    窗口{ 0 1 2 }的数据总和为:3
    窗口{ 2 3 4 }的数据总和为:9
    窗口{ 4 5 6 }的数据总和为:15
    窗口{ 6 7 8 }的数据总和为:21
    


  • 相关阅读:
    Grid 拾遗
    WPF 依赖属性
    升级cordova
    oracle比较一行的最大值或最小值
    nginx完全关闭log
    hive计算周一的日期
    查看linux文件目录的大小和文件夹包含的文件数
    linux设置服务器时间同步
    oracle取出多个字段列中的最大值和最小值
    oracle SQL语句取本周本月本年的数据
  • 原文地址:https://www.cnblogs.com/xiaodf/p/5027172.html
Copyright © 2011-2022 走看看