由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
DataSciences版 - 请教一道概率题
相关主题
Science上新clustering算法的分析测试请教Data incubator的challenge
R 问题请教Data Incubator 有人了解这个bootcamp吗?
关于 data incubator'Scholars Program银行的所谓 data scientist 真他妈水 (转载)
Data science Online program问问培训班data incubator的事情
data analyst/scientistreverse链表
请问版上有人上过data incubator吗请教前辈们小孩的car seat怎么寄回国内方便啊?
求助 数据科学 培训班long and CLOB.. any differences?
这里有人拿到过data incubator fellowship的人吗?VWR 的CO2 incubator好用吗? (转载)
相关话题的讨论汇总
话题: mean话题: sum话题: prev话题: seats话题: sm
进入DataSciences版参与讨论
1 (共1页)
b******6
发帖数: 38
1
一个快餐店内一排N个座位,顾客进来后随机选位置,唯一的限制条件是不远已经有人
坐下的相邻位置。这样只到所有可选位置都被占。问题是最终被顾客坐下的位置的百分
比的mean, std.只要求给出N=25和50000时的数值解。
s****h
发帖数: 3979
2
题目看不懂
第一句很有趣,可是不知道问的是啥?
看懂的解释一下?
25个顾客一起进的话,最多只有13个坐下,剩下12个离开?
1M个顾客的流水席,同时在座位上的人在1-13之间,25个座位都会被坐到吧。
b******6
发帖数: 38
3
sorry, 这里有错别字“唯一的限制条件是不选已经有人坐下的相邻位置。”就是新来
的顾客选座位会和已经有人的地方相隔至少一个位置。等所有这样的位置没有了
,给出百分比的答案。比如25个座位,最多只可能坐13个人,也可能少于13, 但是不会
是只有一个, 最终两个顾客间最多可以相隔两个空座 相隔三个的话就能多坐一个人了
,求平均值
和平均方差? 一个更简单的例子,N=3,最终的情况可能是*-*, -*-, *-*(*表示有人
, -表示没人),这样平均值是1/3×(2/3+1/3+2/3)=5/9。
s****h
发帖数: 3979
4
貌似比较难啊
F(N) 是N个座位时顾客数的mean,
F(neg) = F(0) = 0
F(1) = F(2) = 1
F(3) = 5/3
有递推公式:F(N) = 1 + 1/N * sum(i from -1 to N-2) ( F(i) + F(N-3-i)
写个程序可以算出来。
用笔算就不会了。
b******6
发帖数: 38
5
嗯,这个和我想得差不多,那std呢,可以递推吗?

【在 s****h 的大作中提到】
: 貌似比较难啊
: F(N) 是N个座位时顾客数的mean,
: F(neg) = F(0) = 0
: F(1) = F(2) = 1
: F(3) = 5/3
: 有递推公式:F(N) = 1 + 1/N * sum(i from -1 to N-2) ( F(i) + F(N-3-i)
: 写个程序可以算出来。
: 用笔算就不会了。

s****h
发帖数: 3979
6
std的公式就复杂了。
需要sum(i from -1 to N-2, j from -1 to N-2) F(i) * F(j) 之类的
l****s
发帖数: 6
7
你这题不需要时间概念吗?

【在 b******6 的大作中提到】
: sorry, 这里有错别字“唯一的限制条件是不选已经有人坐下的相邻位置。”就是新来
: 的顾客选座位会和已经有人的地方相隔至少一个位置。等所有这样的位置没有了
: ,给出百分比的答案。比如25个座位,最多只可能坐13个人,也可能少于13, 但是不会
: 是只有一个, 最终两个顾客间最多可以相隔两个空座 相隔三个的话就能多坐一个人了
: ,求平均值
: 和平均方差? 一个更简单的例子,N=3,最终的情况可能是*-*, -*-, *-*(*表示有人
: , -表示没人),这样平均值是1/3×(2/3+1/3+2/3)=5/9。

c***3
发帖数: 27
8
什么时间概念?

【在 l****s 的大作中提到】
: 你这题不需要时间概念吗?
n*******y
发帖数: 437
9
跟我前两天做的笔试题好像,
我用模拟做了,但是运行速度好慢,
而且我为了加快速度已经做了一些优化:
1) size大的variable用节省存储空间的data type,比如本来用0,1表示座位是不是
available,但是matlab默认0,1是double精度,我现在规定是binary datatype: True/
False
2) 本来是每轮在available的座位中随机产生的下一个要坐的座位,现在改为在一开始
产生全部的随机数(1-N的permutation)
code在这里(Matlab),大家能不能帮我看看怎样提高速度,谢谢~
clear;
N = 25; %N = 50000; % how many seats in total
repeat = 1e6;
% count how many seats are taken
count = zeros(repeat, 1, 'uint16'); % uint16: 0-65535
for i = 1:repeat % repeat simulations

disp(i);

seq = uint16( randperm(N) );
seats = true(1,N); % seat(i)==true ~ available, ==false ~ unavailable

jj = 0;

while ( any(seats) ) % while any seat available

jj = jj + 1;

if seats( seq(jj) ) == false % if that seat unavailable, skip to
next loop
%disp('skip');
else % if that seat is available:
% sit, making that seat unavailable
seats( seq(jj) ) = false;
count(i) = count(i) + 1; % count how many seats are sit on
% neighboring seat(s) unavailable
if seq(jj) == 1
seats(2) = false;
elseif seq(jj) == N
seats(N-1) = false;
else
seats( seq(jj)+1 ) = false;
seats( seq(jj)-1 ) = false;
end
%disp(seats)
end

end

end
fraction_mean = mean(count1)/N;
fraction_std = std(double(count1))/N;
n*******y
发帖数: 437
10
谢谢分享! 能不能解释一下这个递推公式怎么推导的?谢谢!

【在 s****h 的大作中提到】
: 貌似比较难啊
: F(N) 是N个座位时顾客数的mean,
: F(neg) = F(0) = 0
: F(1) = F(2) = 1
: F(3) = 5/3
: 有递推公式:F(N) = 1 + 1/N * sum(i from -1 to N-2) ( F(i) + F(N-3-i)
: 写个程序可以算出来。
: 用笔算就不会了。

相关主题
请问版上有人上过data incubator吗请教Data incubator的challenge
求助 数据科学 培训班Data Incubator 有人了解这个bootcamp吗?
这里有人拿到过data incubator fellowship的人吗?银行的所谓 data scientist 真他妈水 (转载)
进入DataSciences版参与讨论
s****h
发帖数: 3979
11
这个很直观啊。
N个座位,1到N,1号被坐,剩下的和N-2个座位一样。
i号被坐,i+1, i-1就不能坐了。
1 ~ i-2 不就是F(i-2),
i+2~N不就是F(N-i-2+1)

【在 n*******y 的大作中提到】
: 谢谢分享! 能不能解释一下这个递推公式怎么推导的?谢谢!
T*****u
发帖数: 7103
12
直觉上d&q
b******6
发帖数: 38
13
递推的python code
import numpy as np
def deduction(N):
"""
For number of seats taken, deduction:
mean(s(0)) = 0;
mean(s(1)) = 1;
mean(s(N)) = sum{1/N*[mean(s(k-2))+mean(s(N-k-1))+1]} sum for k =
1, 2, ..., N;
mean(s(N)) = 1 + 2/N*[mean(s(-1)) + mean(s(0)) + ... + mean(s(N-2
))] for N > 1.
here s(-1) is added for convenience and s(-1)=0.
For variance:
var(s(0)) = 0;
var(s(1)) = 0;
var = mean(s(N)^2) - (mean(s(N)))^2 for N > 1;
(mean(s(N)))^2 is known;
let p(s(k)) be the corresponding probability
mean(s(N)^2) = 1/N*sum{[s(k-2)+s(n-k-1)+1]^2*p(s(k-2))*p(s(n-k-1)
)}
sum for all k and all possible values of s(k-2) and s(n-k-1).
Expand all the terms:
==> mean(s(N)^2) = 1/N*sum{mean(s(k-2)^2)+mean(s(n-k-1)^2)+2*mean(s(k
-2))+\
2*mean(s(n-k-1))+2*mean(s(k-2))*mean(s(n-k-1
))+1} ===>
==> mean(s(N)^2) = 1 + 2/N*{mean(s(-1)^2)+mean(s(0)^2)+...+mean(s(N-2
)^2)}+\
4/N*{mean(s(-1))+mean(s(0))+...+mean(s(N-2))}+\
2/N*{mean(s(-1)*mean(s(N-2))+mean(s(0))*mean(s
(N-3))+...+\
mean(s(k-2))*mean(s(N-k-1))+...+mean(s(N-
k-1))*mean(s(k-2))+\
mean(s(N-3))*mean(s(0))+mean(s(N-2))*mean
(s(-1))}
where k = 1, 2, ..., N
Return (fraction_mean, fraction_std) = (mean(s(N))/N, sqrt(var(s(N))/
N)
"""
if N == 0: return (0.0, 0.0)
if N == 1: return (1.0, 0.0)
# _sum = mean(s(-1)) + mean(s(0)) + mean(s(1)) + ... + mean(s(N-2))
# _prev = [mean(s(-1)), mean(s(0)), mean(s(1)), ..., mean(s(N-1))]
# _prev_sm = mean(s(N-1)^2)
# _sum_sm = mean(s(-1)^2) + mean(s(0)^2) + ... + mean(s(N-2)^2) #sum of
square mean
# using decimal type to avoid float point rounding error
_prev_m = [0.0, 0.0, 1.0]
_prev_sm = 1.0
_sum = 0.0
_sum_sm = 0.0
for i in xrange(2, N+1):
mean = 1.0 + 2.0 / i * _sum
prev = np.array(_prev_m[:-1])
square_mean = (1.0 +
2.0 / i * _sum_sm +
4.0 / i * _sum +
2.0 / i * np.dot(prev, prev[::-1]))
_sum += _prev_m[-1]
_sum_sm += _prev_sm
_prev_m.append(mean)
_prev_sm = square_mean
mean_square = mean*mean
var = square_mean - mean_square
return (float(mean/N), float(np.sqrt(var))/N)
N = 25: mean = 4.442122414e-01, std = 2.864508024e-02
N = 50000: mean = 4.323382983e-01, std = 6.052559416e-04
l********m
发帖数: 284
14
难道是data incubator?这个simulation呀,很简单呀。递推mean意义就变了吧?
l********m
发帖数: 284
15
楼上递推mean和variance的没上过统计课吧?
T*****u
发帖数: 7103
16
我开始也是这么想。不过现在出题的精了流行往多层次嘛。25个好模拟,给个
100000000出来就算死了,所以怎么模拟也东东脑筋。

【在 l********m 的大作中提到】
: 难道是data incubator?这个simulation呀,很简单呀。递推mean意义就变了吧?
l********m
发帖数: 284
17
50000 simulation确实要时间多些。楼主这是什么面试题呀?我做了一道一样的是data
incubator。
b******6
发帖数: 38
18
是data incubator的。确实没上过统计, 见笑了。可以解释下为什不不能推导吗? 那
比如说最简单的coin toss也要模拟?
l********m
发帖数: 284
19
Simulation 的意义在于通过对实际情况的大尺度模拟(或者说Sampling)来估算true
mean. 我们不知道true mean。所以true mean. 简单的说不能推他的patern. 就算推
也是带erorr term 的。你那个算法是用 两个 sample mean 来推三个sample 的mean
,在推四个sample 的sample mean。推的都不是一个x 呀!
模拟是要考虑random ness的。不考虑randomness的叫数值计算。coin toss 每投一次
可能是正面可能是背面。
那个data incubator 我也做了。不知道啥前有消息呀?招多少个人呀?你知道吗?
b******6
发帖数: 38
20
我也不知道

true
mean

【在 l********m 的大作中提到】
: Simulation 的意义在于通过对实际情况的大尺度模拟(或者说Sampling)来估算true
: mean. 我们不知道true mean。所以true mean. 简单的说不能推他的patern. 就算推
: 也是带erorr term 的。你那个算法是用 两个 sample mean 来推三个sample 的mean
: ,在推四个sample 的sample mean。推的都不是一个x 呀!
: 模拟是要考虑random ness的。不考虑randomness的叫数值计算。coin toss 每投一次
: 可能是正面可能是背面。
: 那个data incubator 我也做了。不知道啥前有消息呀?招多少个人呀?你知道吗?

相关主题
问问培训班data incubator的事情long and CLOB.. any differences?
reverse链表VWR 的CO2 incubator好用吗? (转载)
请教前辈们小孩的car seat怎么寄回国内方便啊?从一道简单计数排序题看test cases的枚举
进入DataSciences版参与讨论
s****h
发帖数: 3979
21
肯定弄错了,mean怎么可能这么小?
mean > N / 3

=
-2

【在 b******6 的大作中提到】
: 递推的python code
: import numpy as np
: def deduction(N):
: """
: For number of seats taken, deduction:
: mean(s(0)) = 0;
: mean(s(1)) = 1;
: mean(s(N)) = sum{1/N*[mean(s(k-2))+mean(s(N-k-1))+1]} sum for k =
: 1, 2, ..., N;
: mean(s(N)) = 1 + 2/N*[mean(s(-1)) + mean(s(0)) + ... + mean(s(N-2

b******6
发帖数: 38
22
ratio

【在 s****h 的大作中提到】
: 肯定弄错了,mean怎么可能这么小?
: mean > N / 3
:
: =
: -2

d******e
发帖数: 7844
23
mean可以用Law of total expectation来递归。
variance可以用Law of total variance来递归,不过也忒麻烦点了。

【在 s****h 的大作中提到】
: std的公式就复杂了。
: 需要sum(i from -1 to N-2, j from -1 to N-2) F(i) * F(j) 之类的

l********m
发帖数: 284
24
递推不叫模拟吧?
l********m
发帖数: 284
25
你用law of total expectation, conditional probability 怎么算呢?这个题 每个
座位两边是一个位子还是两个位子不确定呀,分三种情况,一边一个(1/4),一边一
个另一边两个(1/2),两边两个(1/4)?还有两个把头的座位也不一样。

【在 d******e 的大作中提到】
: mean可以用Law of total expectation来递归。
: variance可以用Law of total variance来递归,不过也忒麻烦点了。

n*******y
发帖数: 437
26
哦!这就是recursive方法是吧~ 谢谢分享!
请问一下,是不是recursive比起重复模拟(就是随机的一个一个位子坐)快?

【在 s****h 的大作中提到】
: 这个很直观啊。
: N个座位,1到N,1号被坐,剩下的和N-2个座位一样。
: i号被坐,i+1, i-1就不能坐了。
: 1 ~ i-2 不就是F(i-2),
: i+2~N不就是F(N-i-2+1)

n*******y
发帖数: 437
27
我也做了 对 是the data incubator的
你第三题做什么了?
我想不出什么特有商业价值的
只要做了chicago crime data的分析,说商业上也会关心local安全

data

【在 l********m 的大作中提到】
: 50000 simulation确实要时间多些。楼主这是什么面试题呀?我做了一道一样的是data
: incubator。

d******e
发帖数: 7844
28
X_N,N个椅子上的人数。
Y第一个人做在J把椅子上。
P(Y=1) = ... = P(Y=N) = 1/N
E(X_N) = \sum_{J=1}^N P(Y=J)*[E(X_{J-2}) + 1 + E(X_{N-J-1})]
第1把到第J-2把 第J+2把到底N把。

【在 l********m 的大作中提到】
: 你用law of total expectation, conditional probability 怎么算呢?这个题 每个
: 座位两边是一个位子还是两个位子不确定呀,分三种情况,一边一个(1/4),一边一
: 个另一边两个(1/2),两边两个(1/4)?还有两个把头的座位也不一样。

d******e
发帖数: 7844
29
我觉得对于面试来说递归就已经到头了。
但话说回来,递归并不算是数值解法。Simulation的话又闲得太无聊了。
问的挺奇怪。

【在 n*******y 的大作中提到】
: 哦!这就是recursive方法是吧~ 谢谢分享!
: 请问一下,是不是recursive比起重复模拟(就是随机的一个一个位子坐)快?

g******2
发帖数: 234
30
for n = 50000 case,
x <- rbinom(1000, 16666, 0.5)
y <- (50000 - x*3)/2
mean((x+y)/50000)
sd((x+y)/50000)
this should be a good enough approximation
相关主题
One question about Void pointer (转载)R 问题请教
DP与Greedy的题关于 data incubator'Scholars Program
Science上新clustering算法的分析测试Data science Online program
进入DataSciences版参与讨论
d******c
发帖数: 2407
31
我是直接求distribution然后再递推,N数字大了以后太慢,python程序优化之后到N=
500都是立刻
出来,但是N到800以后就越来越慢,到50000不知道要算多久,拟合一下可能能估计出
来,没再试了。因为中间那些情形的计算是组合爆炸的,没什么办法能绕开,上map
reduce用并行倒是可以。
上面直接对sd递推可能比我这个要少计算很多。
b********x
发帖数: 2
32
搭车同问有关这个data incubator的项目,有人收到回复了吗,它家会默拒申请人吗?
m****9
发帖数: 492
33
还没有收到回复,估计3月1号左右能知道结果。

【在 b********x 的大作中提到】
: 搭车同问有关这个data incubator的项目,有人收到回复了吗,它家会默拒申请人吗?
1 (共1页)
进入DataSciences版参与讨论
相关主题
VWR 的CO2 incubator好用吗? (转载)data analyst/scientist
从一道简单计数排序题看test cases的枚举请问版上有人上过data incubator吗
One question about Void pointer (转载)求助 数据科学 培训班
DP与Greedy的题这里有人拿到过data incubator fellowship的人吗?
Science上新clustering算法的分析测试请教Data incubator的challenge
R 问题请教Data Incubator 有人了解这个bootcamp吗?
关于 data incubator'Scholars Program银行的所谓 data scientist 真他妈水 (转载)
Data science Online program问问培训班data incubator的事情
相关话题的讨论汇总
话题: mean话题: sum话题: prev话题: seats话题: sm