
fun
文章平均质量分 85
五道口纳什
wx公众号/B站:五道口纳什
展开
-
概率、随机数、随机数生成函数(面试题)
相关的面试中涉及的随机数生成、以及概率的有关问题的讨论,请参阅 如何通过投掷一枚硬币产生各种概率。解决这类题有两大窍门:0-1区间上的均匀分布,和 if 相结合实现对某一概率的要求;多次采样,并不限制为1次;适当地取舍;首先来看一道笔试题: 实现某一随机数生成函数 f()f(),返回0的概率是60%,返回1的概率是40%(有偏置型硬币)。import random def bias_原创 2016-01-09 21:08:50 · 5717 阅读 · 3 评论 -
黄金分割比的重新理解
几何的角度 所谓黄金分割的比例,即一个矩形减去一个正方形后,仍维持其形状不变(款比高)。原创 2016-02-02 10:23:25 · 2077 阅读 · 0 评论 -
Trick(一)——判断一个数的位数
传统的做法是,不断地除以10,def digits(n): cnt = 0 while n: cnt += 1 n //= 10 return cnt在微博上看到一种较为数学(也较为tricky)的方法,使用 log10\log_{10}(以10为底,而) 映射的结果即为该数的位数,x=1∼9x=1\sim9:0<log10x<10<\log原创 2016-03-16 15:08:52 · 2266 阅读 · 0 评论 -
列表解析(list comprehension) 与三目运算符
考虑时间换算,将时间由 24 小时制转换到 12 小时制,0-12 点原样输出,13-23 点对 12取模:>> [i % 12 if i > 12 else i for i in range(24)][0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]原创 2016-04-27 15:45:25 · 1549 阅读 · 0 评论 -
如何通过投掷一枚硬币产生各种概率
一枚均值硬币(fair coin)产生0.25, 0.75的概率分布投掷(toss)一枚硬币,正面向上为1,反面向上为0。连续投掷两次,11为1:对应概率为0.25,{10, 01, 00}为0:对应概率为0.75。也即此时的随机变量(rv,random variable)XX 为投掷两次的与(and)值。应用:A, B, C, D的四个选项,用一枚硬币产生每个选项相等的概率,也即各位0.25.A原创 2016-01-07 08:21:41 · 8253 阅读 · 2 评论 -
生活中的数学(为生活建模)
分布,各种分布0-1均匀分布0-1伯努利实验,还记得吧,简单吧,比如投一枚硬币,正面向上记为0,反面向上记为1,fifty—fifty,这是一种特例啦。考虑掷骰子,点数为2的概率,也是伯努利实验,2与非2,对吗。所以,所以什么?伯努利实验不仅能够仿真简单的只有2种结果的硬币,也能仿真具有6个结果的骰子,归根结底它仿真的是非此即彼这一现象,还记得对立事件(本事件的概率不好求,而其对立事件的概率好求时,原创 2016-01-21 15:39:24 · 4026 阅读 · 0 评论 -
生活中的数学(为生活建模)(二)
0/1背包问题样本空间大小的计算黄金分割比是谁比谁?鸡兔同笼问题的民间解释和数学解释。原创 2016-01-23 15:41:22 · 2936 阅读 · 0 评论 -
比大小 log_2^3 与 log_3^5
log23\log_23 和 log35\log_35 哪个大两数同号时,比大小要么相减,要么相除,看哪个更方便了。原创 2016-02-02 09:39:51 · 2617 阅读 · 0 评论 -
数学骗术
A:-20+30 = +10B:-20-30+40 = -10原创 2016-09-15 20:31:12 · 1381 阅读 · 0 评论 -
排列组合的计算
握手问题尽然提出为一个数学问题,就不单单是一个具体问题,可以推广为多处,形式可能不一,但数学含义相同。nn 个人相互握手,需要几次握手: (n2)=n(n−1)2\binom {n}2=\frac{n(n-1)}2一种直观的解释:1个人需要后边的人握 n−1n-1 次,第二个人继续和后边的人握 n−2n-2 次,直到第 n−1n-1 个人只需跟第 nn 个人握手一次(而第 nn 个人无需主动和原创 2016-03-16 23:01:38 · 2411 阅读 · 0 评论 -
暴露年龄
本命年生日,12 的倍数;对诺基亚手机很熟悉,大概就是那些 80、90 后了吧,如果有人拿一个诺基亚手机(非大屏)给一个 00 后,他也许不会把它当做手机;原创 2016-09-26 21:07:14 · 1065 阅读 · 0 评论 -
The Python Challenge 题解
仔细阅读,图画下面的提示(网页的 title 也是重要的提示信息,至少告诉你考察的对象是什么)1. 2382^{38}>> 2**38274877906944L根据提示,在 URL 地址处,0.html ⇒ 274877906944.html,来到第二题;2.原创 2016-10-27 22:51:15 · 1007 阅读 · 0 评论 -
有趣的研究和发现
1. 投掷硬币正反面的概率DYNAMICAL BIAS IN THE COIN TOSS原创 2016-12-11 19:29:02 · 1011 阅读 · 1 评论 -
方言 —— 各地方言
1. 安徽鸡:zi,洗:si;2. 湖南湖南:funan,原创 2017-07-09 12:56:57 · 980 阅读 · 0 评论 -
抢红包背后的统计学
先说结论: 当红包共有 nn 个的时候,拿到第 kk 多的人的钱的数学期望为:原创 2016-02-14 09:56:12 · 2052 阅读 · 0 评论 -
身份证号第18位的计算
身份证号每一位号码的意义 首选需要声明两点,第18位为x:其实对应与编码系统中的10(十),因为进制的关系了;第18位的取值是前面17位通过一定的编码规则(ISO 7064:1983.MOD 11-2)生成出来的,而非随机。你说不随机就不随机了?下面我们通过Python,实现对第18位数字的生成(根据前面17位)。首先来看ISO 7064:1983.MOD 11-2 的计算方法(见中华人民共原创 2016-01-31 10:20:48 · 6991 阅读 · 0 评论 -
3.5!——阶乘的插值(python)
本文的全部理论基础见于 神奇的Gamma函数(scipy)。k!⇒x!,x≥0k!\Rightarrow x!,\quad x \geq 0 阶乘插值,在更大的范围里说这其实是一个数列插值的问题,通俗地说,就是把数列的通项公式定义从整数集合延拓到实数集合。 n⇒Rn\Rightarrow \mathbb{R} 例如数列 1,4,9,16,…1, 4, 9, 16, \ldots 可用通原创 2016-01-19 08:56:35 · 2300 阅读 · 0 评论 -
happy 2016, happy 11111100000
我们首先来看微博上流传甚广的一幅图片: 自然我们可以预定: 210+29+28+27+26+25+24==2016+242032\begin{split}2^{10}+2^9+2^8+2^7+2^6+2^5+2^4=&2016+2^4\\=&2032\end{split} 210+29+28+27+26+25+242^{10}+2^9+2^8+2^7+2^6+2^5+2^4用原创 2016-01-02 10:21:16 · 1139 阅读 · 0 评论 -
点与圆相交的判断
点与圆相交的判断,本质在求解联立方程。我们以平面上(二维)的直线和圆为例,其方程分别为: (x−a)2+(y−b)2=r2y=kx+c⇓(x−a)2+(kx+c−b)2=r2⇓(1+k2)x2+2(kc−kb−a)x+a2+(c−b)2−r2=0Δ=4(kc−kb−a)2−4(1+k2)(a2+(c−b)2−r2)(x-a)^2+(y-b)^2=r^2\\y=kx+c\\\Downarrow原创 2016-01-20 11:51:40 · 1390 阅读 · 0 评论 -
如何判断两个矩形相交
如何判断两个矩形相交假定矩形是用一对点表达的(minx, miny) (maxx, maxy),那么两个矩形 rect1{(minx1, miny1)(maxx1, maxy1)} rect2{(minx2, miny2)(maxx2, maxy2)} 相交的结果一定是个矩形,构成这个相交矩形 rect{(minx, miny) (maxx, maxy)}的点对坐标是: minx =原创 2016-01-20 12:06:50 · 2168 阅读 · 0 评论 -
[面试]——用一行代码判断两矩形是否相交
typedef struct{ int left; // leftmost: 最左 int top; // topmost: 最上 int right; // rightmost: 最右 int bottom; // bottommost:原创 2016-01-20 13:05:35 · 15690 阅读 · 2 评论 -
计算几何常用算法及numpy仿真
在很久之前的一篇的文章点乘和叉乘及其物理意义(C++STL实现),我们用C++(STL)实现了对向量内积和叉积的定义与简单计算,最后演示了如何用几何的方法计算点到直线的距离,计算任意三角形的面积等问题。把这些放在更大的范围内,其实就是今天的主角,计算几何原创 2016-01-20 08:59:21 · 5716 阅读 · 0 评论 -
硬币等于骰子(在统计学意义上)
硬币和骰子是统计学家们的心头好。没有硬币,统计学家根据骰子也能创造出来一枚硬币,没有骰子,统计学家们也能根据硬币创造出来一个骰子。如何通过投掷一枚硬币产生各种概率概率、随机数、随机数生成函数(面试题) 硬币等于骰子,are you kidding me?我读书少,你不要骗我。 是在统计学上了,物理上显然是不同的。 此话怎讲?统计学意义上的硬币,其实是产生 {12 ,12 } \{\fra原创 2016-01-21 19:27:37 · 2665 阅读 · 0 评论 -
斐波那契数列与黄金分割比以及矩阵形式推导
数学上,斐波那契数列以递归的形式进行定义: F 0 =0F 1 =1F n =F n−1 +F n−2 \begin{split}&F_0=0\\&F_1=1\\&F_n=F_{n-1}+F_{n-2}\end{split}注意,递归的形式实现较为简单明了,当然在编程实践时,并不推荐递归的实现方式,因为存在大量的重复计算,斐波那契的优化实现不是本文的重点,如有兴趣,请参阅 每周一原创 2016-01-23 12:35:40 · 6537 阅读 · 0 评论 -
割补法求阴影部分的面积
其实这是一节小学数学课。割补法:拆东墙(割),补西墙(补),也即割补法需要两个动作,分别是割与补。我们首先来看一个直观的应用割补法的例子: 右侧的四分之一圆挪到左侧,补上空白部分,这里的挪和补即暗含割补法的思想。通过割补或者叫分裂合并,实现对不好计算的面积转换为容易计算的面积,比如讲曲线围绕出来的面积(当然可用微积分的方法加以计算,不在本文的考虑范围之内),转换位三角形或者梯形等常规图形。割补原创 2015-12-24 00:03:17 · 6656 阅读 · 0 评论 -
逻辑思维与C/C++解题
谁在说谎考虑这样一些陈述:西电有四位同学中的一位做了好事,分别询问,他们的回答分别是: - A说:不是我 - B说:是C - C说:是D - D说:C胡说已知四人中三人说了真话,一人说的是假话,请问谁说了谎话,谁做的好事。通过简单的规约我们即可获得答案,B和C有一人说谎,A和D自然说的都是实话,D说:C胡说,则C说慌,C是做好事的人。我们如何交由计算机实现呢?枚举法。原创 2015-12-26 15:09:57 · 3450 阅读 · 0 评论 -
看电影学英语
神探夏洛克 原 译 补充 Fire door 防火门 Fire doorkeep shut vein 血管 可数 rake 耙子 you’re as thin as a rake! at an affordable price somewhere decent at an affordable price disposition原创 2016-01-02 11:41:24 · 1430 阅读 · 0 评论 -
数学小魔术——神奇的二进制
小魔术——猜数游戏心中默想一个小于50的两位数接着,我问你在以下的6张卡片中,哪几张卡片中有你想的那个数?(为什么是6张卡片,和50有什么关系)最后,我不费吹灰之力就能猜出这个数。原创 2016-01-19 15:02:00 · 25529 阅读 · 5 评论 -
数学小魔术——猜数字
数学小魔术——神奇的二进制 请你任意猜想一个三位数,把这个三位数乘以 91 的乘积的最后三位告诉我,我们很快猜出你心中所想的那个三位数是多少?我们以对方心中所想的 789 为例,则对方计算出 789×91=71799789\times 91=71799,并把结果的三位,也即 799 告诉我。看起来,这么做似乎损失了不少信息,让我没法反推出原来的数。不过,我仍然有办法:只需要把对方告诉我的结果原创 2016-01-29 17:56:40 · 12998 阅读 · 0 评论 -
Elo rating system(Elo 打分体系)
A、B 两个待比较、评价的对象,分别打分为 RA,RBR_A,R_B,则各自获胜的期望值为:⎧⎩⎨⎪⎪⎪⎪⎪⎪EA=11+10(RB−RA)/400.EB=11+10(RA−RB)/400.\left\{\begin{split}E_A=\frac1{1+10^{(R_B-R_A)/400}}.\\E_B=\frac1{1+10^{(R_A-R_B)/400}}.\\\end{split}原创 2017-07-22 18:53:37 · 5091 阅读 · 3 评论