爱大客 - 2022年2月
type: channel
link: https://www.idarc.cn/index.php/2022/02/
description: Every piece of all creatures in this freezing world, are racing for freedom.
items: 真是猫主子划拉包装袋
items: Typecho无插件统计文章阅读量/站点访问量(转)
items: 一组人群中出现重复生日的概率是多少?
items: KEIL/LX51: WARNING L48: IGNORED RECURSIVE CALL 解决办法
items: 物联网各种协议
items: doit sdk分析
items: 语言结构分析工具
items: bat入门

真是猫主子划拉包装袋
type: item
date: 2022-02-23T16:30:05+08:00
description: 会开疯(封)了!

Typecho无插件统计文章阅读量/站点访问量(转)
type: item
date: 2022-02-18T15:02:38+08:00
description: 统计文章阅读量 统计全站访问量

一组人群中出现重复生日的概率是多少?
type: item
date: 2022-02-17T10:54:00+08:00
description: 忽然想起这个命题, 在若干年以前, 军训的时候教官说我们班上40多人里必然有两个人同一天过生日, 还说没看过我们的生日, 感觉跟魔术一样. 让大家验证了一下, 居然有两组人的生日都在同一天. 而在之前公司里面20多个人, 也有同一天过生日的. 那么究竟一组人群里重复生日的概率是多少呢? 想验证一下. 用node.js来验证, 验证10万组: const testTimes = 100000 const yearLength = 365 function main(){ var doubledBirthdaysArrayLengths = [] for(let i = 0; i < testTimes; i++){ doubledBirthdaysArrayLengths.push(doubledLength()) } console.log("一组人群中有相同生日的概率是多少?") console.log("有重复生日的人群的人数: ") console.log(doubledBirthdaysArrayLengths) console.log('生日重复的一组中最多人数: ', Math.max(...doubledBirthdaysArrayLengths)) console.log('生日重复的一组中最少人数: ', Math.min(...doubledBirthdaysArrayLengths)) console.log('生日重复的一组中平均人数: ', average(doubledBirthdaysArrayLengths)) distribute(doubledBirthdaysArrayLengths) } function distribute(arr){ let peopleNumsofGroups = [] //一组中的人数为数组下标, 数组值为此组人数出现的次数. for(let i = 0; i < yearLength; i+=1){ peopleNumsofGroups.push(0) } for(let a of arr){ peopleNumsofGroups[a]++ } // console.log('Distribute: ', days) console.log('重复生日人群, 某一人数出现的次数:') printArrayInTable(peopleNumsofGroups, 0) let probes = [], sum = average(peopleNumsofGroups) * peopleNumsofGroups.length for(let i = 0; i < yearLength; i+=1){ if(i == 0){ probes[i] = peopleNumsofGroups[i]/sum * 100 }else{ probes[i] = peopleNumsofGroups[i]/sum * 100 + probes[i - 1] } } console.log('概率:') printArrayInTable(probes, 2) } function printArrayInTable(arr, fixDigits){ console.log('\t[0]\t[1]\t[2]\t[3]\t[4]\t[5]\t[6]\t[7]\t[8]\t[9]') for(let row = 0; row < yearLength / 10 + 1; row+=1){ let out = '[' + row + ']\t' for(let col = 0; col < 10; col+=1){ let index = row*10 + col if(index >= yearLength){ return } out += arr[row*10 + col].toFixed(fixDigits) + '\t' } console.log(out) } } function average(arr){ let sum = 0 for(let a of arr){ sum += a } return sum / arr.length } function doubledLength(){ let birthdays = [] for(let i = 0; i < yearLength + 1; i+=1){ var birthday = parseInt(Math.random()*yearLength) if(findDouble(birthday, birthdays)){ birthdays.push(birthday) // console.log("birthd…

KEIL/LX51: WARNING L48: IGNORED RECURSIVE CALL 解决办法
type: item
date: 2022-02-16T13:17:05+08:00
description: 译文: https://blog.csdn.net/u010160335/article/details/113679731 原文: https://developer.arm.com/documentation/ka002275/latest 总之是LX51.exe的版本问题. 文中说是v.4.66.97.0有此问题, 我在v.4.66.66.0上也有遇到, 在原文链接里面有升级包下载, 覆盖原来的LX51.exe就好了.

物联网各种协议
type: item
date: 2022-02-15T16:07:12+08:00
description: 名称 说明 频段 组网 LoRaWAN 低功耗广域网, 公里级范围内组建的独立网络 470M/868M/913M等 NBIoT 5G标准之一, 附带在运营商基站上实现的低功耗物联网 800M/900M/1800M IEEE 802.15.4 相当于IPV6无线物联网的物理层PHY和数据链路层MAC Zigbee 基于IEEE 802.15.4的低功耗物联协议, 可软件升级至6LoWPAN,似乎会被后者取代 868M/915M/2.4G 星型,mesh 6LoWPAN IPV6标准之一, 基于IEEE 802.15.4, 是IP层和MAC层之间的适配层 868M/915M/2.4G Mesh Thread 基于6LowPAN的互联协议 Mesh 蓝牙 有基础蓝牙和BLE蓝牙两种,距离比较短 2.4G 星型, Mesh NFC 可通过无源的NFC标签提供信息 13.56M 1对1 WIFI 这个我们都熟悉, 用于物联网的一般都是2.4G 2.4G, 5.8G 星型 HomeKit 苹果的物联网接入协议, 将配件接入iOS终端 HarmonyOS Connect 华为的物联网接入协议

doit sdk分析
type: item
date: 2022-02-12T19:32:00+08:00
description: 使用在线思维导图分析. 百度思维导图似乎没有节点数限制. 另外腾讯连连思维导图限制节点数为100, 很容易超出, 暂时不用

语言结构分析工具
type: item
date: 2022-02-12T11:46:59+08:00
description: 据说LLVM可以用来分析结构，这儿有一个例子, 不过这儿还是推荐Sourcetrail。知乎上有一篇介绍. 其他工具还有cdsan

bat入门
type: item
date: 2022-02-08T11:01:23+08:00
description: 之前的文章 windows批处理bat根据查找字符串结果做不同处理 bat设置当前目录为path路径的方式 windows批处理batch调用新进程/窗口,不阻塞当前进程的继续执行 windows batch语法参考资料 简单描述 %1 %2 %3 ...代表.bat的第1/2/3...个输入参数 条件判断括号中的变量是先替换为值再执行的, 如set var1=xxx set var2=ABC if %var1% == xxx ( set var2=DEF echo %var2% ) 将输出ABC而不是DEF