Rand7实现Rand10
470 用 Rand7() 实现 Rand10()
1. 拒绝采样
在解LC-470前先介绍一道拒绝采样的经典问题:利用频率近似概率的方式求出 的值。在 的方块内随机坐标采样,记录落入以原点为圆心,半径为1的 圆内的次数。
由 可得 ,由于 ,所以
1 | int main() { |
在解LC-470前先介绍一道拒绝采样的经典问题:利用频率近似概率的方式求出 π 的值。在 1×1 的方块内随机坐标采样,记录落入以原点为圆心,半径为1的 41 圆内的次数。
由 41πr2=Ncnt 可得 π=N×r24×cnt ,由于 r=1 ,所以 π=N4×cnt
1 | int main() { |
无法解决诸如(())的问题。 要考虑到当前碰到右括号后,前面的是左括号还是右括号,然后分别进行处理
1 | class Solution { |
目标检测SSD
s指的是长宽的缩放比例而非面积的缩放比例,比如s=0.5,则面积就是原图像的0.5^2=0.25倍。r是宽高比,指的是将原图像归一化为正方形后截取的锚框的宽高比;或者说是在原图像的宽高比基础上乘以r,才是锚框的宽高比。锚框的实际宽高比即hw∗r。之所以r=1时你看到的是方形,之后会解释。
由此,可得以下方程组
{w0∗h0=s2∗w∗hh0w0=hw∗r
C++ priority_queue自定义排序总结
以下几种都可以,具体可参考《C++ Primer》
1 | typedef int elem; |
对于cmp和&cmp你应该这样理解,cmp是函数的首地址,它的类型是bool(elem, elem),&cmp表示一个指向函数cmp这个对象的地址,它的类型是bool(*)(elem, elem),因此test和&test所代表的地址的值是一样的,但类型不一样!
s的类型是二维数组,但是其本身也是一个一维指针(数组指针),其静态类型是char(*)[10],每次移动是10个char长度也就是10字节。其解引用后静态类型是char*,每次移动是1个char长度也就是1字节。
值得注意的是,类似函数指针,s、*s、&s其值都是一样的,都是该二维数组首个元素的地址,因此不能将数组名当成是一个值为元素首地址的常规变量!因为永远无法取得其地址。
因此,下面代码中将s赋值给双重指针ps是完全错误的;双重指针要经过两次间接跳转访问元素:比如ps的值为0x0000ff33,*ps首先跳转到该位置后取其值,比如说那个地址的值为0x0000eedd,将*ps当成字符串输出时,会再次跳转到地址为0x0000eedd的位置取出char,完全乱了。
而作为对比,数组指针解引用不会跳转,只会修改其步幅跨度
经典读者写者问题
1 | int readcount=0; |
记录本书(对我来说)的一些重点内容
1 | int var(66); |
两种bitcpy的实现方式
1 | #define HALF_WORD uint16_t |
拷贝方式是从单个字节的低位开始拷贝,进位式拷贝。