以前想过一个类似问题,就是没有每个人最大、最小的得钱数的限制,以前的问题可以很好用随机数解决。
于是这个问题也被以前的思想带坑里了,把突破口完全放在了如何处理每个人的随机数上。
于是在面试时间就没有解决这个问题,直到面试结束自己安静下来,仔细想想,发现思路错了。

我认为正确的思路是:

  1. 每个人先得6块钱,这样剩下40块钱,之后每次拿出一块钱,随机分配给一个人,如果某个人的钱数达到了上限,那么这个人下次就没有了再得到钱的资格了。这样直到剩下钱都分配完。

  2. 当然在接口的实际处理上可以做些优化,例如剩下的钱每次随机分配的钱可以是随机的(当然这个随机要做一些限制,以免一下就分配超额了),然后如果某个人钱+这次随机分配的钱>每个人的上限,那么他就没有资格得到这个钱了。

  3. 随机分配也好实现,先算有几个人有资格得到这笔钱,随即一个数,决定给第几个符合资格的人。

自我反思:

  • 开始的思路跑偏了,后来没有转过来。什么时候该继续深入、什么时候该转变思路?该如何抉择,是很重要的事。说到底,还是没有快速想清问题的状态,如果想清了也就知道开始的思路有问题,就知道该换换突破口了。

  • 在与面试交谈中,明显有些紧张。这更加影响了我的思考。不管外界如何,一个人的大脑永远都该是清醒的。这是一种很重要的能力,努力修行吧。

面试问题:发一个随机红包,100块钱给10个人。每个人最多12块钱,最少6块钱。怎么分?...相关推荐

  1. 发一个随机红包 100块钱给10个人 每个人最多12块钱 最少6块钱 怎么分

    在微博上看到segmentfault上的一个题目,看了下问题,我自己想的就是先把每个人都分6元,然后在随机分配剩下的40元.看了下原题的答案,已经有这样的思路.哈哈.写下我的代码. 有两种做法:一种是 ...

  2. 面试问题:发一个随机红包,100块钱给10个人。每个人最多12块钱,最少6块钱。怎么分?

    设sum=100,n=10,则题目可以得到以下结论6n <= sum <= 12n. 设randNum为随机红包的大小,则可以推出6(n-1) <= (sum-randNum) &l ...

  3. 编写一个函数,模拟微信发红包的红包分配过程。函数有两个参数:一个参数表示红包总金额,默认值为100,另一个参数表示红包数量,默认为10。程序输入:红包总金额和红包数量;程序输出:每个红包的金额。要求:

    题目 ‬‬编写一个函数,模拟微信发红包的红包分配过程.函数有两个参数:一个参数表示红包总金额,默认值为100,另一个参数表示红包数量,默认为10.程序输入:红包总金额和红包数量:程序输出:每个红包的金 ...

  4. 一个“扛住100亿次请求”的春晚红包系统

    文章来源:https://sourl.cn/wRp68e 前 言 偶然看到了<扛住100亿次请求--如何做一个"有把握"的春晚红包系统>一文,看完以后,感慨良多,收益很 ...

  5. 一个扛住 100 亿次请求的红包系统,写得太好了!!

    原文:github.com/xiaojiaqi/10billionhongbaos 前 言 偶然看到了<扛住100亿次请求--如何做一个"有把握"的春晚红包系统>一文, ...

  6. 用JS实现一个随机点名系统(五)

    用JS实现一个随机点名系统 每次上课前10分钟,老师都会叫我们回答问题,奈何每次都是点学号,好像每次我都能中奖,我直接跟老师提议,老师,我用来JS来帮你写个随机点名的系统吧!这样就不会每次都 抽到我了 ...

  7. python随机红包怎么发_python生成随机红包的实例写法

    假设红包金额为money,数量是num,并且红包金额money>=num*0.01 原理如下,从1~money*100的数的集合中,随机抽取num-1个数,然后对这些数进行排序,在排序后的集合前 ...

  8. 互联网日报 | 小米11取消随机附送充电器;苏宁30周年发庆生红包;2021年全国两会召开时间确定...

    今日看点 ✦ 小米11取消随机附送充电器,响应科技环保号召 ✦ 苏宁30周年发庆生红包,Super会员最高100元直接到账 ✦ 特斯拉副总裁回应"质量不合格报道":文章编织离谱,已 ...

  9. Java黑皮书课后题第3章:3.16(随机点)编写程序,显示矩形中一个随机点的坐标。矩形中心位于(0,0),宽100高200

    3.16(随机点)编写程序,显示矩形中一个随机点的坐标.矩形中心位于(0,0),宽100高200 题目 题目描述 破题 代码 题目 题目描述 3.16(随机点)编写程序,显示矩形中一个随即点的坐标.矩 ...

最新文章

  1. python 迭代器
  2. python替换文本文件单词_在大型文本文件中替换一组单词
  3. DBlink的创建与删除
  4. net core 3.1 跨域 Cors 找不到 “Access-Control-Allow-Origin”
  5. matlab矩阵处理实验报告,matlab实验报告一二三
  6. Python-JS (JS介绍~JS的基础数据类型)
  7. 图像处理、语音处理的应用及前沿技术_自主知识产权的2微米级3D视觉相机应用于高精度和高反光物体的缺陷检测...
  8. [2018.03.13 T2] 过河(river)
  9. 敏捷开发宣言 (一)
  10. CAN笔记(4) 协议基本概念
  11. STM32开发项目:步进电机驱动库
  12. 阿里云飞天计划ECS使用体验
  13. OpenJDK Runtime Environment (IcedTea6 1.13.10) (rhel-1.13.10.0.el6_7-x86_64) OpenJDK 64-Bit Server V
  14. PostgreSQL t_bits计算方法
  15. Cesium加载ArcGIS的PBF矢量切片服务
  16. 情感日记:东部华侨城
  17. 【DIY】多模式51单片机心形流水灯+呼吸灯+蜂鸣器音乐
  18. asp.net后台为控件添加css样式
  19. python中文文本分词_SnowNLP:?中文分词?词性标准?提取文本摘要,?提取文本关键词,?转换成拼音?繁体转简体的 处理中文文本的Python3 类库...
  20. shogun-toolbox的使用方法和问题总结

热门文章

  1. 2021职业院校新一代信息技术专业群1+X职业技能等级证书汇总
  2. 多商户商城系统方案分析
  3. 安卓手机合并内存卡到内置存储
  4. 2013华为校园招聘机试题
  5. 洛谷 P5664 Emiya 家今天的饭【dp】
  6. Docker三大核心之容器
  7. JAVA调用R语言 (未完)
  8. 跟着团子学SAP PS:增加WBS元素为分摊发送方提升单个项目内部成本精准归集 KSV1/KSU1
  9. Win7运行程序时弹出“windows防火墙安全警报“的解决方法
  10. 13_Android的进度条