随机数生成算法
🚲 🚗 ✈️ 🚀
🚀 较为真实的随机数获取一个随机数需要满足以下特点:
1、在规定的数值范围内,每个数值出现的概率相同,经过一定次数的生成之后可以覆盖该范围内的所有值。
2、不能通过任何算法推导出下一个数字。
由于上述第二个条件的限制,真正的随机数是不能通过算法生成的。一般可以用硬件信息来获取,例如:
1、定时器的值。
2、获取ADC采样的值。
3、加速度传感器的值。
不过由于这些数值短时间内的变化不是很大,因此不能在短时间内连续获取。
🚀 伪随机数算法一个良好的随机数发生器应当具备以下几个特性:
1、产生的随机数要具有均匀总体随机样本的统计性质,如分布的均匀性,抽样的随机性,数列间的独立性等。2、产生的数列要有足够长的周期,以满足模拟计算的需要。3、产生数列的速度要快,占用计算机的内存少,具有完全可重复性。
✈️ 线性同余法(LCG) 线性同余法是目前应用最广泛的方法之一,很多编程语言的随机数生成 API 也有采用这种方法,它利用数论中的同余运算来产生随机数,所以称为同余发生器,一般递推公式为:
其中 a、c、m 都是常数,$x_n$ ...
vscode插件和主题
🚀 插件✈️ Chinese (Simplified)适用于 VS Code 的中文(简体)语言包。
✈️ C/C++用于编写C程序。
✈️ Icons精美文件图标。
✈️ Rainbow Brackets彩虹括号,这为代码的结构提供了改进的视觉体验。
此功能已经内置在vscode中了,不需要再安装。不过需要在设置中打开,如下图所示。
然后在 setting.json 文件中加入下面配置,可自定义为自己喜欢的颜色。
12345678"workbench.colorCustomizations": { "editorBracketHighlight.foreground1": "#ffd700", "editorBracketHighlight.foreground2": "#da70d6", "editorBracketHighlight.foreground3": "#179fff", "edit ...
DrissionPage库的使用
🚀 DrissionPage库简介
官方介绍:
DrissionPage 是一个基于 python 的网页自动化工具。
它既能控制浏览器,也能收发数据包,还能把两者合而为一。
可兼顾浏览器自动化的便利性和 requests 的高效率。
它功能强大,内置无数人性化设计和便捷功能。
它的语法简洁而优雅,代码量少,对新手友好。
python 版本:3.6 及以上
支持浏览器:Chromium 内核(如 Chrome 和 Edge)
git仓库:https://gitee.com/g1879/DrissionPage
使用说明:https://www.drissionpage.cn/
🚀 环境搭建12345678# pip安装pip install DrissionPage# 如果pip安装速度太慢,就使用清华源来安装,如下pip install DrissionPage -i https://pypi.tuna.tsinghua.edu.cn/simple# 升级pip install DrissionPage --upgrade
新建一个python文件,填写以下代码并 ...
Vscode安装FiraCode字体
以 windows 系统环境为例。
1、安装字体
字体下载地址:https://github.com/tonsky/FiraCode
下载并解压文件夹后可以发现有个 ttf 文件夹。
进入 ttf 文件夹,全选文件,然后右键选择安装。
2、配置VSCode
进入设置页面,依次选择 字体、在 settinfs.json 中编辑 。
将下面两行配置粘贴到该文件并保存即可。
12"editor.fontFamily": "Fira Code","editor.fontLigatures": "'cv01', 'cv02', 'ss05', 'ss03'",
如下图所示:
嵌入式代码高效运行指南
【注】:本文全部内容来源于:嵌入式代码高效运行指南,本人只是文章的搬运工,当然,也进行了一些整理优化。
嵌入式C语言之所以经久不衰,在于它的运行效率很高,想要高效运行代码,除了编译器帮忙优化,关键还要靠自己“优化”代码。
该方案主要是考虑到在嵌入式开发中对程序执行速度的要求特别高,所以该方案主要是为了优化程序的执行速度。
注意:优化是有侧重点的,优化是一门平衡的艺术,它往往要以牺牲程序的可读性或者增加代码长度为代价。
选择合适的算法和数据结构
选择一种合适的数据结构很重要,比如在一堆随机存放的数中使用了大量的插入和删除指令,那使用链表要快得多。
数组与指针语句具有十分密切的关系,一般来说,指针比较灵活简洁,而数组则比较直观,容易理解。对于大部分的编译器,使用指针比使用数组生成的代码更短,执行效率更高。
在许多种情况下,可以用指针运算代替数组索引,这样做常常能产生又快又短的代码。使用多维数组时差异更明显。
下面的代码作用是相同的,但是效率不一样。指针方法的优点是,array的地址每次装入地址p后,在每次循环中只需对p增量操作。而在数组索引方法中,每次循环中都必须根据t值求数组下标的复 ...
hexo博客美化
🚲 🚗 ✈️ 🚀
🚀 添加动漫人物安装 hexo-helper-live2d 插件
1npm install --save hexo-helper-live2d
安装下载动画人物库,例如下面几个
1234567# https://github.com/jianchengwang/live2d_modelsnpm install --save live2d-widget-model-shizuku #课桌女孩npm install --save live2d-widget-model-rem #雷姆npm install --save live2d-widget-model-umaru #小埋npm install --save live2d-widget-model-sagiri #纱雾npm install --save live2d-widget-model-platelet #血小板
博客根目录_config.yml文件配置:
1234567891011121314151617181920212223242526## 添加动画live2d模块 np ...
RaspberryPi-PICO在Linux系统下的C开发环境搭建
🚀 ✈️ 🚗 🚲
本机系统为 Ubuntu 2022.04
12linkk@linkk-Ubuntu22:/$ uname -aLinux linkk-Ubuntu22 5.15.0-52-generic #58-Ubuntu SMP Thu Oct 13 08:03:55 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux
🚀 安装CMake12sudo apt-get install cmakecmake --version # 查看版本
==如果版本低于3.12.0则需要更新cmake(通过cmake源码编译升级)==
🚀 下载代码仓库12345678mkdir -p ~/workspace/raspberry_pi_picocd ~/workspace/raspberry_pi_picogit clone -b master https://github.com/raspberrypi/pico-sdk.gitcd pico-sdk/git submodule update --initcd ..git clone ...
Git学习笔记
🚀 Git 简介 Git 是 Linus Torvalds 为了帮助管理 Linux 内核源码而开发的一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理。 它拥有两套版本库,本地库和远程库,在不进行合并和删除之类的操作时这两套版本库互不影响。也因此其近乎所有的操作都是本地执行,所以在断网的情况下仍然可以提交代码,切换分支。Git 又使用了 SHA-1 哈希算法确保了在文件传输时变得不完整、磁盘损坏导致数据丢失时能立即察觉到。
workspace:工作区
staging area:暂存区/缓存区
blocal repository:本地仓库
remote repository:远程仓库
✈️ Git 的优点1、适合分布式开发,强调个体。
2、公共服务器压力和数据量都不会太大。
3、速度快、灵活。
4、任意两个开发者之间可以很容易的解决冲突。
5、离线工作。
✈️ Git 的缺点1、模式上比 SVN 更加复杂。
2、不符合常规思维。
3、代码保密性差,一旦开发者把整个库克隆下来就可以完全公开所有代码和版本信息。
✈️ 小知识:Gi ...
hexo博客Shoka主题环境搭建
clone主题文件12# cd your-bloggit clone https://github.com/amehime/hexo-theme-shoka.git ./themes/shoka
下载所需的插件123456cnpm uninstall hexo-renderer-marked --save # 卸载掉默认的 hexo-renderer-marked cnpm install hexo-renderer-multi-markdown-it --save # 安装 hexo-renderer-marked cnpm install hexo-autoprefixer --savecnpm install hexo-algoliasearch --savecnpm install hexo-symbols-count-time --savecnpm install hexo-feed --save-dev
Linux安装npm
下载npm12345cd ~wget https://registry.npmmirror.com/-/binary/node/v19.0.0/node-v19.0.0-linux-x64.tar.xztar -vxf node-v19.0.0-linux-x64.tar.xzrm node-v19.0.0-linux-x64.tar.xzsudo mv node-v19.0.0-linux-x64 /usr/local/node
建立软连接12sudo ln -s /usr/local/node/bin/npm /usr/bin/npmsudo ln -s /usr/local/node/bin/node /usr/bin/node
安装cnpm12npm install -g cnpm --registry=https://registry.npm.taobao.orgsudo ln -s /usr/local/node/bin/cnpm /usr/bin/cnpm