12345一个游戏:有3扇关闭着的门,其中2扇门后面各有一只羊,另一扇门后面有一辆车。参与者:一个游戏者和一个主持人。主持人事先知道各扇门后的物品,而游戏者不知道。游戏目的:游戏者选择到车。游戏过程:1、游戏者随机选定一扇门;2、在不打开此扇门的情况下,主持人打开另一扇有羊的门。3、此时面对剩下2扇门,游戏者有一次更改上次选择的机会。问题:游戏者是否应该改变上次的选择,以使选到车的概率较大?
问题的学名叫《蒙提霍尔问题》,阅读原文有来龙去脉。
答案有换和不换两种,有的认为是换概率是2/3,有的认为是不换和换都一样,概率是50%,因为后面剩两个概率是相同的。
正确答案是应该换,...
1. 外呼号码加拨0背景客户经理要给用户打电话,在系统界面上,只能看到用户的牛牛号。系统通过牛牛号查询电话号码,再用电话号码给用户拨打电话。
电信系统要求,对于深圳本地手机号,直接拨打,对于外地手机号,要加拨0,然后拨打。
程序用的是一个离线库,判断手机号是否为深圳本地号,如果不是,加拨0拨打。
由于离线库更新不及时,部分深圳新号码,被判断为外地号,导致客户经理给用户打不出电话,要找开发处理,开发把新号段增加到数据库后,客户经理再给用户拨打。
问题如何解决客户经理遇到新号码要加拨0的问题?
分析与解决方法一、 购买号码归属地判断服务,在24小时内更新,准确率99%以上,但是需要程序修改,...
123一流的人生,就是看着别人犯错误,自己不犯错误,吸取经验教训;二流的人生,是自己犯错误,自己吸取教训;三流的人生,是自己犯错误,自己还不吸取教训。
互联网工程师,特别是后台工程师,经常遇到线上出问题,引起事故。事故有大有小,影响不一,有些能自动恢复,有些影响巨大刻骨铭心。今天就来聊聊运营事故的处理及预防。
如何处理运营事故虽然发生运营事故是大家都不想看到的,但是真发生了,还是有处理的方法。
1、第一时间同步给leader为什么要同步给leader呢?自己弄好,谁也不说行吗?肯定不行,纸包不住火。同步给leader只有好处,没有坏处。 同步后,你可以专心处理事故,leader会帮你决...
互联网业务变更非常快,随着业务规模扩大,线上的业务也会涉及重构和迁移。比较难的就是存储迁移,可能从前的存储不适合新的业务模型了,例如从关系型数据库迁移到nosql,或者数据的存储格式发生了巨大的变化。
为什么说涉及数据迁移的业务最难呢?因为数据是有状态的,不像逻辑和接入层,方便灰度,即使出问题马上回滚就能恢复(如果涉及写数据也也有问题)。然而数据是有状态的,如果切换后发现新的写存储数据有问题,是很难修复的,也很难发现的。
任何迁移或更新,涉及到数据的,都有一个原则:要有验证比对和回滚能力。
验证比对数据迁移后,要有办法验证这次迁移是成功的,没问题的。只是从代码上说,看,前后逻辑都一样,肯...
之前一次例会,讨论到了排期,究竟怎样看待排期,如何能排得准,总结了一些内容。
如何看待排期每个项目,都要有明确的deadline,越大的项目对deadline要求越明确,越不能延期。一些关乎于公司生死存亡的项目,更是上线时间点都不可变更的。 作为一个专业的程序员,给出的排期就是一份契约,答应的时间要做到,否则会影响信誉。如果中间评估时间不够,真的要延期,要提前说出来。而不要最后时刻,给人final surprise。没有按照约定完成,要反思。 项目经理要的排期既不是写代码的时间,也不是设计+实现代码的时间,而是项目上线的时间。太多的程序员把写完代码的时间,当作上线时间承诺出去,代码没上线...
引言人类对于自己的思考了解吗?传统经济学里人都是理性的,人会理性作出决策,让利益最大化,真实的人类是这样吗?
心理学家,诺贝尔经济学奖得主卡尼曼的《快思慢想》,回答了以上疑问。虽然思考是习以为常的事,但是人类并不了解自己的思考方式。甚至觉得自己是懂的,但实际并清楚大脑作出决策的方式。
书中通过大量的示例,和严谨的实验推导,像我们展示了人类思考的方式。论证严谨,干货满满,是一本好书,值得反复阅读。
通过这本书,重新认识了思考,改变了对决策的认知。对于日常遇到的一些现象,也有了合理的解释。
下面是对本书的小结。
系统一、系统二为了理解思考方式,建立了两个虚拟的概念。系统一和系统二,是人类大脑...
XSS专题[TOC]
1 介绍XSS(Cross-site scripting,跨站脚本)是一种网站应用程序的安全漏洞攻击,是代码注入的一种。
2 成因2.1 Html/JavaScript 是用户端可触达的解析性语言Html/JavaScript 和 SQL 一样,都是用户端可触达的解析性语言。所以,用户可以改变最终的代码。(不同于 PHP 等,用户无法改变 PHP 的代码,只能改变数据)
用户可触达,所以用户就能改变代码来进行攻击。
2.2 浏览器如何解析 html/javaScript
http://coolshell.cn/articles/9666...
最近和zhiyong聊天,有两个关于并发的场景比较有意思,记录下思考的过程。
场景一A和B在微信里发消息,如果A发的消息顺序是A1,A2,A3,B发的消息顺序是B1,B2,B3。
两个问题:
如果A2由于网络原因,比A3后到服务器,B收到的消息是什么样的?
如果都不丢消息,A1和B1同时发出,几乎同时到服务器,再分别传给A和B,那么在聊天窗口的表现是什么?
经过zhiyong的黑盒逆向测试,问题1的答案是B看到A1和A3,在A看到A2发送失败,有个红色叹号,如果点击重发,相当于发出了一个相同内容的A4。
问题2的答案是可能A看到的是A1,B1,B看到的是B1,A1,即在不同人之间的消...
理解依赖注入和控制反转在了解lumen框架的时候有遇到这两个概念,当时看了觉得模模糊糊地明白了,但是上周在上课时发现还是没理解透,又重新梳理了解了下,总算有点明白了。
基本定义和关系首先明白几个定义,然后理清他们之间的关系。
依赖反转原则(Dependency inversion principle,DIP)是指一种特定的解耦(传统的依赖关系创建在高层次上,而具体的策略设置则应用在低层次的模块上)形式,使得高层次的模块不依赖于低层次的模块的实现细节,依赖关系被颠倒(反转),从而使得低层次模块依赖于高层次模块的需求抽象。
控制反转(Inversion of Control,缩写为IoC)是...
对于语言中的continue,大家都不陌生,是停止当前行的操作,继续下次循环。例如下面的C语言代码
1234567891011121314151617181920212223#include <stdio.h>int main(){ int i; for(i = 1; i < 4; ++i) { switch (i) { case 1: printf(" %d in case\n", i); b...