过早客
  • 首页
  • 节点
  • 成员
  • 广告投放
  • 登录
  • 注册

算法题:有1000杯水,只有一杯放糖了,如何快速找到它?

IT技术 • multicode • 发表于 1 年前 • 最后回复来自 seekingdeep • 1 年前

加入收藏 新浪微博 分享到微信 ❤赞 16215 次点击 0 人赞 3 人收藏

打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮

共收到39条回复
huster911 1 年前 上海市 #1 赞 1

红糖或者黑糖吗?红糖或者黑糖的话直接一眼望去看颜色。白糖的话让放蚂蚁

junas 1 年前 上海市 #2 赞 26

谁放的,严刑拷打不就得了嘛.... 天天整那些二分法

fcppl 1 年前 湖北省 #3 赞 8

直接问放糖的人是哪一杯,这个问题考的是责任到人的意识

woyouzui 1 年前 湖北省 #4 赞 2

右边那个回答有问题吧,5是0000101,15是0001111,那就会放到那四个杯中,和5有重复吧。我觉得自己挨个喝一口,比这捣来倒去快多了……

ycvhbk 1 年前 湖北省 #5 赞 3

就是信息论啊,老鼠毒药问题的变种,如何用最短的数据长度给水编码的问题,
为啥看到这种题目都想往什么原则,意识,理念上靠,非要把一个理工类的问题搞成社科类甚至当脑筋急转弯搞

ycvhbk 1 年前 湖北省 #6 赞 3

@woyouzui 没问题,如果是第五杯有糖 0000101,则混合出来的 低位的第 1 和第 3 杯会是甜的,而第 2 和第4 杯不甜, 而如果是15 则 是 0001111 1234 都会是甜的

tcl 1 年前 湖北省 #7 赞 0

这个问题的意义是什么?
面试官要招聘什么样的人才?
不同面试官对应的答案不一样。

xiaolata 1 年前 湖北省 #8 赞 3

让水哥王昱珩来找,什么算法就是浮云

letiankaimen 1 年前 湖北省 #9 赞 0

@ycvhbk 因为用专业知识答不出来

woyouzui 1 年前 湖北省 #10 赞 1

@ycvhbk 看明白了

ucla_818 1 年前 湖北省 #11 赞 0
gegeza 1 年前 浙江省 #12 赞 0

拿10个杯子 1-100杯各取一点放在第一个杯子。。依次900-1000杯中各取一点放在第10个杯子

这样尝10次范围就能缩小十分之一,然后找到有糖的那一百杯再分为十杯,范围再次缩小到10杯,最后再依次找到有糖的那杯

shang53880 1 年前 湖北省 #13 赞 1

二分查找法?

Unintended 1 年前 湖北省 #14 赞 0

算法其实蛮有意思的,和寻常思维不在一个路子上。

jingsu2000 1 年前 湖北省 #15 赞 0

二分法就是最简单吧,每次拿一半的杯子,混一起喝,10次找到。用二进制编码也一样10次,但效率低一些,前者更直观

bailao 1 年前 广东省 #16 赞 0

用分组法比二进制操作效率更高

zengyicheng 1 年前 湖北省 #17 赞 1

混水的操作,要浪费不少时间,还容易误操作
感觉还不如拿个吸管挨个试

asaiaaaa 1 年前 湖北省 #18 赞 0

1.放糖后如果顺序没有打乱,我直接问放糖的人,这样最快
2.如果打乱了,我会先问放糖人杯子的特征,再来找;如果没有特征我一个一个试,但是效率比较低,但是准确度高
3.搞个活动,请大家尝,拿到糖水的作为幸运观众,有奖

yaoyaozhou 1 年前 湖北省 #19 赞 0

如果只有一个人做这个事,有时间混一千杯水,那么必然每个杯子都要拿起来混合一次吧,还不如全部试一遍。

fuz 1 年前 湖北省 #20 赞 0

这个题有意思,下次拿来考考我儿子

huanfengjacky 1 年前 湖北省 #21 赞 1

二分法那个,糖水会稀释到没味道,还不如拿个小勺子,一个一个试

dreamonlenrun 1 年前 湖北省 #22 赞 0

搞根筷子蘸着尝最快,分水混水多的时间去了

sunnylion00 1 年前 湖北省 #23 赞 0

你说你是想要糖吗?我帮你去买一包

dfm1988 1 年前 湖北省 #24 赞 0

算个锤子,高浓度糖水直接闻出来,倒来倒去慢死了

Imaginarylove4 1 年前 湖北省 #25 赞 1

给面试官一个while(true),让他一个个尝去

tairan 1 年前 湖北省 #26 赞 0

通过化学反应染色最快…

Noob1024 1 年前 湖北省 #27 赞 0

题干描述稀烂。专业问题就不应该搞这种脱离实际的应用场景博眼球,当初怎么用雨滴问题讽刺物理的今天就怎么讽刺回来。

wyfcccc 1 年前 湖北省 #28 赞 1

要快速找到放了糖的杯子,可以使用二分查找法。以下是计算方法:

将1000杯水按顺序编号为1至1000。
选择中间的杯子(例如杯子500)。
检查杯子500中是否有糖。如果有糖,停止搜索,找到放了糖的杯子。
如果杯子500中没有糖,确定糖在500左侧或右侧。
如果糖在500左侧,将范围缩小到杯子1至499,然后跳转到步骤2。
如果糖在500右侧,将范围缩小到杯子501至1000,然后跳转到步骤2。
重复步骤2至6,直到找到放了糖的杯子。
使用二分查找法可以快速排除大部分杯子,并在对数时间内找到放了糖的杯子。在这个例子中,最多需要log2(1000)≈10次查找就能找到放了糖的杯子。

对于给定的情况,使用二分查找法是一种非常高效的方法。二分查找法的时间复杂度是O(log n),其中n是元素数量。在这种情况下,我们有1000个杯子,因此最多需要约log2(1000)≈10次查找才能找到放了糖的杯子。

二分查找法利用了元素的有序性,每次排除一半的元素,因此可以在较少的比较次数下找到目标元素。相比于线性搜索方法,如逐个检查每个杯子,二分查找法的效率更高。

然而,如果有其他额外的信息可以利用,比如糖的重量、杯子之间是否可以比较,或者更复杂的搜索方法,可能存在更快的方法。但在给定的条件下,二分查找法是一种快速且可行的方法。

axuan 1 年前 湖北省 #29 赞 0

混合取样法问题是你混合后还能感觉得到甜味吗?

jasontsai 1 年前 广东省 #30 赞 0

我选择不找

kx900900 1 年前 湖北省 #31 赞 0

用折光仪扫一下就出来了

frankings 1 年前 湖北省 #32 赞 0

煞笔面试官

camojojo 1 年前 广东省 #33 赞 0

@wyfcccc chatgpt生成的吗

xinghehui 1 年前 广东省 #34 赞 1

2分法最大的弊端是后一次需要依赖前一次的结果,如果这个检测需要时间,那么2分法要等待10次检测的时间,是个串行的,相当于10步每一步都得一步步走;
但如果用我下面这种方法,可以并行的,只需要等一次检测的时间就可以知道哪一杯是甜的。
将1000个杯子,从0到999 排好序,并且用2进制数字来表示,然后取出10个空杯子。
第一个空杯子,把排好序的杯子里,取出 从低位到高位第1位为1的杯子里的水,装入第1个空杯,例如第1、3、5、7...
第二个空杯子,把排好序的杯子里,取出 从低位到高位第2位为1的杯子里的水,装入第1个空杯,例如第2、6、10、14...
...
第十个空杯子,把排好序的杯子里,取出 从低位到高位第10位为1的杯子里的水,装入第1个空杯,例如第512、513、514、515
然后把这十个装了混合液的杯子拿去检测,哪一个杯子检测是甜的,则对该位置1,例如十个杯子,分别是
不甜、不甜、不甜、不甜、不甜、甜、甜、甜、甜、甜
则形成的二进制数是:1111100000
最终,第1111100000 (10进制是992) 个杯子里的水是甜的。

D_Ding 1 年前 江苏省 #35 赞 0

小学五年级找次品

Bayern1120 1 年前 湖北省 #36 赞 0

小学五年级找次品 好像是平均分成三份

tiandishi 1 年前 湖北省 #37 赞 0

一瓶高锰酸钾撒出去,褪色那瓶就是。这是化学题。

shierxi 1 年前 湖北省 #38 赞 0

@huster911 @tiandishi
这两个好使,简便易用具备实际操作性,其他的各种分法理论性太强,不好实地操作。

seekingdeep 1 年前 湖北省 #39 赞 0

这种算法放到一个公司,10年都不一定用的到一次

请绑定手机号后,再发言,点击此处
Guozaoke.com—源自武汉的高端交流分享社区
相关主题
最近时间少了, 隔了这么久, 才做了一个网站
求推荐一个AI智能体客服
请问大家都是通过哪些好用的链接访问GPT
请教机器学习人工智能的一个技术问题
搞了个AI 生图的网站,不需要登录,永久免费
[第二波送码]动动嘴皮,AI秒出图!2025最炸裂图标神器:免费生成+手机实时预览
开发了一个管理 Linux 服务器的桌面可视化管理工具,求蹂躏
服务器可视化采用纯前端渲染,这个技术实现难度如何
做了一款摸鱼软件,有人要试用吗?
有搞嵌入式硬件的吗?

过早客微信公众号:guozaoke • 过早客新浪微博:@过早客 • 广告投放合作微信:fullygroup50 鄂ICP备2021016276号-2 • 鄂公网安备42018502001446号