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

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

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

15046 次点击
所在节点    程序员
110 条回复
isSamle
2023-05-18 18:55:32 +08:00
30*0.7+70*0.3=42
txy3000
2023-05-18 19:00:09 +08:00
bthulu
2023-05-18 19:27:17 +08:00
你这是完全随机么? 是的话倒是可以算算. 不是的话就没讨论的意义, 比如河东根本就没架设电话网络.
lixiang2017
2023-05-18 19:50:21 +08:00
大家都在算概率,只有我在想这个河西是不是南京河西 CBD
nomagick
2023-05-18 21:03:18 +08:00
我觉得这道题非常好,准备留着自己用了。

各位觉得面试题是考中学算数吗,难道公司就是一帮中学生组成的吗
按照中学的标准考察候选人难道能算是良好履职吗?


这题考查的是你发现隐含假设的能力,你只要能发现,这个题就没有确定答案。

在一般的程序员写程序的时候,一般都会不自觉地设定一系列假设,常见的有项目名称、当前代码的核心用途等。

什么叫差劲的代码,差劲的代码就是假设太多,只能解决当前限定条件下的特殊问题,就像 CRUD 的一个 API ,写个意面代码,只着眼当前业务逻辑,这个代码就很难复用。最终因为大部分代码都不能复用,总的维护成本就很高。
据我观察很多人甚至意识不到大部分假设的存在。

什么叫好的代码,好的代码就是能够厘清隐含假设,限制假设,寻找共性,形成抽象层级,最终实现复用,因为代码能够复用,总的代码量就会减少,就更容易维护,并且假设管理得越清晰,结构就越好,维护越容易。



所以回到这题,如果你只给出了确定概率答案,这题基本就算答废了,面试官就需要引导你进行更多的思考,直到你能够意识到隐藏假设的存在,你能举出的越多越好,之后基于假设做一些推断,就完成了能力考查的目标。
lshang
2023-05-18 21:09:07 +08:00
假设每个人都会给其他人打电话,则跨河打电话数就是总电话数量减去河内电话数量,即:(3+7)^2 - (3^+7^) = 42

跨河电话的比例就是 42/100 = 0.42

已知当前总电话数量是 100 万,根据比例,跨河电话的数量约为 42 万
realpg
2023-05-18 23:13:55 +08:00
近似:
(3*7*2)%=42%
精确 要扣除不能打给自己产生的零头
IvanLi127
2023-05-18 23:51:27 +08:00
话说,这题没说有没有多方通话耶
xuanbg
2023-05-19 07:57:49 +08:00
@acthtml 电话可以重复打,球你可不能重复摸啊。所以不等价。
acthtml
2023-05-19 09:30:29 +08:00
@xuanbg - -

每次是独立的,每次都是 3 蓝 7 红 10 个球,不需要考虑重复。

每次打电话是否跨河的概率,和,“每一次独立的摸球游戏得到红篮球的概率” 是一样的。

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

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

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

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

© 2021 V2EX