数模竞赛-线性规划模型
数模竞赛-线性规划模型线性规划例题1:求解:
$$\displaylines{ \max z=70x_1+50x_2+60x_3,\\ \mathrm{s.t.}\begin{cases} 2x_1+4x_2+3x_3\leqslant150,\\ 3x_1+x_2+5x_3\leqslant160,\\ 7x_1+3x_2+5x_3\leqslant200,\\ x_i\geqslant0,i=1,2,3. \end{cases}}$$
代码:
1234567891011#pip install cvxpy cvxpy[GLPK_MI] cvxoptimport cvxpy,numpyc=numpy.array([70,50,60])a=numpy.array([[2,4,3],[3,1,5],[7,3,5]])b=numpy.array([150,160,200])x=cvxpy.Variable(3,pos=True) #决策变量 列向量obj=cvxpy.Maximize(c@x)co ...
数模竞赛-线性代数模型
数模竞赛-线性代数模型特征值&特征向量差分方程-Fibonacci数列化为一阶差分方程组:
$$\begin{cases} \displaylines{ F_{k+1}=F_{k+1},\\ F_{k+2}=F_{k+1}+F_k, }\end{cases}k=0,1,2,\cdots$$
写成矩阵形式:
$$\alpha_{k+1}=A\alpha_{k}$$
其中:
$$A=\left[ \begin{matrix} \displaylines{ 0&1\\ 1&1 } \end{matrix}\right],\alpha_k=\left[ \begin{matrix} \displaylines{ F_k\\ F_{k+1} } \end{matrix}\right],\alpha_0 ...
数模竞赛-Python基础
数模竞赛-Python基础Python入门123456789101112131415161718192021from numpy.random import randintimport numpya=randint(10,20,16)ma=max(a)ind2=numpy.where(a==ma)print(ind2[0])import string,random,collectionsx=string.ascii_letters+string.digitsy=''.join([random.choice(x)for i in range(1000)])count=collections.Counter(y)for k,v in sorted(count.items()): print(k,':',v)import randomx=random.randint(1e5,1e8)y=list(map(int,str(x)))z=list(map(lambda x,y:x%2==1 and y%2==0,[1,3,2,4,1],[3,2,1,2 ...
BlockChain入门-入门题目泛做
BlockChain入门-入门题目泛做
BlockChain入门-Solidity基础语法
BlockChain入门-Solidity基础语法01-入门1234pragma solidity ^0.8.21contract HelloWeb3{ string public _string="Hello Web3!";}
第一行注释不写会出现警告。
第二行指编译器版本不允许小于0.8.21,“^”表示不允许编译器版本大于等于0.9.0。
第三行创建string型变量_string。
02-变量类型1234567int uint uint256string booladdress //20字节address payablebyte32 byte8 byte1! && || == !=//&&运算符短路
03-函数关键字pure标记的函数不能读写链上状态,不消耗gas fee。
123function addPure(uint256 _number)external pure returns(uint256 new_number){ new_number=_number+1;} ...
Crypto入门-密码学杂谈
Crypto入门-密码学杂谈Diffie-Hellman密钥交换在双方先前没有任何共同知识的情况下通过不安全信道协商出一个对称密钥。
DH密钥交换算法:双方选择一个$p\in\mathbb P$和$\mathbb Zp*$的一个生成元$g$,在不安全的信道上发送。A选择一个秘密$a\in\mathbb Z$,计算$A=g^a\bmod p$并发送给B。B选择一个秘密$b\in\mathbb Z$,计算$B=g^b\bmod p$并发送给A。A与B可共同得出密钥$k=A^b\bmod p=B^a\bmod p=g^{ab}\bmod p$。
当中间人截获信息但不能修改时,知道$A,B,g,p$而不知道$a,b$,计算$\log_aA,\log_bB$很困难。
DH中间人攻击当中间人可以截获并修改信息时。
中间人获取到$p$和$g$。现在A正要把$A$发给B,此时中间人截获$A$,自己选定一个随机数$e_1$,将$A$换成$E_1=g^{e_1}\bmod p$发给B。B把$B$发给A时同理,选定随机数$e_2$,将$B$换成$E ...
Crypto入门-流密码初探
Crypto入门-流密码初探基础知识LCG线性同余生成器,由线性函数生成随机数序列。标准的LCG的生成序列满足下列递推式:
$$x_{n+1}=(Ax_n+B)\pmod M$$
其中$A$、$B$、$M$为设定的常数,初始值$x_0$为种子。
攻破Linux Glibc的rand()函数(TYPE_0)当使用TYPE_0时,采用的是标准LCG,生成公式为:
$$s_i=(1103515245s_{i-1}+12345)\pmod{2147483648}$$
直接求逆元得:
$$s_{i-1}=1857678181(s_i-12345)\pmod{2147483648}$$
LFSR线性反馈移位寄存器,由一个移位寄存器和一个反馈函数组成,反馈函数为一个线性函数。进行密钥流生成时,每次从移位寄存器中移出一位作为当前的结果,而移入的位由反馈函数对寄存器中的某些位进行计算来确定。
为使LFSR获得最大周期,即$n$位LFSR获得$2^n-1$的周期,那么选取反馈函数$F$方法:选取$\operatorname{GF}(2)$上的一个$n$次的本原多项时,如当$n ...
Crypto入门-离散对数相关入门
Crypto入门-离散对数相关入门基础知识ElGamal密钥生成方法:选择一个$p\in\mathbb P$和$\mathbb Zp^*$,且$p-1$有很大的素因子,选取$\mathbb Zp^*$的生成元$g$,选择随机的$k$,其中$0<k<p-1,k\in\mathbb Z$,计算$y=g^k \bmod p$,即得到公钥为$(p,g,y)$,私钥为$k$。
加密:选择随机的$r$,其中$0<r<p-1,r\in\mathbb Z$,得到密文$(y_1,y_2)$为$(g^r\bmod p,my^r\bmod p)$,其中$m$为明文。
解密:通过私钥$k$计算:
$$\begin{align*} \displaylines{ &\left(y_1^k\right)^{-1}y_2\bmod p\\ =&(g^{rk})^{-1}my^r\bmod p\\ =&m }\end{align*}$$
ECC圆锥曲线公钥密码使用形如$y^2=x ...
Crypto入门-分组密码初探
Crypto入门-分组密码初探基础知识工作模式设明文为$P$,密文为$C$,加密算法为$F$,解密算法为$D$。
ECB电子密码本。
$$\displaylines{ C_i=E(P_i)\\ P_i=D(C_i)}$$
CBC密码分组链接。
$$\displaylines{ C_0=IV\cdots C_i=E(P_i\oplus C_{i-1})\\ C_0=IV\cdots P_i=D(C_i)\oplus C_{i-1}}$$
OFB输出反馈模式。
$$\displaylines{ O_0=IV\\ O_i=E(O_{i-1})\\ C_i=P_i\oplus O_i\\ P_i=C_i\oplus O_i}$$
CFB密文反馈。
$$\displaylines{ C_0=IV\\ C_i=P_i\oplus E(C_{i-1})\\ P_i=C_i\oplus E(C_{i-1})} ...
Bootstrap5基础应用
Bootstrap5基础应用图标https://feathericons.com/
https://github.com/danklammer/bytesize-icons
https://coreui.io/icons/
https://ionic.io/ionicons
http://demo.amitjakhu.com/dripicons/
https://ikons.piotrkwiatkowski.co.uk/
https://icofont.com/
https://tabler.io/icons
https://primer.style/foundations/icons
布局