一道有意思的Amazon的概率面试题[# 71]

该问题包含两个子问题:

子问题1:给你一个骰子,你扔到几,机器将会给你相应的金钱。比如,你扔到6,机器会返回你6块钱,你扔到1,机器会返回你1块钱。请问,你愿意最多花多少钱玩一次?

子问题2:在子问题1里,你只能扔一次,现在呢,可以给你两次机会,但是你自己也可以选择只扔一次。但返回的钱以最后一次为准。比如,第一次你扔了6,你把第二次机会就放弃了,这样机器会返给你6块钱。但是,假设你第一次扔了3,你如果对这一次不满意,打算再扔一次,如果你第二次扔到了2,那么你最后只能得到2块钱,如果第二次扔到5,你最后会得到5块钱。请问,在这种条件下,你愿意最多花多少钱玩一次?

分析:

对于子问题1,非常简单,本质上是求数学期望。因为骰子每一面被扔到的概率是一样的,即 1/6. 所以,最后期望值是 1 * 1/6 + 2 * 1/6 + ... + 6 * 1/6 = 3.5. 也就是说,假设你玩无穷次,平均下来,机器会返回给你的钱是 3.5. 所以,如果你头脑清醒的话,你应该不会花超过3.5去玩一次。

对于子问题2,解答起来是有困难的。因为这题里面有一个选择的问题:你可以只扔一次,或者选择扔两次。所以不容易去获得每个值的概率(因为我们不知道到底扔不扔第二次)。但是,如果有了子问题1的答案,其实对于决定是否扔第二次还是有根据的,原因如下:

如果你第一次扔到了1,或者2,或者3,你一定会扔第二次。为什么(问题的关键)?因为我们在扔第二次的时候,它的期望收益是 3.5。同理,如果你第一次扔到了4,5,6,你不会选择扔第二次,因为你知道下一次的期望收益是 3.5,比你目前的收益会小。有了这样的分析,问题就可以迎刃而解了。

解答:

因为骰子总共6面。第一次扔到4, 5, 6 其中之一的概率是 1/2, 那么选择扔第二次的概率也是1/2。在第一次扔到4,5,6其中之一这个事件里,平均收益是4* 1/3 + 5 * 1/3 + 6* 1/3 = 5. 在第二次扔的时候,平均收益是 3.5(子问题1的答案)。所以最后总的收益是 5 * 1/2 + 3.5 * 1/2 = 4.25。 

转载请注明出处:http://blog.csdn.net/beiyeqingteng

  • 5
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
当谈到 Flink 的高频面试题时,以下是一些常见的问题: 1. 什么是 Flink?Flink 是一个开源的流处理和批处理框架,具有低延迟、高吞吐量和Exactly-Once语义。 2. Flink 和其他流处理框架(如Spark Streaming)有什么区别?Flink 是真正的流处理框架,支持事件时间、状态和容错。而其他框架通常是微批处理框架,处理延迟较高。 3. Flink 的核心组件是什么?核心组件包括DataStream API、DataSet API、Table API 和 SQL。DataStream API 用于处理无界数据流,DataSet API 用于处理有界数据集,Table API 和 SQL 用于将关系型查询应用到流和批处理数据上。 4. Flink 的窗口是什么?窗口是对无界数据流的有限大小的切片。Flink 提供了时间窗口、计数窗口和会话窗口等类型的窗口。 5. Flink 如何保证 Exactly-Once 语义?Flink 使用检查点(checkpoint)机制来实现端到端的 Exactly-Once 语义。这个机制通过定期保存应用程序的状态,并在发生故障时恢复状态,从而保证数据的一致性。 6. Flink 的容错机制是什么?Flink 使用基于检查点的容错机制,通过保存应用程序的状态并周期性地生成检查点来实现容错。当发生故障时,Flink 可以使用最近的检查点恢复应用程序的状态。 7. Flink 支持哪些数据源和数据接收器?Flink 支持多种数据源和数据接收器,包括本地文件系统、Kafka、Hadoop、Amazon S3、Elasticsearch 等。 8. Flink 如何处理状态?Flink 通过状态后端将应用程序的状态保存在内存、文件系统或远程数据库中。状态可以是键控状态(Keyed State)或操作符状态(Operator State),用于跟踪和更新流处理的中间结果。 9. Flink 的时间语义是什么?Flink 支持事件时间、处理时间和摄取时间三种时间语义。事件时间是从数据中提取的时间戳,处理时间是处理数据的机器的本地时间,摄取时间是数据进入 Flink 的时间戳。 10. Flink 如何处理延迟数据?Flink 使用水位线(Watermark)来处理延迟数据。水位线是一种特殊的数据元素,用于告知 Flink 系统事件时间进展的进度,并触发窗口计算和数据输出。 这些问题涵盖了 Flink 的基本概念和核心组件,希望对你有所帮助!如果你有其他问题,可以继续提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值