面试题:河西有 30 万人,河东有 70 万人 已知每天有 100 万次通话,请估算一下有多少电话是跨河打的?

2023-05-17 18:47:16 +08:00
 Grocker

河东打河西接或河西打河东接,算一次跨河

13908 次点击
所在节点    程序员
110 条回复
hazardous
2023-05-17 18:50:08 +08:00
3/10 * 7/10 * 1000000
huyi23
2023-05-17 18:53:37 +08:00
@hazardous 乘以 2
ljspython
2023-05-17 18:54:17 +08:00
每次通话的可能性是:
河西内部:30 万 /100 万 = 30%
河东内部:70 万 /100 万 = 70%
跨河通话: (30 万*70 万) / (100 万*100 万) = 21%
yinmin
2023-05-17 18:54:30 +08:00
1-( C_2_3+C_2_7 )/ C_2_10
leoleoasd
2023-05-17 18:55:57 +08:00
30 * 30 * 2 / (100 * 100)
yinmin
2023-05-17 18:56:05 +08:00
小学三年级的奥数题 😅
leoleoasd
2023-05-17 18:56:06 +08:00
30 * 70 * 2 / (100 * 100)
Nazz
2023-05-17 18:57:39 +08:00
大概 42.42 万
sillydaddy
2023-05-17 19:00:38 +08:00
按 30%估算是 30 万,实际是 21 万。估算准确率还不错。
Nazz
2023-05-17 19:01:38 +08:00
100 * 30 * 70 / (100*99/2) = 42.42

不会有人和自己通话
WhatMelon
2023-05-17 19:05:38 +08:00
1,000,000 * (c_300,000_1*c_700,000_1) / c_1,000,000_2 =
1,000,000 * ( 300,000 * 700,000) / ( 500,000 * 999,999) 约等 2100,000 / 5 = 420,000 = 42w 跨河
301
2023-05-17 19:08:27 +08:00
700000/999999*300000+300000/999999*700000=420000.42000041995
Nazz
2023-05-17 19:11:22 +08:00
@301 你是对的,我全部除了一万导致出错了😂
kergee
2023-05-17 19:13:36 +08:00
假设每个人都有相同的可能性与其他人进行通话,那么一个人在河西的概率 0.3 ,一个人在河东的概率是 0.7 。

因此,一次通话发生在河西和河东之间的概率是 2 * 0.3 * 0.7 = 0.42 (因为有两种可能的情况:河西的人打给河东的人,或者河东的人打给河西的人)。

所以,每天有 100 万次通话中,预计有 0.42 * 100 万 = 420,000 次通话是跨河的。
wenhuibrave
2023-05-17 19:14:28 +08:00
为了估算跨河电话的数量,我们可以使用概率论的方法。首先,我们需要计算河西和河东之间打电话的概率。
河西打电话的概率( P (河西))= 河西人数 / 总人数 = 30 万 / (30 万 + 70 万) = 30/100 = 0.3
河东打电话的概率( P (河东))= 河东人数 / 总人数 = 70 万 / (30 万 + 70 万) = 70/100 = 0.7
接下来,我们需要计算跨河通话的概率。跨河通话可以分为两种情况:河西打给河东和河东打给河西。我们可以分别计算这两种情况的概率,然后相加得到总概率。
河西打给河东的概率( P (河西→河东))= P (河西) * P (河东|河西)= 0.3 * 0.7 = 0.21
河东打给河西的概率( P (河东→河西))= P (河东) * P (河西|河东)= 0.7 * 0.3 = 0.21
跨河通话的总概率 = P (河西→河东)+ P (河东→河西)= 0.21 + 0.21 = 0.42
最后,我们可以用跨河通话的总概率乘以每天的通话次数,得到跨河通话的数量:
跨河通话数量 = 跨河通话总概率 * 每天通话次数 = 0.42 * 100 万 = 42 万次
所以,估算每天有 42 万次跨河电话。
leaflxh
2023-05-17 19:20:23 +08:00
河东一程序员因开发自动拨号软件恶意骚扰同城用户,次数高达 100 万次,已因破坏计算机系统罪引渡
leaflxh
2023-05-17 19:24:47 +08:00
(想问下问什么通话概率是等概的
301
2023-05-17 19:26:31 +08:00
@leaflxh 现实中不会,但是大家揣测出题人是这么想的哈哈哈
yinmin
2023-05-17 19:38:57 +08:00
所有人相互都打一次电话,总打了 C_2_1000000=1000000*999999/2 次
河东的人相互都打一次电话,总打了 C_2_300000=300000*299999/2 次
河西的人相互都打一次电话,总打了 C_2_700000=700000*699999/2 次
河东与河西人相互都打一次电话,总共打了 C_2_1000000-C_2_300000-C_2_700000 ,概率为(C_2_1000000-C_2_300000-C_2_700000)/C_2_1000000=42%
1 天 100 万次通话,河东河西互打 100 万*42%=42 万次
yinmin
2023-05-17 19:45:51 +08:00
我让 GPT-4 写了一段代码,跑下来就是 42W 左右,哈哈

import random

west_population = 300000
east_population = 700000
total_population = west_population + east_population
cross_river_calls = 0

# 模拟 100 万次通话
for _ in range(1000000):
# 随机选择 2 个人进行通话
caller = random.randint(1, total_population)
callee = random.randint(1, total_population)

# 检查通话是否跨河
if (caller <= west_population and callee > west_population) or (caller > west_population and callee <= west_population):
cross_river_calls += 1

print(f"跨河通话次数:{cross_river_calls}")

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/940777

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX