一、算法介绍

本博文主要写了彩票走势图中的遗漏值、出现总次数、平均遗漏值、最大遗漏值、最大连出值的计算逻辑。

二、图文简介

[这是XX网双色球的彩票走势图,博主这里是将彩票数据分区展示,以双色球为例,分了五个区域,本博文中的遗漏值是按照期数的降序排列计算的如下图]

三、工具类简介(请仔细看完工具类简介)

彩票走势图的工具类**LotteryTrend**中将彩票的名称彩票的id,及其对应的数字域数据域id,每个区域的起始数字,每个区域的长度等数据按照顺序一一对应定义。另一个工具类**MissValue**就是彩票遗漏值的工具类,里面是具体的**彩票遗漏值、出现总次数、平均遗漏值、最大遗漏值、最大连出值**的计算方法,博主将开奖位置的遗漏值置为0,返给前端的。下面是这几个名词的定义:
**彩票遗漏值**:自上期开出到本期间隔的期数。
**出现总次数**:当前选定的彩票期数区间内该球的出现总次数。
**平均遗漏值**:平均遗漏值计算公式:总期数除以出现的总次数,如果总次数为0,该值为0;如果除不尽将计算结果向下取整。
**最大遗漏值**:历史开奖以来该球连续不出现的最大值,即为距离上次出现的间隔数的最大值。
**最大连出值**:**博主写的是选定期数内连续出现的最大值,与右图不符合**.

四、返回给前端的json数据

五、代码块

import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.Comparator;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;/*** 彩票走势图工具类* @author Administrator**/
public class LotteryTrend {//所有彩票名称数组public static final String[] titleArray={"超级大乐透","七星彩","排列三","排列五","双色球","福彩3D","江西11选5","11运夺金","广东11选5","上海11选5","浙江11选5","七乐彩","重庆时时彩","胜负彩","安徽快三","湖北快三","吉林快三","江苏快三","江苏11选5","浙江12选5"};//彩票的id数组public static final String[] lotteryidArray={"19","18","2","13","16","1","9","8","10","24","27","17","3","71","32","33","34","35","28","22"};//每种彩票的区域或者数字域public static final String[][] headArray={{"红一区","红二区","红三区","后区"},{"第七位","第六位","第五位","第四位","第三位","第二位","第一位"},{"百位","十位","个位"},{"万位","千位","百位","十位","个位"},{"红一区","红二区","红三区","篮球"},{"百位","十位","个位"},{"万位","千位","百位","十位","个位"},{"万位","千位","百位","十位","个位"},{"万位","千位","百位","十位","个位"},{"万位","千位","百位","十位","个位"},{"万位","千位","百位","十位","个位"},{"一区","二区","三区"},{"万位","千位","百位","十位","个位"},{"3","1","0"},{"百位","十位","个位"},{"百位","十位","个位"},{"百位","十位","个位"},{"百位","十位","个位"},{"万位","千位","百位","十位","个位"},{"万位","千位","百位","十位","个位"}};//区域或者数字域的idpublic static final String[][] idxArray ={{"area1","area2","area3","back"},{"num_info7","num_info6","num_info5","num_info4","num_info3","num_info2","num_info1"},{"num_info3","num_info2","num_info1"},{"num_info5","num_info4","num_info3","num_info2","num_info1"},{"area1","area2","area3","num_info7"},{"num_info3","num_info2","num_info1"},{"num_info5","num_info4","num_info3","num_info2","num_info1"},{"num_info5","num_info4","num_info3","num_info2","num_info1"},{"num_info5","num_info4","num_info3","num_info2","num_info1"},{"num_info5","num_info4","num_info3","num_info2","num_info1"},{"num_info5","num_info4","num_info3","num_info2","num_info1"},{"area1","area2","area3"},{"num_info5","num_info4","num_info3","num_info2","num_info1"},{"3","1","0"},{"num_info3","num_info2","num_info1"},{"num_info3","num_info2","num_info1"},{"num_info3","num_info2","num_info1"},{"num_info3","num_info2","num_info1"}, {"num_info5","num_info4","num_info3","num_info2","num_info1"},{"num_info5","num_info4","num_info3","num_info2","num_info1"}};//定义每个区域的起始数字public static final String[][] beginNum = {{"01","13","25","01"},{"0","0","0","0","0","0","0"},{"0","0","0"},{"0","0","0","0","0"},{"01","12","23","01"},{"0","0","0"},{"1","1","1","1","1"},{"1","1","1","1","1"},{"1","1","1","1","1"},{"1","1","1","1","1"},{"1","1","1","1","1"},{"01","11","21"},{"0","0","0","0","0"},{"1","1","1"},{"1","1","1"},{"1","1","1"},{"1","1","1"},{"1","1","1"}, {"1","1","1","1","1"},{"1","1","1","1","1"}};//定义每个区域的长度public static final int[][] horizontalSpans = {{12,12,11,12},{10,10,10,10,10,10,10},{10,10,10},{10,10,10,10,10},{11,11,11,16},{10,10,10},{11,11,11,11,11},{11,11,11,11,11},{11,11,11,11,11},{11,11,11,11,11},{11,11,11,11,11},{10,10,10},{10,10,10},{14,14,14},{6,6,6},{6,6,6},{6,6,6},{6,6,6}, {11,11,11,11,11},{12,12,12,12,12}};//是否需要两位,例如01或者1public static final String[] isHaveTwoPosition = {"1","0","0","0","1","0","0","0","0","0","0","1","0","0", "0","0","0","0","0","0"};//冷热public static final  String[][] codeAndHotIdxArray = {{"num_info1","num_info2","num_info3","num_info4","num_info5","num_info6","num_info7"},{"num_info1","num_info2","num_info3","num_info4","num_info5","num_info6","num_info7"},{"num_info1","num_info2","num_info3"},{"num_info3","num_info2","num_info1"},{"num_info1","num_info2","num_info3","num_info4","num_info5","num_info6","num_info7"},{"num_info3","num_info2","num_info1"},{"num_info1","num_info2","num_info3","num_info4","num_info5"},{"num_info1","num_info2","num_info3","num_info4","num_info5"},{"num_info1","num_info2","num_info3","num_info4","num_info5"},{"num_info1","num_info2","num_info3","num_info4","num_info5"},{"num_info1","num_info2","num_info3","num_info4","num_info5"},{"num_info1","num_info2","num_info3","num_info4","num_info5","num_info6","num_info7"},{"num_info3","num_info2","num_info1"},{},{"num_info1","num_info2","num_info3"},{"num_info1","num_info2","num_info3"},{"num_info1","num_info2","num_info3"},{"num_info1","num_info2","num_info3"},{"num_info1","num_info2","num_info3","num_info4","num_info5"},{"num_info1","num_info2","num_info3","num_info4","num_info5"}};//封装走势图所有的数据/*** list  数据库查询到的当前彩种开奖数据集合* issueCount  页面传来的指定的查看的总期数* totalIssue  当前开奖数据历史以来的总期数*/public static   Map<String,Object> trendInfo(List<Map<String,String>> list, String lotteryid, String idx,Integer issueCount,Integer totalIssue){int m=0,n=0,horizontalSpan=0;//m代表当前彩种在彩票id数组的位置;n代表要展示的区域(如红一区,后区等)或者数字域(百位,十位,各位等);horizontalSpan水平方向的跨度Map<String,Object> map = new LinkedHashMap<String, Object>();//封装返回数据的集合,包括alldiffs,average_omission,infolist,max_omission,max_output,placenum,result//获取mfor (int i = 0; i < lotteryidArray.length; i++) {if(lotteryidArray[i].equals(lotteryid)){m=i;break;}}//System.out.println("当前彩种在彩票id数组的位置:"+m);//获取nfor (int i = 0; i < idxArray[m].length; i++) {if(idxArray[i].equals(idx)){n=i;break;}}//System.out.println("要展示走势的当前彩票的区域:"+n);//获取水平跨度horizontalSpan =horizontalSpans[m][n];//封装开奖数据List<Map<String,String>> infolist =new ArrayList<>();if(issueCount<=totalIssue){for (int j = 0; j < issueCount; j++) {//封装每一条开奖数据String[] sp = list.get(j).get("result").replaceFirst("\\+", ",").split(",");Map<String,String> ma1  =  new LinkedHashMap<String, String>();//封装期号ma1.put("id", list.get(j).get("id"));//封装idma1.put("lottery_num", list.get(j).get("termNo"));//封装开奖号码for (int i = 0; i < codeAndHotIdxArray[m].length; i++) {ma1.put(codeAndHotIdxArray[m][i], sp[i]);}infolist.add(ma1);}}else{for (int j = 0; j < totalIssue; j++) {//封装每一条开奖数据String[] sp = list.get(j).get("result").replaceFirst("\\+", ",").split(",");Map<String,String> ma1  =  new LinkedHashMap<String, String>();//封装期号ma1.put("id", list.get(j).get("id"));//封装idma1.put("lottery_num", list.get(j).get("termNo"));//封装开奖号码for (int i = 0; i < codeAndHotIdxArray[m].length; i++) {ma1.put(codeAndHotIdxArray[m][i], sp[i]);}infolist.add(ma1);}}map.put("infolist", infolist);//转换数据格式List<List<Integer>> convertList = MissingValue.convertAwardData(list);//获得当前彩种的所有遗漏值数据int[][] alldiff_totalIssue = MissingValue.getMissingvalue(convertList,Integer.parseInt(beginNum[m][n]), totalIssue, horizontalSpan);//获得当前彩种的指定期的遗漏值数据int[][] alldiffs  = null;if(issueCount<=totalIssue){alldiffs  =  new int[issueCount][horizontalSpan];for (int i =0; i <alldiffs.length; i++) {for (int j =0;j<horizontalSpan;j++) {alldiffs[i][j]=alldiff_totalIssue[i][j];}}}else{alldiffs  =  new int[totalIssue][horizontalSpan];for (int i =0; i <alldiffs.length; i++) {for (int j =0;j<horizontalSpan;j++) {alldiffs[i][j]=alldiff_totalIssue[i][j];}}}map.put("alldiffs", alldiffs);//出现总次数List<Integer> placenum = MissingValue.getTotal(alldiffs);//平均遗漏值List<Integer> average_omission = null;if(issueCount<=totalIssue){average_omission = MissingValue.getCoverage(placenum, issueCount);}else{average_omission = MissingValue.getCoverage(placenum, totalIssue);}//最大遗漏值List<Integer> max_omission = MissingValue.getMax(alldiff_totalIssue);//最大连出值List<Integer> max_output = MissingValue.getContinuous(alldiffs);map.put("max_output", max_output);map.put("placenum", placenum);map.put("average_omission", average_omission);map.put("max_omission", max_omission);return map;}//封装冷热的数据public static   Map<String,Object>  saveColoHot(List<Map<String,String>> list, String lotteryid, String idx,Integer issueCount,Integer totalIssue){int m=0,n=0;//m代表当前彩种在彩票id数组的位置,n代表冷热的区域Map<String,Object> map = new LinkedHashMap<String, Object>();//封装返回数据的集合,包括alldiffs,average_omission,infolist,max_omission,max_output,placenum,result//获取mfor (int i = 0; i < lotteryidArray.length; i++) {if(lotteryidArray[i].equals(lotteryid)){m=i;break;}}//获取nfor (int i = 0; i < codeAndHotIdxArray[m].length; i++) {if(codeAndHotIdxArray[i].equals(idx)){n=i;break;}}//获取开奖数据List<List<String>> infolist =new ArrayList<>();if(issueCount<=totalIssue){for (int j = 0; j < issueCount; j++) {//封装每一条开奖数据String[] sp = list.get(j).get("result").replaceFirst("\\+", ",").split(",");List<String> li  =  new ArrayList<>();//封装开奖号码for (int i = 0; i <sp.length ; i++) {li.add(sp[i]);}infolist.add(li);}}else{for (int j = 0; j < totalIssue; j++) {//封装每一条开奖数据String[] sp = list.get(j).get("result").replaceFirst("\\+", ",").split(",");List<String> li  =  new ArrayList<>();//封装开奖号码for (int i = 0; i <sp.length ; i++) {li.add(sp[i]);}infolist.add(li);}}List<LinkedHashMap<String, String>> placenum = getColdHot(infolist, idx, n);map.put("placenum", placenum);map.put("result", "success");return map;}//获得冷热的数据public static List<LinkedHashMap<String,String>> getColdHot(List<List<String>> infolist,String idx,Integer n){List<LinkedHashMap<String,String>> list= new ArrayList<>();//对出现的次数做降序排列Map<String,Integer> map =  new HashMap<>();for (int i = 0; i < infolist.size(); i++) {if(map.containsKey(infolist.get(i).get(n))){map.put(infolist.get(i).get(n), map.get(infolist.get(i).get(n))+1);}else{map.put(infolist.get(i).get(n), 1);}}List<Entry<String, Integer>> sortMap = sortMap(map);//封装冷热图的数据for(Entry<String,Integer> entry :sortMap){String key = entry.getKey();   Integer value = entry.getValue();BigDecimal b1 = new BigDecimal(Double.toString(value*100));   BigDecimal b2 = new BigDecimal(Double.toString(infolist.size())); double countunm = b1.divide(b2,2,BigDecimal.ROUND_HALF_UP).doubleValue();LinkedHashMap<String,String> lhm =  new LinkedHashMap<>();lhm.put(idx, key);lhm.put("countid", value+"");String countunm1 =String.valueOf(countunm);if((countunm1.split("\\.")[1]).length()==1){//此情况代表countunm是整数,小数点后面只有一个0,为满足数据(数据格式:xx.yy00)封装要求,要添加三个0lhm.put("countunm", countunm1+"000");}else{lhm.put("countunm", countunm1+"00");}list.add(lhm);}return list;}//对map集合value实现降序排列public static List<Map.Entry<String, Integer>> sortMap(Map<String, Integer> map){//获取entrySetSet<Map.Entry<String,Integer>> mapEntries = map.entrySet();//使用链表来对集合进行排序,使用LinkedList,利于插入元素List<Map.Entry<String, Integer>> result = new LinkedList<>(mapEntries);//自定义比较器来比较链表中的元素Collections.sort(result, new Comparator<Entry<String, Integer>>() {//基于entry的值(Entry.getValue()),来排序链表@Overridepublic int compare(Entry<String, Integer> o1,Entry<String, Integer> o2) {return o2.getValue().compareTo(o1.getValue()) ;}});//将排好序的存入到LinkedHashMap(可保持顺序)中,需要存储键和值信息对到新的映射中。Map<String,Integer> linkMap = new LinkedHashMap<>();for(Entry<String,Integer> newEntry :result){linkMap.put(newEntry.getKey(), newEntry.getValue());            }/*//根据entrySet()方法遍历linkMapfor(Map.Entry<String, Integer> mapEntry : linkMap.entrySet()){System.out.println("key:"+mapEntry.getKey()+"  value:"+mapEntry.getValue());}*/return result;}
}

====================华丽丽里的分割线=========================

import java.util.ArrayList;
import java.util.List;
import java.util.Map;/*** @admistrator * 计算遗漏值的工具类* */
public class MissingValue {/*** 获取整个区域的遗漏值* lis 开奖数据的集合(从数据查询到的开奖数据集合)* row 行数* column 列数*/public static int[][] getMissingvalue(List<List<Integer>> lis,Integer beginNum ,Integer row ,Integer horizontalSpan){int[][] arr = new int[row][horizontalSpan];//获取整个区域的遗漏值for (int k =1 ; k <=horizontalSpan ; k++) {//获取每期开奖数据在当前列的位置List<Integer> countList= new ArrayList<Integer>();for (int i = 0; i <=lis.size()-1; i++) {for (int j = 0; j <lis.get(i).size() ; j++) {if(lis.get(i).get(j)>beginNum+horizontalSpan-1){break;}if(lis.get(i).get(j)==k){countList.add(i);//记录当前列的开奖号码的行号}}}if(countList.size()!=0 && countList!=null){int[] arrj=getOthers(countList,arr.length);for (int j = 0; j < arrj.length; j++) {arr[j][k-1]=arrj[j];}}else{for (int j = arr.length-1; j >=0; j--) {arr[j][k-1]=arr.length-j;}}}return arr;}//获取每列的遗漏值数据public static  int[]  getOthers(List<Integer> list,int row){int[] array=new int[row];int n =0;while(true){if(list.size()==1){if(list.get(n)==0){//中奖号码只有一个且在顶部array[n]=0;for (int i = array.length-1; i >0; i--) {array[i]=array.length-i;}}else if(list.get(n)==row-1){//中奖号码只有一个且在底部for (int i = list.get(n); i >=0; i--) {array[i]=list.get(n)-i;}}else if(list.get(n)>0 && list.get(n)<row-1){//中奖号码只有一个且在中间for (int i = array.length-1; i >list.get(n); i--) {array[i]=array.length-i;}for (int i = list.get(n); i >=0; i--) {array[i]=list.get(n)-i;}}}else if(list.size()>1){if(n==0){//第1个开奖号码if(list.get(n)==0){//当前中奖号码在顶部array[n]=0;}else if(list.get(n)<row-1){//当前号码在中间for (int i = list.get(n); i >=0; i--) {array[i]=list.get(n)-i;}}}else if(n+1<list.size() && n>0){//当前为第n+1个开奖号码,而且不是最后一个,那么当前号码一定在中间if(list.get(n)-list.get(n-1)-1!=0){//开奖号码有间隔for (int i = list.get(n); i >list.get(n-1); i--) {array[i]=list.get(n)-i;}}else{//开奖号码没有间隔array[list.get(n)]=0;}}else if(n+1==list.size() && n>0){//当前开奖号码为这一列的最后一个开奖号码if(list.get(n)-list.get(n-1)-1>0){//开奖号码有间隔if(list.get(n)==row-1){//当前中奖号码在底部for (int i = list.get(n); i >list.get(n-1); i--) {array[i]=list.get(n)-i;}}else if(list.get(n)<row-1){//当前号码在中间for (int i = list.get(n); i >list.get(n-1); i--) {array[i]=list.get(n)-i;}for (int i = array.length-1; i >=list.get(n)+1; i--) {array[i]=array.length-i;}}}else if(list.get(n)-list.get(n-1)-1==0){//开奖号码没有间隔if(list.get(n)==row-1){//当前中奖号码在底部array[list.get(n)]=0;}else if(list.get(n)<row-1){//当前号码在中间array[list.get(n)]=0;for (int i = array.length-1; i >list.get(n); i--) {array[i]=array.length-i;}}}break;}}if(n==list.size()-1){break;}n++;}return array;}/*** 处理开奖数据的方法* 实现的功能:将每一期在当前区域的开奖数据获取出来,并转换为int 类型* lis 开奖数据的集合*/public static List<List<Integer>> convertAwardData(List<Map<String,String>> lis){List<List<Integer>> list = new ArrayList<>();for (int i = 0; i < lis.size(); i++) {List<Integer> lii = new ArrayList<>();String[] sp = lis.get(i).get("result").replaceFirst("\\+", ",").split(",");for (int j = 0; j < sp.length; j++) {lii.add(Integer.parseInt(sp[j]));}list.add(lii);}return list;}/*** 计算每列开奖的总次数(即:出现总次数)** arr 遗漏值数据的数组*/public static List<Integer> getTotal(int[][] arr){List<Integer> list = new ArrayList<>();for (int i = 0; i < arr[0].length; i++) {int count = 0;for (int j = 0; j < arr.length; j++) {if(arr[j][i]==0){count++;}}list.add(count);}return list;}/*** 计算平均遗漏值** lis 出现总次数集合* row  总行数*/public static List<Integer> getCoverage(List<Integer> lis ,Integer row){List<Integer> list = new ArrayList<>();for (int i = 0; i < lis.size(); i++) {if(lis.get(i)!=0){list.add(row/lis.get(i));}else{list.add(0);}}return list;}/*** 计算最大遗漏值** arr 遗漏值的集合* */public static List<Integer> getMax(int[][] arr){List<Integer> ll =  new ArrayList<Integer>();for (int i = 0; i < arr[0].length; i++) {int max=arr[0][i];for (int j = 0; j < arr.length; j++) {if(arr[j][i]>max)max=arr[j][i];}ll.add(max);}return ll;}/*** 计算最大连出值** arr 遗漏值的集合*/public static List<Integer> getContinuous(int[][] arr){List<Integer> list = new ArrayList<>();for (int i = 0; i < arr[0].length; i++) {StringBuilder sb = new StringBuilder();for (int j = 0; j < arr.length; j++) {sb.append(arr[j][i]);}list.add(max(sb.toString()));}return list;}//统计相同字符连续出现的最大子序列的长度public static int max(String s){  int max=0,tmp_m=1;for(int i=1;i<s.length();i++){  if(s.charAt(i)==s.charAt(i-1)){  tmp_m++;  }else{  max=max>tmp_m?max:tmp_m;  tmp_m=1;  }  }  max=max>tmp_m?max:tmp_m;//最后的连续数与最大连续的比较  return max;}
}

**
声明:欢迎一起交流学习,如果转载请注明出处!!!
**

java 彩票走势图算法相关推荐

  1. java彩票案例_java彩票例子

    1.[代码]java彩票例子 import java.util.HashSet; //自动过滤重复的集合 import java.util.Random; public class LuckyTic ...

  2. 基于JAVA彩票在线购买系统计算机毕业设计源码+系统+lw文档+部署

    基于JAVA彩票在线购买系统计算机毕业设计源码+系统+lw文档+部署 技术栈 项目架构:B/S架构 开发语言:Java语言 开发软件:idea eclipse 前端技术:Layui.HTML.CSS. ...

  3. 用html制作双色球代码,Html5 canvas 绘制彩票走势图

    因需要 要实现一个类似彩票走势图的功能,初次学Html5 ,很多地方不明白,前段时间也发帖请教过这个问题,也是没给个明确说话,在网上搜了很多,也没有实现的例子,今天仔细研究了下,发现其实也不是很难,现 ...

  4. 彩票走势图xcode源码

    #源码介绍 此份彩票走势图源码是用xcode写的,需要的小伙伴自取哦. #效果展示 #源码已上传阿里云oss,彩票走势图传送门 来自:https://12580code.com/631.html

  5. php能做彩票走势图么,如何用EXCEL制作彩票走势图?

    如何用EXCEL制作彩票走势图? 关键字:彩票 更新时间:2018-03-11 11:10:24 76次访问 网上的彩票走势图用excel可以制作吗?如果行,如何做?最好要象网站上的一样能够随时刷新, ...

  6. java 彩票系统_JAVA版彩票随机生成系统

    import java.io.*; import java.util.Random; class num { public static void main(String[]args) { //声明一 ...

  7. java彩票机选生成

    JAVA实现随机35选5,模拟彩票开奖. 之前去机选了两注彩票,结果一个号没对上,我怀疑他们的机选有问题.然后回去自己写了个机选代码.java随机生成适用于大乐透双色球的机选. 前言 此代码仅供娱乐. ...

  8. Java 彩票双色球实现

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 一.代码实现 1.添加依赖及引入库 2.功能实现 二.功能分析 (1)Lists.newArrayList()方法 R ...

  9. java彩票源码开源带界面,带系统

    闲来无事,写了个小项目练练手,就是彩票系统,里面自带了开奖算法,很简单就是一个定时任务和随机数,系统用的springboot,主要难点就是准确算出期数,和凌晨期数衔接处如何处理,废话不说看图 演示地址 ...

最新文章

  1. WPF 4.0 DatePicker 快速录入
  2. python能写软件吗-python代码能做成软件吗
  3. Android BaseAdapter和ViewHolder 优化 解决ListView的item抢焦点问题和item错乱问题
  4. 【AI白身境】学深度学习你不得不知的爬虫基础​​​​​​​
  5. java多线程(同步和死锁,生产者和消费者问题)
  6. VTK:Rendering之TransformSphere
  7. 虹桥地铁站附近沿线的有房源出租的社区和村落
  8. 基于docker - 单机版FastDFS搭建
  9. html页面转换pdf.txt
  10. bzoj 4094: [Usaco2013 Dec]Optimal Milking
  11. Apache2.2整合PHP5.2
  12. Activiti实战. 1.3Activiti的特点
  13. 同一局域网下电脑传输文件的方式(超简单!)
  14. 2018年华为数通技术大赛复赛拓扑题
  15. ERP原理及应用教程-第二章
  16. 2015第19周五《象与骑象人》《瞬变》读书笔记
  17. 190426网络编程
  18. 什么是差模干扰、共摸干扰?
  19. 如何判断JS中变量的类型
  20. 魅族16无信号服务器,魅族16信号差的解决办法

热门文章

  1. 京东360buy 手机项目的“加入购物车”动画效果研究
  2. VUE监听页面刷新和关闭事件
  3. 整车控制器软件功能检测工装
  4. 国外软件外包项目网站(适用软件兼职)国外威客网站大盘点
  5. cell组件适配BCG风格--适配器模式和查表法
  6. 面试六要点_家庭办公室设置要点:改善空间的6条原则
  7. 解决idea 打开Java项目文件黄色圈问题
  8. #(二)、古人怎么解决波的表达
  9. 读围城论方鸿渐与孙柔嘉的爱情
  10. 赋能区域产业,南京、成都双城AI开发者Meetup报名开启