身份证验证 80秒13亿数据校验

/**
 * @Company asiainfo-linkage
 * @author WANGDENG
 */
public class IdCardValidator {

 private static final IdCardValidator VALIDATOR=new IdCardValidator(); //单例常量
 private static final boolean[] regions=new boolean[659005];//存放所有省市县数据
 private static final boolean[] dates = new boolean[20141231-19000100];//存放1900年至2014年12月31日日期数据
 private static final String verifyLastData="10X98765432";//最后一位校验成功对应字符的序列
 private static final int[] last=new int[41];// 身份证最后一位号码校验
// private static final int[] WI = { 7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10,5, 8, 4, 2 };//最后一位校验因子
 public static IdCardValidator getInstance(){//返回单例
  return VALIDATOR;
 }
 
 /**
  * 用于生成某年某月对应天数
  * @param year
  * @param month
  * @return
  */
 private static  int daysInMonth(int year, int month) {
     int daysInMonth;
     switch (month) {
         case 1: case 3: case 5:
         case 7: case 8: case 10:
         case 12:
             daysInMonth = 31;
             break;
         case 2:
             if (((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0)) {//闰年
                 daysInMonth = 29;
             } else {
                 daysInMonth = 28;
             }
             break;
         default:
             daysInMonth = 30;
     }
     return daysInMonth;
 }
 /**
  * 重载方法,用于校验带性别信息的身份证号码
  * @param idCard
  * @param isMale
  * @return
  */
 public boolean isValid(String idCard,boolean isMale){
  return isValid(idCard)&&(idCard.charAt(16)%2==0^isMale);
 }
 /**
  * 校验身份证号码的方法,这个看不懂看下面注释掉的,原理一样。
  * @param idCard
  * @return
  *  校验因子为:{ 7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10,5, 8, 4, 2 };
  */
 public boolean isValid(String idCard) {
  if (null == idCard || idCard.length() != 18)
   return false; // 验证长度
  int  sum = 0, regionCode = 0, dateCode = 0;
  char[] arr = idCard.toCharArray();
  //计算与校验码对应的值'0'对应ASCII值为48,校验因子总和100.
  sum = arr[0] * 7 + arr[1] * 9 + arr[2] * 10 + arr[3] * 5
   + arr[4] * 8 + arr[5] * 4 + arr[6] * 2  + arr[7] * 1
   + arr[8] * 6 + arr[9] * 3 + arr[10]* 7 +  arr[11] * 9
   + arr[12]*10 + arr[13]* 5+  arr[14]* 8 +  arr[15] * 4
   + arr[16] * 2 - 4800;
  //验证前17位为数字,第18位为X或数字
  if (arr[0] > 57 || arr[1]  > 57  || arr[2]  > 57 || arr[3]  > 57
  || arr[4]  > 57 || arr[5]  > 57  || arr[6]  > 57 || arr[7]  > 57
  || arr[8]  > 57 || arr[9]  > 57  || arr[10] > 57 || arr[11] > 57
  || arr[12] > 57 || arr[13] > 57  || arr[14] > 57 || arr[15] > 57
  || arr[16] > 57 || arr[0]  < 48  || arr[1]  < 48 || arr[2]  < 48
  || arr[3]  < 48 || arr[4]  < 48  || arr[5]  < 48 || arr[6]  < 48
  || arr[7]  < 48 || arr[8]  < 48  || arr[9]  < 48 || arr[10] < 48
  || arr[11] < 48 || arr[12] < 48  || arr[13] < 48 || arr[14] < 48
  || arr[15] < 48 || arr[16] < 48  ||(arr[17]< 88  && arr[17] > 57)
  || arr[17] < 48 || arr[17] > 88)
   return false;
  // 验证第18位校验码
  if (sum % 11 != last[arr[17] - 48])
   return false;
  //获取省市县片段,5333328=111111*48
  regionCode = arr[0] * 100000 + arr[1] * 10000 + arr[2] * 1000
       + arr[3] * 100   + arr[4] * 10    + arr[5]-5333328;
  //获取日期片段   552333429=11111111*48+19000101
  dateCode =   arr[6] * 10000000 + arr[7] * 1000000 + arr[8] * 100000
       + arr[9] * 10000   + arr[10] * 1000    + arr[11] * 100
       + arr[12]* 10     + arr[13]-552333429;
  return regions[regionCode]&&dates[dateCode];//最后校验省市县和日期
 }
// public boolean isValid(String idCard){
//  if (null == idCard || idCard.length() != 18)return false;  //验证长度
//  int a = 0, sum = 0,regionCode=0,dateCode=0;
//  char[] arr=idCard.toCharArray();
//  for (int i = 0; i < 17; i++) {
//   a = arr[i] - 48;if (a >10 || a < 0)return false; //验证前17位为数字 
//   sum =sum+ WI[i] * a;        //计算校验值
//   switch(i){
//   case 0:case 1:case 2:case 3:case 4:     //快速找到对应条件
//   case 5:regionCode=regionCode*10+a;break;   //获取省市县片段
//   case 6:case 7:case 8:case 9:case 10:
//   case 11:case 12:case 13:dateCode=dateCode*10+a;break;//获取日期片段
//   default: break;
//   }
//  }
//  a = arr[17]-48;        //获取第18为数字
//  if(sum % 11!=last[a])return false;   // 验证第18位校验码
//  if (!(a==40||a < 10 && a > 0))return false; // 验证第18位为数字或X
//  return regions[regionCode]&&dates[dateCode-19000101];//最后校验省市县和日期   
// }
 public static void main(String[] args) {//测试
  long t1=System.currentTimeMillis();
  for(int i=0;i<1300000000;i++)
  IdCardValidator.getInstance().isValid("36062219800101325X");
  long t2=System.currentTimeMillis();
  System.out.println("方法耗时"+(t2-t1)/1000+"秒");
 }

 static {
  for(int j=0,len=verifyLastData.length();j<len;j++)last[verifyLastData.charAt(j)-48]= j;
     for (int year = 1900; year < 2015; year++) {//日期数据加载
         for (int month = 1; month <= 12; month++) {
             for (int day = 1; day <= daysInMonth(year, month); day++) {
                 dates[year*10000+month*100+day-19000101]=true;
             }
         }
     }
  int[] regionArray={//省市县压缩后数据
    110101,110110,110111,110118,110228,110230,120101,120117,
    120221,120222,120223,120224,120225,120226,130101,130106,130107,130109,
    130121,130122,130123,130134,130181,130186,130201,130206,130207,130210,
    130223,130226,130227,130228,130229,130231,130281,130282,130283,130284,
    130301,130305,130321,130325,130401,130405,130406,130407,130421,130422,
    130423,130436,130481,130482,130501,130504,130521,130536,130581,130583,
    130601,130605,130621,130639,130681,130685,130701,130704,130705,130707,
    130721,130734,130801,130805,130821,130829,130901,130904,130921,130931,
    130981,130985,131001,131004,131022,131027,131028,131029,131081,131083,
    131101,131103,131121,131129,131181,131183,140101,140102,140105,140111,
    140121,140124,140181,140182,140201,140204,140211,140213,140221,140228,
    140301,140304,140311,140312,140321,140323,140401,140403,140411,140412,
    140421,140422,140423,140432,140481,140482,140501,140503,140521,140523,
    140524,140526,140581,140582,140601,140604,140621,140625,140701,140703,
    140721,140730,140781,140782,140801,140803,140821,140831,140881,140883,
    140901,140903,140921,140933,140981,140982,141001,141003,141021,141035,
    141081,141083,141101,141103,141121,141131,141181,141183,150101,150106,
    150121,150126,150201,150208,150221,150224,150301,150305,150401,150405,
    150421,150427,150428,150431,150501,150503,150521,150527,150581,150582,
    150601,150603,150621,150628,150701,150703,150721,150728,150781,150786,
    150801,150803,150821,150827,150901,150903,150921,150930,150981,150982,
    152201,152203,152221,152225,152501,152503,152522,152532,152921,152924,
    210101,210107,210111,210115,210122,210125,210181,210182,210201,210205,
    210211,210214,210224,210225,210281,210284,210301,210305,210311,210312,
    210321,210322,210323,210324,210381,210382,210401,210405,210411,210412,
    210421,210424,210501,210506,210521,210523,210601,210605,210624,210625,
    210681,210683,210701,210704,210711,210712,210726,210728,210781,210783,
    210801,210805,210811,210812,210881,210883,210901,210906,210911,210912,
    210921,210923,211001,211006,211011,211012,211021,211022,211081,211082,
    211101,211104,211121,211123,211201,211203,211204,211205,211221,211222,
    211223,211225,211281,211283,211301,211304,211321,211323,211324,211325,
    211381,211383,211401,211405,211421,211423,211481,211482,220101,220107,
    220112,220113,220122,220123,220181,220184,220201,220205,220211,220212,
    220221,220222,220281,220285,220301,220304,220322,220324,220381,220383,
    220401,220404,220421,220423,220501,220504,220521,220522,220523,220525,
    220581,220583,220601,220603,220604,220606,220621,220624,220625,220626,
    220681,220682,220701,220703,220721,220725,220801,220803,220821,220823,
    220881,220883,222401,222407,222424,222425,222426,222427,230101,230105,
    230106,230113,230123,230130,230181,230185,230201,230209,230221,230222,
    230223,230226,230227,230228,230229,230232,230281,230282,230301,230308,
    230321,230322,230381,230383,230401,230408,230421,230423,230501,230504,
    230505,230507,230521,230525,230601,230607,230621,230625,230701,230717,
    230722,230723,230781,230782,230801,230806,230811,230812,230822,230823,
    230826,230827,230828,230829,230833,230834,230881,230883,230901,230905,
    230921,230922,231001,231006,231024,231026,231081,231082,231083,231086,
    231101,231103,231121,231122,231123,231125,231181,231183,231201,231203,
    231221,231227,231281,231284,232701,232705,232721,232724,310101,310102,
    310103,310111,310112,310121,310230,310231,320101,320108,320111,320112,
    320113,320117,320124,320126,320201,320207,320211,320212,320281,320283,
    320301,320306,320311,320313,320321,320325,320381,320383,320401,320403,
    320404,320406,320411,320413,320481,320483,320501,320510,320581,320586,
    320601,320603,320611,320613,320621,320622,320623,320624,320681,320685,
    320701,320702,320703,320704,320705,320707,320721,320725,320801,320805,
    320811,320812,320826,320827,320829,320832,320901,320904,320921,320926,
    320981,320983,321001,321004,321011,321013,321023,321024,321081,321082,
    321084,321085,321088,321089,321101,321103,321111,321113,321181,321184,
    321201,321204,321281,321285,321301,321303,321311,321312,321322,321325,
    330101,330107,330108,330111,330122,330123,330127,330128,330182,330184,
    330185,330186,330201,330202,330203,330207,330211,330213,330225,330227,
    330281,330284,330301,330305,330322,330323,330324,330325,330326,330330,
    330381,330383,330401,330403,330411,330412,330421,330422,330424,330425,
    330481,330484,330501,330504,330521,330524,330601,330603,330621,330622,
    330624,330625,330681,330684,330701,330704,330723,330724,330726,330728,
    330781,330785,330801,330804,330822,330823,330824,330826,330881,330882,
    330901,330904,330921,330923,331001,331005,331021,331025,331081,331083,
    331101,331103,331121,331128,331181,331182,340101,340105,340111,340112,
    340121,340125,340181,340182,340201,340205,340207,340209,340221,340224,
    340225,340226,340301,340305,340311,340312,340321,340324,340401,340407,
    340421,340422,340501,340505,340506,340507,340521,340524,340601,340605,
    340621,340622,340701,340704,340711,340712,340721,340722,340801,340804,
    340811,340812,340822,340829,340881,340882,341001,341005,341021,341025,
    341101,341104,341122,341123,341124,341127,341181,341183,341201,341205,
    341221,341223,341225,341227,341282,341283,341301,341303,341321,341325,
    341401,341403,341421,341425,341501,341504,341521,341526,341601,341603,
    341621,341624,341701,341703,341721,341724,341801,341803,341821,341826,
    341881,341882,350101,350106,350111,350112,350121,350126,350128,350129,
    350181,350183,350201,350202,350203,350204,350205,350207,350211,350214,
    350301,350306,350322,350323,350401,350404,350421,350422,350423,350431,
    350481,350482,350501,350506,350521,350522,350524,350528,350581,350584,
    350601,350604,350622,350630,350681,350682,350701,350703,350721,350726,
    350781,350785,350801,350803,350821,350826,350881,350882,350901,350903,
    350921,350927,350981,350983,360101,360106,360111,360112,360121,360125,
    360201,360204,360222,360223,360281,360282,360301,360303,360313,360314,
    360321,360324,360401,360404,360421,360422,360423,360431,360481,360483,
    360501,360503,360521,360522,360601,360603,360622,360623,360681,360682,
    360701,360703,360721,360736,360781,360783,360801,360804,360821,360831,
    360881,360882,360901,360903,360921,360927,360981,360984,361001,361003,
    361021,361031,361101,361103,361121,361131,361181,361182,370101,370106,
    370112,370114,370124,370127,370181,370182,370201,370204,370205,370206,
    370211,370215,370281,370286,370301,370307,370321,370324,370401,370407,
    370481,370482,370501,370504,370521,370524,370601,370603,370611,370614,
    370634,370635,370681,370688,370701,370706,370724,370726,370781,370787,
    370801,370803,370811,370812,370826,370833,370881,370884,370901,370904,
    370911,370912,370921,370922,370923,370924,370982,370984,371001,371003,
    371081,371084,371101,371104,371121,371123,371201,371204,371301,371303,
    371311,371313,371321,371330,371401,371403,371421,371429,371481,371483,
    371501,371503,371521,371527,371581,371582,371601,371603,371621,371627,
    371701,371703,371721,371729,410101,410107,410108,410109,410122,410123,
    410181,410186,410201,410206,410211,410212,410221,410226,410301,410308,
    410311,410312,410322,410330,410381,410382,410401,410405,410411,410412,
    410421,410424,410425,410426,410481,410483,410501,410504,410505,410507,
    410522,410524,410526,410528,410581,410582,410601,410604,410611,410612,
    410621,410623,410701,410705,410711,410712,410721,410722,410724,410729,
    410781,410783,410801,410805,410811,410812,410821,410824,410825,410826,
    410881,410884,410901,410903,410922,410924,410926,410929,411001,411003,
    411023,411026,411081,411083,411101,411105,411121,411123,411201,411203,
    411221,411223,411224,411225,411281,411283,411301,411304,411321,411331,
    411381,411382,411401,411404,411421,411427,411481,411482,411501,411504,
    411521,411529,411601,411603,411621,411629,411681,411682,411701,411703,
    411721,411730,419001,419002,420101,420108,420111,420118,420201,420206,
    420222,420223,420281,420282,420301,420304,420321,420326,420381,420382,
    420501,420507,420525,420530,420581,420584,420601,420603,420606,420608,
    420624,420627,420682,420685,420701,420705,420801,420803,420804,420805,
    420821,420823,420881,420882,420901,420903,420921,420924,420981,420983,
    420984,420985,421001,421004,421022,421025,421081,421082,421083,421084,
    421087,421088,421101,421103,421121,421128,421181,421183,421201,421203,
    421221,421225,421281,421282,421301,421304,421321,421322,421381,421382,
    422801,422803,422822,422824,422825,422829,429004,429007,429021,429022,
    430101,430106,430111,430113,430121,430123,430124,430125,430181,430182,
    430201,430205,430211,430212,430221,430222,430223,430226,430281,430282,
    430301,430303,430304,430305,430321,430322,430381,430383,430401,430402,
    430405,430409,430412,430413,430421,430425,430426,430427,430481,430483,
    430501,430504,430511,430512,430521,430526,430527,430530,430581,430582,
    430601,430604,430611,430612,430621,430622,430623,430625,430626,430627,
    430681,430683,430701,430704,430721,430727,430781,430782,430801,430803,
    430811,430812,430821,430823,430901,430904,430921,430924,430981,430982,
    431001,431004,431021,431029,431081,431082,431101,431104,431121,431130,
    431201,431203,431221,431231,431281,431282,431301,431303,431321,431323,
    431381,431383,433101,433102,433122,433128,433130,433131,440101,440108,
    440111,440117,440183,440185,440201,440202,440203,440206,440222,440223,
    440224,440225,440229,440230,440232,440234,440281,440283,440301,440302,
    440303,440309,440401,440405,440501,440502,440507,440508,440511,440516,
    440523,440524,440601,440602,440604,440609,440701,440702,440703,440706,
    440781,440782,440783,440786,440801,440805,440811,440812,440823,440824,
    440825,440826,440881,440884,440901,440904,440923,440924,440981,440984,
    441201,441204,441223,441227,441283,441285,441301,441304,441322,441325,
    441401,441403,441421,441425,441426,441428,441481,441482,441501,441503,
    441521,441522,441523,441524,441581,441582,441601,441603,441621,441626,
    441701,441703,441721,441722,441723,441724,441781,441782,441801,441803,
    441821,441822,441823,441824,441825,441828,441881,441883,445101,445103,
    445121,445123,445201,445203,445221,445223,445224,445225,445281,445282,
    445301,445303,445321,445324,445381,445382,450101,450104,450105,450106,
    450107,450110,450122,450128,450201,450206,450221,450227,450301,450306,
    450311,450312,450321,450333,450401,450402,450403,450406,450421,450424,
    450481,450482,450501,450504,450512,450513,450521,450522,450601,450604,
    450621,450622,450681,450682,450701,450704,450721,450723,450801,450805,
    450821,450822,450881,450882,450901,450903,450921,450925,450981,450982,
    451001,451003,451021,451032,451101,451103,451121,451124,451201,451203,
    451221,451230,451281,451282,451301,451303,451321,451325,451381,451382,
    451401,451403,451421,451426,451481,451482,460101,460102,460105,460109,
    460201,460202,460321,460324,469001,469004,469005,469008,469021,469040,
    500101,500120,500222,500239,500240,500244,500381,500385,510101,510102,
    510104,510109,510112,510116,510121,510123,510124,510125,510129,510130,
    510131,510133,510181,510185,510301,510305,510311,510312,510321,510323,
    510401,510404,510411,510412,510421,510423,510501,510505,510521,510523,
    510524,510526,510601,510602,510603,510604,510623,510624,510626,510627,
    510681,510684,510701,510702,510703,510705,510722,510728,510781,510782,
    510801,510803,510811,510813,510821,510825,510901,510902,510903,510905,
    510921,510924,511001,511003,511011,511012,511024,511026,511028,511029,
    511101,511103,511111,511114,511123,511125,511126,511127,511129,511130,
    511132,511134,511181,511182,511301,511305,511321,511326,511381,511382,
    511401,511403,511421,511426,511501,511504,511521,511530,511601,511603,
    511621,511624,511681,511682,511701,511703,511721,511726,511781,511782,
    511801,511804,511821,511828,511901,511903,511921,511924,512001,512003,
    512021,512023,512081,512082,513221,513234,513321,513339,513401,513402,
    513422,513438,520101,520104,520111,520115,520121,520124,520181,520182,
    520201,520202,520203,520204,520221,520223,520301,520304,520321,520331,
    520381,520383,520401,520403,520421,520426,520501,520503,520521,520528,
    520601,520604,520621,520629,522201,522202,522222,522231,522301,522302,
    522322,522329,522401,522402,522422,522429,522601,522602,522622,522637,
    522701,522703,522722,522724,522725,522733,530101,530104,530111,530115,
    530121,530123,530124,530130,530181,530182,530301,530303,530321,530327,
    530328,530329,530381,530382,530401,530403,530421,530429,530501,530503,
    530521,530525,530601,530603,530621,530631,530701,530703,530721,530725,
    530801,530803,530821,530830,530901,530903,530921,530928,532301,532302,
    532322,532330,532331,532332,532501,532504,532522,532533,532601,532602,
    532621,532629,532801,532802,532822,532824,532901,532902,532922,532933,
    533102,533104,533122,533125,533321,533322,533323,533326,533421,533424,
    540101,540103,540121,540128,542121,542130,542132,542134,542221,542230,
    542231,542234,542301,542302,542322,542339,542421,542431,542521,542528,
    542621,542628,610101,610105,610111,610117,610122,610123,610124,610127,
    610201,610205,610222,610223,610301,610305,610322,610325,610326,610332,
    610401,610405,610422,610432,610481,610482,610501,610503,610521,610529,
    610581,610583,610601,610603,610621,610633,610701,610703,610721,610731,
    610801,610803,610821,610832,610901,610903,610921,610930,611001,611003,
    611021,611027,620101,620106,620111,620112,620121,620124,620201,620202,
    620301,620303,620321,620322,620401,620404,620421,620424,620501,620504,
    620521,620526,620601,620603,620621,620624,620701,620703,620721,620726,
    620801,620803,620821,620827,620901,620903,620921,620925,620981,620983,
    621001,621003,621021,621028,621101,621103,621121,621127,621201,621203,
    621221,621229,622901,622902,622921,622928,623001,623002,623021,623028,
    630101,630106,630121,630124,632121,632124,632126,632129,632221,632225,
    632321,632325,632521,632526,632621,632627,632721,632727,632801,632803,
    632821,632824,640101,640102,640104,640107,640121,640123,640181,640182,
    640201,640203,640205,640206,640221,640222,640301,640304,640323,640325,
    640381,640382,640401,640403,640422,640426,640501,640503,640521,640523,
    650101,650110,650121,650122,650201,650206,652101,652102,652122,652124,
    652201,652202,652222,652224,652301,652304,652323,652326,652327,652329,
    652701,652702,652722,652724,652801,652802,652822,652830,652901,652902,
    652922,652930,653001,653002,653022,653025,653101,653102,653121,653132,
    653201,653202,653221,653228,654002,654004,654021,654029,654201,654203,
    654221,654222,654223,654227,654301,654302,654321,654327,659001,659005};
  for(int i=0,len=regionArray.length/2;i<len;i++){
   for(int j=regionArray[2*i];j<regionArray[2*i+1];j++)//压缩的省市县数据解压
    regions[j]=true;
  }
 }
}

 

 

企业华为TaurusDB数据库国产替代要点全记录 国产化数据库全方位对比、从互联网企业的先进经验来看mysql的用法、及sql优化、sql异构修改、及数据同步方面都做了一些讲解 阅读详情

相关推荐

OK3588-C开发板Forlinx Desktop系统烧录与多媒体功能实战

本文详细介绍了OK3588-C开发板Forlinx Desktop系统的烧录步骤与多媒体功能实战。从硬件准备到软件工具配置,逐步解析RKDevTool烧录技巧,并深入测试摄像头、视频编解码及音频功能,帮助开发者快速掌握RK3588芯片的强大性能与Ubuntu系统的优化应用。

weixin_29190169的博客 417

80秒验证13亿个身份证号码,包含省市县验证

我写了一个验证身份证号码的程序,它是以一定内存空间(大概100M)换取cpu消耗,然后它的运算量就降低了,前十四位的验证就相当于转换类型再查表一样,所以它的验证号码速度比一般的方式快。如果还不明白就说明你写框架写多了,或者你不了解java基础。测试结果只代表算法效率,测一个号码是因为正确号码运算次数基本相同,如果你们用自己的电脑测,13亿次循环应该不到1分钟。这种设计思路,也可以套用其他格式信息验

刘日新的博客 1万+

Endnote 导入参考文献的时候,格式错误太多了。et.al错误,国标GBT7714在endnote中的详细配置教程,适用于本科,硕士论文文献插入的模板

EndNote插入文献常遇到以下错误主要如下: 等、et al不分; 英文作者全名大写; 期刊名字使用了缩写(图片里没有体现;卷号、期号缺失时出现乱码,多了半个括号;页码范围略去了相同部分;没有悬挂缩进,本文全部解决,全网最细

sakura的博客 3万+

大流量下物联网数据校验实践

#### 简介 最近项目中遇到一个问题,服务器使用tcp与电池检测设备相连,电池检测设备挂载了大量的通道,这些通道会产生电池检测数据(平均1秒产生一条数据,一条数据平均130字节,最快100毫秒产生一条数据),一个测试流程可连续运行几天置一年不等,那么服务端如何检验这些设备发送的检测数据是否有漏发丢发或者是重复发送?第一解决方案就是将这些数据存储在数据库中,每次上传数据的时候去数据库中查询这些数据是不是已经发送过,但是一个测试数据可能有百万甚至上千万条,且在上千个通道并发运行的情况下如果将这些数据全部存在

weixin_37548740的博客 330

用于多种无人机协作的群体智能算法:综合综述

随着无人机技术的快速高水平发展,将多架无人机作为自主控制的编队应用于复杂情况是一个新兴领域的代表之一。在实现自主控制的挑战中,碰撞避免、任务分配、路径规划和编队重构是关键功能。本文对各种经典的无人机群智能算法进行了系统的总结和分析。

erjia_的博客 1万+

LVGL开发新选择:深度对比NXP GUI Guider与SquareLine Studio,免费版够用吗?

本文深度对比了LVGL开发中两款主流工具NXP GUI Guider与SquareLine Studio的核心差异,包括功能定位、设计能力、代码生成质量和硬件适配等方面。针对不同项目需求,分析了免费版工具的适用性,帮助开发者根据预算和功能需求做出明智选择。特别关注了GUI设计工具在嵌入式开发中的实际应用效果。

weixin_26976635的博客 425

rpt层建设实战,本地视频+md,review第1遍,220626,

RPT名称:数据报表层(Report),其实就是我们所讲的数据应用层DA、APP。功能:根据报表、专题分析的需求而计算生成的个性化数据。表结构与报表系统保持一致。解释对于其依赖的数据有两种实现方式方式1:使用专业的BI报表软件直接读取数据仓库或数据集市的数据,然后自己根据需要展示的效果进行数据抽取、转换、拼接动作,方式2:大数据开发工程师针对前端Top10展示的需求,提前把数据拼接好,返回前端直接页面渲染展示。使用DataGrip在Hive中创建RPT层知识点03:RPT层搭建--销售主题报表需求一:门店月

m0_48941160的博客 1095

从零到一:ESP32-P4 PPA加速的配置陷阱与避坑指南

本文详细解析ESP32-P4结合LVGL的PPA硬件加速配置中的常见陷阱,包括内存对齐、缓冲区设置和同步机制等关键问题。提供实用的避坑指南和优化方案,帮助开发者高效启用esp32p4的PPA加速功能,显著提升图形渲染性能。

sky77的博客 395

身份证号码前六位查询表

说明 包含了所有的代码地区,包括已经取消或替换的区号,资料齐全。 110000 北京市 110101 北京市东城区 110102 北京市西城区 110103 北京市崇文区 110104 北京市宣武区 110105 北京市朝阳区 110106 北京市丰台区 110107 北京市石景山区 110108 北京市海淀区 110109 北京市门头沟区 110110 北京市燕山区 110111 北京市房山区 110112 北京市通州区 110113 北京市顺义区 110114 北京市昌平区 110115 北京市大兴区

子奕°的博客 8万+

GNSS/INS松组合导航实战:如何用卡尔曼滤波提升定位精度(附MATLAB代码)

本文深入探讨了GNSS/INS松组合导航的工程实践,详细阐述了如何利用卡尔曼滤波算法融合卫星与惯性数据以提升定位精度。内容涵盖从仿真环境搭建、误差状态卡尔曼滤波器(ESKF)设计,到状态与观测方程实现、噪声参数调试及常见问题排查的全过程,并提供了可直接运行的MATLAB代码,为开发高精度、鲁棒的组合导航系统提供实战指南。

weixin_29057163的博客 161

Linux下开机异常(fsck exited with status code 4)

Linux下开机异常事情是这样的,本来我呢跑着程序听着歌,结果忽然就死机了,我只能强制关机,再次打开系统的时候,就提示这样fsck from util-linux 2.26.2 /dev/sda10 contains a file system with errors, check forced. /dev/sda10: Inodes that were part of a corrupted pr

芳草碧连天 2万+

[数据结构]大数据量的情况下如何高效率的验重

大数据量的情况下如何高效率的验重

YiQieFuCong的博客 1082

群辉NAS映射为本地盘符

鼠标右击网络→映射网络驱动器→以上适合通过局域网操作,采用ZeroTier组网后,也可以按照以上步骤实现,这时使用 “虚拟局域网”的IP地址。

dgnankai的专栏 5774

微信小程序:校验真实姓名和身份证号

1.界面 2. 代码 login.wxml <view wx:if="{{role}}"> <view class="box"> <view class="title"> 完善身份信息 </view> <view class="warn">*完善身份...

u012746918的博客 3952

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

邮箱,手机号,身份证 ,中文姓名 验证(PHP)

1邮箱验证 public static function isEmail($str) { if (strpos($str, '@') !== false && strpos($str, '.') !== false) { $pattern = "/^([a-z0-9+_]|\\-|\\.)+@(([a-z0-9_]|\\-)+\\....

观音山彭于晏 1342

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

java数据格式校验,邮箱,手机号,身份证,邮政编码,url

/** * 邮箱验证 */ public static final String REGEX_EMAIL = "^([a-z0-9A-Z]+[-|\\.]?)+[a-z0-9A-Z]@([a-z0-9A-Z]+(-[a-z0-9A-Z]+)?\\.)+[a-zA-Z]{2,}$"; /** * 座机验证 */ public static final String REGEX_TEL = "^\\d{3,4}-?\\d{7,9}$"; .

codeSmart的博客 1112

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

身份证号码合法性校验工具类

【代码】身份证号码合法性校验工具类。

九离的博客 1085

身份证校验

1 namespace CheckIdenoDemo 2 { 3 class Program 4 { 5 static void Main(string[] args) 6 { 7 Console.WriteLine("请输入您的18位身份证号码:"); 8 ...

weixin_30764771的博客 154

正则表达式校验身份证号、邮箱和手机号

1、手机号码: 2、电子邮箱: 3、身份证: 4、港澳身份证: 5、网址URL: 6、帐号是否合法(字母开头,允许5-16字节,允许字母数字下划线): 7、电话号码: 8、邮政编码: 9、腾讯QQ号: 开发实例 开发一个小功能过程中,需要录入邮箱、手机号和身份证号,这是用户输入的,为了限定用户不能随心所欲的输入,避免存入数据库的数据为脏数据,就需要加入验证规则。 功能:弹窗,表单保存身份证号、邮箱、手机号。 我们在data中先定义validator rules是校验规则相关的内容 表示必填, 则为提示信息,

qq_40713201的博客 4067

判断是否是正确的身份证号码

//判断是否是正确的身份证号码 + (BOOL)validateIDCardNumber:(NSString *)value {     value = [value stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];          NSInteger

applexiaozhu的博客 2931

Java判断身份证号码

1、描述 用java语言判断身份证号码是否有效,地区码、出身年月、校验码等验证算法 2、源代码 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22

spt_dream的博客 2081

java常用正则校验工具类

正则常用校验工具类 1 import java.util.regex.Pattern; 2 3 /** 4 * @program: 5 * @description: 校验工具类 6 * @author: xujingyang 7 * @create: 2019-01-05 16:21 8 **/ 9 public cl...

weixin_30437481的博客 126

校验数据有效性

功能 验用户姓名且字符长度为1~50即2~25个汉字 邮箱验证 验手机格式 判输入是否数字 判手机号是否合法 验联系方式 验金额有效性 判是否含中文 判是否纯英文 判是否纯中文 判是否密码类型 判是否警员号 判邮件email格式是否正确 判用户输入字符长度6到20位 判用户输入住址字符长度1到250位 判用户输入描述字符长度1到50位 判用户真名长度 判用户输入字符首字母是否英文 判银行卡位数

snpmyn 2562

Java正则表达式校验邮箱、手机号和身份证等

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35

u014033756的专栏 691

常用的20个正则表达式校验

1 . 校验密码强度 密码的强度必须是包含大小写字母和数字的组合,不能使用特殊字符,长度在8-10之间。   ^(?=.*\\d)(?=.*[a-z])(?=.*[A-Z]).{8,10}$ 2. 校验中文   字符串仅能是中文。   ^[\\u4e00-\\u9fa5]{0,}$ 3. 由数字、26个英文字母或下划线组成的字符串   ^\\w+$ 4. 校验E-Mail

wang_dan_dan1的博客 5404

JSR303 校验扩展(分组、按顺序校验)

1.在spring MVC 项目中使用JSR303 校验数据合法性,一般情况下使用方法为 (1)在接受数据的实体使用注解标添加校验规则 1 package com.hzsj.wechatdto; 2 3 import org.hibernate.validator.constraints.Length; 4 import org.hibernate.validato...

weixin_30802171的博客 427
上一篇: 45个超实用的JavaScript技巧及最佳实践(二)
下一篇: Javascript: unterminated string literal解决方法
youngitman
博客等级 码龄16年 22粉丝 450原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值