首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >概率入门:双色球中奖、购车摇号中签和德扑同花顺,哪个更容易?

概率入门:双色球中奖、购车摇号中签和德扑同花顺,哪个更容易?

作者头像
IT阅读排行榜
发布于 2018-09-29 03:20:00
发布于 2018-09-29 03:20:00
1.8K0
举报
文章被收录于专栏:华章科技华章科技

导读:排列组合是我们在这本书中接触到的第一个概率论概念,也是我们在高中学过的一个概率学的入门概念。概念记不清了也不要紧,我们回忆一下在中学学过的排列组合都有哪些经典问题来的。

作者:高扬、卫峥、尹会生

插画设计:万娟

01 双色球彩票

双色球彩票在中国的历史不算短了,大概是从2003年2月就开始在中国联网发售。虽然有很多人都在诟病说双色球开奖的方式不够公平透明,但是还有相当多的彩民一直在执着地研究双色球开奖的规律。

咱们今天只从数学的角度来看一下双色球彩票的头奖和你花两块钱下注购买的彩票一致性的概率,也就是我们平时说的买一注然后就能中头奖的概率有多大。我们必须先明确一个前提,就是确实没有人对彩票购买和抽奖小球的抽出做干预,换而言之,就是你下注的这一注是在完全不知道开奖结果的情况下买的,抽奖也是每个球被抽出的概率一样的情况下做的。

我们购买一注彩票的时候,首先选择红球,从01到33,共33个号码中选择6个号码。再从01~16,共16个号码中选择1个号码。6红1蓝一共7个号码组成完整的一注彩票。

最终抽奖的时候也会是01~33个红色号码中选择6个号码,再从01~16,共16个蓝色号码中选择1个号码。6红1蓝一共7个号码组成完整的一注头奖彩票。

如果你选择的6红1蓝和头奖的6红1蓝完全一致那就算中了头奖,奖金怎么算……这个大家去问福利彩票中心吧,咱们这里只算概率。

先算算我们挑选6红1蓝一共有多少种挑法。

首先先从33个红球中挑选6个红球,用组合的方式

=33×32×31×30×29×28/(6×5×4×3×2×1) =1107568

也就是1107568种选法。

再从16个蓝色球中选1个,16种选法。

这样6红1蓝的选法就是一共是1107568×16=17721088种选法。

说个形象点的例子,老天爷在想1到17721088中的一个整数,你也在想1到17721088中的一个整数,你们俩想的完全一样的概率有多大?没错1/17721088,大约是0.0000000564%的概率。还能数的清有多少0么?

不少人说,这没关系,反正有一些破法。有哪些破法?看了一下有两种支持的人比较多。

方法一:我多买几种配置方法,换句话说,多想几个数去跟老天爷碰运气?

那就算算看,一共17721088种可能,全部买下来——也就是俗称的全餐彩票,一共要花35442176元人民币。奖池是不是在所有中头奖的人平分后还能至少分到手这么多不好说(包括加上二等、三等奖一共能领到多少钱都可以自己算)。我们按照比例缩小一些试试呢?比如买一半,那就是中奖概率变成1/2——要花掉17721088元,还有一半的可能性是不中。其他比例大家可以自己计算。每一种在降低投入的同时,也在降低中奖概率。所以这种方式并没有提高买彩票的投入产出比。

方法二:我只买一种组合,坚持到底,就能提高胜率?

有这样思想的朋友估计是这么一个思路,就是说这一次这种组合不中,由于每种组合概率一样,所以在多次随机过程里前面出现过的组合后面出现的概率就低,前面没出现过的组合后面出现的概率就高。有这样思路的朋友,想想这样一个事,交通事故其实是一个典型的随机事件。平均每个月发生交通事故的数量是相对“固定”的,只不过发生的地点,发生的时间,发生的车型,涉及到的人可能不同而已。

那么如果要避免交通事故,那么就先人为制造一些无害的交通事故就好了,造够了次数,这个月就不会再发生交通事故了,大家也可以安心上路随便开了。这个逻辑就变得顺理成章,但是事实真的会是这样吗?

这种随机产生的每一次结果之间其实是独立的概率,换句话说每一次之间是不会影响前后随机事件里产生的结果的,也不会影响到前后的随机事件的结果。在静态概型里,这个结论请大家牢记。

也有人表示怀疑,说我明明在一些事情里看到前一件事发生后会影响后面事情发生的可能性,那这种事情怎么解释。这种事情,首先不是古典概型的范畴,如果要归类的话可以算作条件概率的研究范畴,条件概率以后我们也会详细讲解。

02 购车摇号

北京是一个以拥堵著称的城市,拥堵的问题也是由来已久,而且几乎是越来越严重。在万般无奈的情况下,专家们最后祭出了一个大招——摇号。

摇号是一个带有比较浓郁配给制色彩的手段。大概的形式就是,每个已经具备摇号资格的人登记一下身份证号码,所有登记过身份证号码的人都放在一个大“池子”里,然后每两个月通过“随机”的方式产生20000个号码,这20000个幸运儿就是中签者,就拥有了购买一辆汽油动力汽车的配额。

中签概率多大呢?有人想到直接用20000÷1420000就是自己中签的概率。但是为什么是这么求呢?有理论依据吗?我们试着推导一下。

以真实数据为例,2015年9月的时候这个“池子”里一共有大约1420000个号,从里面选出20000个号,一个人中签的概率有多大?稍微想想看,这个数值也不能够是

。因为不是要求1420000个号里找出20000个号一组的不同组合。

假如我参与了摇号,在没有其他政策进行干预而将1420000个号码进行等概率选出的情况下,选出20000个号,而我的号正好在其中。相当于用一个1420000面的骰子,投掷一次,选出一个号,然后把这个号抹掉,再用剩余的1419999个号做成一个1419999的骰子,再投掷一次,选出一个号,然后把这个号再抹掉……一次一次下去,直到20000次为止。实际相当于这么一个过程。

想不清的话我们试试用小一点的数字找找感觉。

如果是有3个人参与摇号,摇出2个,是怎么计算呢?

按照这种扔骰子的方法来玩,假设我们有个3面的骰子(其实真的是没办法做出一个3个面的等概率骰子,我们就当真的能做出来好了)。第一次我被骰子选中的概率为1/3,还有2/3是没被选中的概率。在没选中的情况下,换2个面的骰子,这一次我被骰子选中的概率为1/2。

算算我能被选中的概率一共是多少吧,1/3+(2/3)×(1/2)=2/3。

如果是6个人参与摇号,摇出3个,是怎么计算呢?

仍然用扔骰子的方法来玩,同理:

  • 第一次,选中的概率为1/6,没选中的概率为5/6,现在该换5面的骰子了。
  • 第二次,选中的概率为1/5,没选中的概率为4/5,现在该换4面的骰子了。
  • 第三次,选中的概率为1/4,没选中的概率为3/4,结束。

被选中的概率是多少呢1/6+(5/6)×(1/5)+(4/5)×(1/4)=3/6。

如果有兴趣可以继续用其他例子去算,我们现在直接说结论了,这种情况其实就是用掷骰子的次数除以最开始骰子的总面数,也就是一共选出的次数除以全样本空间的大小。20000/1420000这个答案是没有问题的,也就是中签率不过1.4%左右,一年摇号6次的话,估计运气最差的人要11.8年才能抽中,听到这样的消息现在整个人都不好了。不过别忘了,每个月这个“池子”还在变大,究竟等多久可能只有老天知道了。

03 德州扑克

七零后和八零后的朋友估计对中国香港影星周润发很熟悉,尤其是发哥在《赌神》系列中风流倜傥的表演给人留下很深的印象,其中最后发哥和大BOSS单挑基本玩的都是“梭哈”——英文名称Show Hand。梭哈和我们今天要说的德州扑克在牌点大小比较的规则上是非常近似的。

德州扑克是很多年轻人都喜欢的扑克竞技游戏,全称是Texas Hold'em poker,中文简称德州扑克。我们今天就来研究一下各种牌型出现的概率如何。

对于不熟悉德州扑克规则的朋友来说,还是有必要先简单描述一下德州扑克的规则。

一张台面至少2人,最多22人,一般是由2~10人参加。德州扑克一共有52张牌,没有王牌。每个玩家分两张牌作为“底牌”,五张由荷官(就是专业发牌的)陆续朝上发出的公共牌。开始的时候,每个玩家会有两张面朝下的底牌。经过所有押注圈后,若仍不能分出胜负,游戏会进入“摊牌”阶段,也就是让所剩的玩家亮出各自的底牌以较高下,持大牌者获胜。

  • 第一轮是在每位玩家只能看到自己2张底牌的情况下加注。
  • 第二轮是在每位玩家能看到自己2张底牌,以及桌面上3张公共牌的情况下加注。
  • 第三轮是在每位玩家能看到自己2张底牌,以及桌面上4张公共牌的情况下加注。
  • 第四轮是在每位玩家能看到自己2张底牌,以及桌面上5张公共牌的情况下加注。

最多只会经历这四轮,一局游戏结束。

游戏的输赢就是看玩家自己的2张底牌与桌面上当前已开出的公共牌,一共挑选出5张,组成最“大”的牌,哪位玩家的牌组合最“大”,哪位玩家就获得胜利。

牌的组合大小怎么定义呢?

有些对博弈类游戏有所了解的朋友可能会有一些常识性的体会——那就是,组合出现的可能性越小的通常牌越“大”。那德州扑克里都有哪些组合呢?

第一等:同花大顺

相同花色的A、K、Q、J、10。

第二等:同花顺

相同花色的5张相连。例如,红桃6、7、8、9、10;黑桃9、10、J、Q、K。

第三等:四条

4张相同点数的牌。例如,4张8;4张Q。

第四等:满堂红(也叫葫芦)

3张相同点数的牌,再加2张相同点数的牌。例如,3张5和2张9;3张K和2张10。

第五等:同花

5张相同花色的牌,但不是同花顺。例如,5张都是方块;5张都是梅花。

第六等:顺子

5张点数相连的牌,但至少包含两种花色。例如,方块2、方块3、梅花4、红桃5、红桃6;红桃8、方块9、梅花10、红桃J、黑桃Q。

第七等:三条

3张相同点数的牌,再加2张不同点数的牌。例如,3张9和1张3、1张K;3张Q和1张A,1张6。

第八等:两对

2张相同点数的牌作为一对,两对牌,再加1张单牌。例如,2张5、2张9、1张A;2张10、2张J、1张K。

第九等:一对

2张相同点数的牌作为一对,一对牌,再加3张单牌。例如,2张10、1张7、1张8、一张9;2张A、1张K、1张9、1张5。

第十等:高牌

高牌即单牌,不满足前面九等牌中任何一种的,就只能按照点数大小按顺序决定高低了。A比K大,K比Q大,以此类推,2最小。

我们在这里就试求一下,一个人自己摸牌(没有任何第二个玩家参与的情况下),前三等牌被摸到的概率有多大。

请注意一点,在没有开始摸牌之前,如果牌被洗过若干次(没有其他人为干扰因素)的情况下,牌的发放是随机的。而一旦底牌发放以后,尤其是玩家自己看过牌以后,这个时候的概率计算和我们现在要讨论的这种概率计算是不一样的——显然,一个是完全随机的,一个是有一定条件的,条件就是刚刚看到的那两张底牌,而这种情况我们暂时不讨论。

那么这种情况下,整个选牌的过程中相当于从整副牌52张中选出7张,并从中组合出最大牌的过程,即

=52×51×50×49×48×47×46/(7×6×5×4×3×2×1) =133784560

7张牌的组合一共有133784560种。

1. 同花大顺

在所有的组合中有多少是同花大顺的呢?同花大顺一共就4种,分别是黑桃、红桃、梅花、方块的10、J、Q、K、A。7张牌里面,5张已经确定,另外两张怎么选都无所谓。以黑桃为例,黑桃的同花大顺选出后,其实还有47张牌没有发,挑出两张即

=47×46/(2×1)=1081

同理,红桃、梅花、方块的同花大顺也是一样的,都是1081种组合。则同花大顺共计有4324种组合。听着挺多的是吧,别忘了一共133784560种组合,除一下得到结果

4324/133784560=0.00323%

2. 同花顺

同花顺有多少种情况呢?以黑桃为例,假设A~5组成同花顺,黑桃6是不能发的,还剩下46张可以组合,则这种情况下组合数量这样计算

=46×45/(2×1)=1035

2~6组成同花顺,7是不能发的,A可以发(A充作散牌),所以还是

=1035

以此类推,黑桃的组合为A~5,2~6……9~K,一共9种,那么黑桃一种花色的牌型种类就为

1035×9=9315

四种花色的组合数就是

9315×4=37260

除一下得到结果概率

37260/133784560=0.0279%

网上还有一种算法说是

38916/133784560=0.0291%

这种算法是有问题的。错误发生的地方大概在这里:“以黑桃为例,A~5,2~6……9~K,一共9种,47张里挑出两张,计算一下

=47×46/(2×1)=1081

那么黑桃的同花顺的牌型一共是

1081×9=9729

同理,红桃、梅花、方块的同花顺也是一样的,都是9729种组合,共计38916种组合,除一下得到结果

38916/133784560=0.0291%

这里一旦选好了5张牌作为“核心组合”以后,其他牌的选择其实不是自由的,因为有的牌配进来以后就发现这个我们一开始就认定的组合不是最后在台面上最大的牌。这个地方需要注意一下。

3. 四条

四条有多少种呢,计算方法类同,4张已经确定,还有48张没有发

=48×47×46/(3×2×1)=17296

注意这里4张的组合有多少种——13种,所以四条可能出现的组合数量为

17296×13=224848

除一下得到结果

224848/133784560=0.168%

虽然看上去机会仍然很渺茫,但是比同花大顺和同花顺的概率还是大了不少是不是?

其他的组合方式大家有兴趣可以自己慢慢去算,网上也有现成算好的对照表。

提示一下,像两对牌这种的比较难算,因为情况比较复杂。它复杂的地方在于在满足两对牌的情况下,还要将满足同花大顺、同花顺、四条、满堂红、同花、顺子、三条的情况全部剔除才行。两对牌的牌型为31433400种,概率为23.5%。还有一些其他形式的对照表,就是在手里底牌为已知固定组合的情况下,最终与公共牌组合成为各等牌的概率。

这里温馨提醒一下各位牌友,刚刚我们计算的概率是在一个人自己摸牌的情况下产生的概率。一旦是5个人,10个人玩的时候就大不相同了,有一点是确定的,人越多公共牌和其他玩家一起组成的牌的种类可能性也越多,“罕见组合”在一局中出现的可能性也比一个人自己摸牌要高很多,请一定注意哦。

关于作者:高扬,金山软件西山居资深大数据架构师与大数据专家,有多年编程经验和多年大数据架构设计与数据分析、处理经验,目前负责西山居的大数据产品市场战略与产品战略。

卫峥,西山居软件架构师,多年的软件开发和架构经验,精通C/C++、Python、Golang、JavaScript等多门编程语言。

尹会生,西山居高级系统工程师。曾任新浪研发中心技术经理、北京尚观科技高级讲师。擅长企业集群解决方案和内核调优经验,并提供高性能和高可用性集群咨询服务。

万娟,星盘科技有限公司UI设计师平面,对VI设计、包装、海报设计等、商业插画、App交互、网页设计等有独到认识。

本文摘编自《白话大数据与机器学习》,经出版方授权发布。

延伸阅读《白话大数据与机器学习》

点击上图了解及购买

转载请联系微信:togo-maruko

推荐语:以降低学习曲线和阅读难度为宗旨,重点讲解了统计学、数据挖掘算法、实际应用案例、数据价值与变现,以及高级拓展技能,清晰勾勒出大数据技术路线与产业蓝图。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2018-09-05,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 大数据DT 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Altium designer总结
大概有半年没有画过PCB板了,最近突然又要画一个简单的小板子,却发现好多东西已经不是很熟练了,现在把Altium designer软件的使用中要注意的问题和一些小技巧贴出来,方便自己记忆,同时也供大家探讨。 说明: (1)Altium designer中快捷键非常的多,每一个按键下面的画上下划线的字母都是一个快捷键(其实所有快捷键都在下面的help--shortcut中) (2)界面的缩放:按下鼠标滚轮同时移动 (3)本人使用的版本为6.9 1、建立工程并向工程中添加原理图文件和PCB文件,并保存工程和文件
用户1215536
2018/02/05
1.8K0
Altium designer总结
Altium_Designer的使用
​内容包括原理图、PCB图绘制方法,封装制作以及DRC规则的使用、图纸的打印、出错处理,3D元件体建立教程及相应的3D封装下载等。持续更新,原创不易!
爱上电路设计
2023/09/05
2K0
Altium_Designer的使用
Altium Designer PCB制作入门实例
概要: 本章旨在说明如何生成电路原理图、把设计信息更新到PCB文件中以及在PCB中布线和生成器件输出文件。并且介绍了工程和集成库的概念以及提供了3D PCB开发环境的简要说明。 欢迎使用Altium Designer,这是一个完善的适应电子产品发展的开发软件。本章将以"非稳态多谐振荡器"为例,介绍如何创建一个PCB工程。
RainMark
2019/09/10
3.9K0
Altium Designer原理图封装批量工具使用步骤
有些芯片的引脚数量数量比较多,官方有的会提供封装,有的会提供一个excel表格或者txt。使用excel表格配合AD的工具可以批量绘制原理图封装。步骤如下:
用户9736681
2023/09/01
6760
Altium Designer原理图封装批量工具使用步骤
Altium Designer 入门教程
我本身是硬件出身的,最开始接触的是protel 99SE,非常轻量,用来画一些简单的电路图作为入门是可以的,之后做比赛接触到了Altium Designer(以下简称 AD),其实 AD 对于我们现阶段的使用其实是够用了,网上很多人说Candence很厉害,包括我身边以前实验室的朋友都夸它好,有人夸说明肯定又优势,但是都是一门工具,要我说,武功再好,也怕菜刀,工具趁手,就是好工具。
全栈程序员站长
2022/09/14
2K0
Altium Designer 入门教程
Altium Designer
🚀write in front🚀 ---- 🔎大家好,我是泽En,希望你看完之后,能对你有所帮助,不足请指正!共同学习交流🔎 🏅嵌入式领域新星创作者→2021年度博客之星物联网与嵌入式开发TOP5→2021年博客之星TOP100→周榜34→总榜2815🏅 🆔本文由 泽En 原创 CSDN首发🐒 如需转载还请通知⚠ 📝个人主页:打打酱油desu_泽En_CSDN博客🎓 🎁欢迎各位→点赞👍 + 收藏⭐️ + 留言📝​ 📣系列专栏:【Altium Designer】系列_打打酱油desu-CSDN博
謓泽
2022/12/12
1.2K0
Altium Designer
altium designer绘制51单片机最小系统
4、新建PCB库,并给原理图库中我们所用到的每一个元件,绘制PCB封装,当然对于常用元件,AD已经自带PCB封装,这种情况显然不用自绘PCB封装了。后缀为pcbLib.
全栈程序员站长
2022/09/10
4.3K0
altium designer绘制51单片机最小系统
【Altium Designer】AD18 导入3D模型
· 下载3D模型文件 网站1: https://www.3dcontentcentral.cn/default.aspx (3D Contentcentral 最常用) 网站2: https://componentsearchengine.com/index.html 网站3: https://www.snapeda.com/home/ 以 网站1 为例,下载3D模型文件 格式:默认格式即可,SolidWorks Part 版本:注意和自己的 AD 版本相同,如果没有相同的,尽量选择较低版
AXYZdong
2020/10/29
3.3K0
【Altium Designer】AD18 导入3D模型
一文读懂目标检测中的anchor free 和anchor base
作者丨龙场悟道 来源丨知乎https://zhuanlan.zhihu.com/p/273646465 编辑丨AiCharm
AiCharm
2023/06/07
10.1K0
一文读懂目标检测中的anchor free 和anchor base
Z-BlogPHP开运锦鲤前来报道(更新说明及操作教程,必看文章)
历时一个多月的锦鲤主题,终于完成了。2019首发Z-blogPHP锦鲤主题模板(Koilee · 开运锦鲤),部分模块移植WP主题,目前主题已经完善,主题简洁、大气,适合个人博客及文章写作等,先介绍主题吧。
雾海梦曦
2022/11/04
3.8K0
Z-BlogPHP开运锦鲤前来报道(更新说明及操作教程,必看文章)
ESP32-C3设计汇总
首先是ESP32-C3只支持BLE,也就是数据是以packet出现的。不支持普通的蓝牙,也就是数据的处理的时候是可以字符串去操作的。
云深无际
2024/08/20
4620
ESP32-C3设计汇总
计算机文化基础 第一部分 1.1 信息与信息技术 1.1.1信息与数据 信息的概念: 一般认为:信息是在自然界、人类社会和人类思维活动中普遍存在的一切物质和事物的属性。 信息能够用来消除事物不
信息的概念:  一般认为:信息是在自然界、人类社会和人类思维活动中普遍存在的一切物质和事物的属性。  信息能够用来消除事物不确定的因素
青灯古酒
2023/10/16
2.6K0
思维导图☆三招十八式「建议收藏」
思维导图三招十八式 http://www.795.com.cn/wz/55075.html 思维导图三招十八式之一:思维导图进行资料整理
全栈程序员站长
2022/11/01
1.5K0
这次不从零了五万字带您,从负零玩转腾讯AI绘画图像生成搭建前后端分离项目
最近 AIGC 火出圈了还记得上次在群里面的大佬们聊到了 AIGC 的话题我滴妈涉及到我的知识盲区了知识听过这个东西就是生成图片所以不怎么感冒.然后最近腾讯云开发者社区发布了腾讯云AI技术专家与传智教育人工智能学科高级技术专家正在联合打造《腾讯云AI绘画-StableDiffusion图像生成》训练营,训练营将通过8小时的学习带你玩转AI绘画的教程我也就去深入了一下. 感兴趣的大佬快来报名学习呀~
杨不易呀
2023/12/10
3.7K28
这次不从零了五万字带您,从负零玩转腾讯AI绘画图像生成搭建前后端分离项目
c#实战教程_ps初学者入门视频
大家好,又见面了,我是你们的朋友全栈君。 C#基础教程-c#实例教程,适合初学者。 第一章 C#语言基础 本章介绍C#语言的基础知识,希望具有C语言的读者能够基本掌握C#语言,并以此为基础,能够进一步学习用C#语言编写window应用程序和Web应用程序。当然仅靠一章的内容就完全掌握C#语言是不可能的,如需进一步学习C#语言,还需要认真阅读有关C#语言的专著。 1.1 C#语言特点 Microsoft.NET(以下简称.NET)框架是微软提出的新一代Web软件开发模型,C#语言是.NET框架中新一代的开发工具。C#语言是一种现代、面向对象的语言,它简化了C++语言在类、命名空间、方法重载和异常处理等方面的操作,它摒弃了C++的复杂性,更易使用,更少出错。它使用组件编程,和VB一样容易使用。C#语法和C++和JAVA语法非常相似,如果读者用过C++和JAVA,学习C#语言应是比较轻松的。 用C#语言编写的源程序,必须用C#语言编译器将C#源程序编译为中间语言(MicroSoft Intermediate Language,MSIL)代码,形成扩展名为exe或dll文件。中间语言代码不是CPU可执行的机器码,在程序运行时,必须由通用语言运行环境(Common Language Runtime,CLR)中的既时编译器(JUST IN Time,JIT)将中间语言代码翻译为CPU可执行的机器码,由CPU执行。CLR为C#语言中间语言代码运行提供了一种运行时环境,C#语言的CLR和JAVA语言的虚拟机类似。这种执行方法使运行速度变慢,但带来其它一些好处,主要有:  通用语言规范(Common Language Specification,CLS):.NET系统包括如下语言:C#、C++、VB、J#,他们都遵守通用语言规范。任何遵守通用语言规范的语言源程序,都可编译为相同的中间语言代码,由CLR负责执行。只要为其它操作系统编制相应的CLR,中间语言代码也可在其它系统中运行。  自动内存管理:CLR内建垃圾收集器,当变量实例的生命周期结束时,垃圾收集器负责收回不被使用的实例占用的内存空间。不必象C和C++语言,用语句在堆中建立的实例,必须用语句释放实例占用的内存空间。也就是说,CLR具有自动内存管理功能。  交叉语言处理:由于任何遵守通用语言规范的语言源程序,都可编译为相同的中间语言代码,不同语言设计的组件,可以互相通用,可以从其它语言定义的类派生出本语言的新类。由于中间语言代码由CLR负责执行,因此异常处理方法是一致的,这在调试一种语言调用另一种语言的子程序时,显得特别方便。  增加安全:C#语言不支持指针,一切对内存的访问都必须通过对象的引用变量来实现,只允许访问内存中允许访问的部分,这就防止病毒程序使用非法指针访问私有成员。也避免指针的误操作产生的错误。CLR执行中间语言代码前,要对中间语言代码的安全性,完整性进行验证,防止病毒对中间语言代码的修改。  版本支持:系统中的组件或动态联接库可能要升级,由于这些组件或动态联接库都要在注册表中注册,由此可能带来一系列问题,例如,安装新程序时自动安装新组件替换旧组件,有可能使某些必须使用旧组件才可以运行的程序,使用新组件运行不了。在.NET中这些组件或动态联接库不必在注册表中注册,每个程序都可以使用自带的组件或动态联接库,只要把这些组件或动态联接库放到运行程序所在文件夹的子文件夹bin中,运行程序就自动使用在bin文件夹中的组件或动态联接库。由于不需要在注册表中注册,软件的安装也变得容易了,一般将运行程序及库文件拷贝到指定文件夹中就可以了。  完全面向对象:不象C++语言,即支持面向过程程序设计,又支持面向对象程序设计,C#语言是完全面向对象的,在C#中不再存在全局函数、全局变量,所有的函数、变量和常量都必须定义在类中,避免了命名冲突。C#语言不支持多重继承。 1.2 编写控制台应用程序 使用SDK命令行工具编写控制台程序 第一个程序总是非常简单的,程序首先让用户通过键盘输入自己的名字,然后程序在屏幕上打印一条欢迎信息。程序的代码是这样的: using System;//导入命名空间。//为C#语言新增解释方法,解释到本行结束 class Welcome//类定义,类的概念见下一节 { /*解释开始,和C语言解释用法相同 解释结束*/ static void Main()//主程序,程序入口函数,必须在一个类中定义 { Console.WriteLine(“请键入你的姓名:”);//控制台输出字符串 Console.ReadLine();//从键盘读入数据,输入回车结束 Console.WriteLine(“欢迎!”); } } 可以用任意一种文本编辑软件完成上述代码的编写,然后把文件存盘,假设文件名叫做welcome.c
全栈程序员站长
2022/09/30
16.3K0
OpenCV3 和 Qt5 计算机视觉:6~10
它始终以未经处理的原始图像开始,这些图像是使用智能手机,网络摄像头,DSLR 相机,或者简而言之,是能够拍摄和记录图像数据的任何设备拍摄的。 但是,通常以清晰或模糊结束。 明亮,黑暗或平衡; 黑白或彩色; 以及同一图像数据的许多其他不同表示形式。 这可能是计算机视觉算法中的第一步(也是最重要的步骤之一),通常被称为图像处理(目前,让我们忘记一个事实,有时计算机视觉和图像处理可互换使用;这是历史专家的讨论。 当然,您可以在任何计算机视觉过程的中间或最后阶段进行图像处理,但是通常,用大多数现有设备记录的任何照片或视频首先都要经过某种图像处理算法。 这些算法中的某些仅用于转换图像格式,某些用于调整颜色,消除噪点,还有很多我们无法开始命名。 OpenCV 框架提供了大量功能来处理各种图像处理任务,例如图像过滤,几何变换,绘图,处理不同的色彩空间,图像直方图等,这将是本章的重点。
ApacheCN_飞龙
2023/04/27
2.9K0
Python OpenCV3 计算机视觉秘籍:1~5
计算机视觉算法消耗并产生数据-它们通常将图像作为输入并生成输入的特征,例如轮廓,感兴趣的点或区域,对象的边界框或其他图像。 因此,处理图形信息的输入和输出是任何计算机视觉算法的重要组成部分。 这不仅意味着要读取和保存图像,还要显示有关其功能的其他信息。
ApacheCN_飞龙
2023/04/27
2.1K0
OpenCV2 计算机视觉应用编程秘籍:1~5
本章将教您 OpenCV 的基本元素,并向您展示如何完成最基本的任务:读取,显示和保存图像。 在开始使用 OpenCV 之前,需要安装该库。 这是一个简单的过程,将在本章的第一部分中进行说明。
ApacheCN_飞龙
2023/04/27
3.4K0
Python3 OpenCV4 计算机视觉学习手册:6~11
与人眼和大脑相似,OpenCV 可以检测图像的主要特征并将其提取到所谓的图像描述符中。 然后可以将这些特征用作数据库,从而启用基于图像的搜索。 此外,我们可以使用关键点将图像拼接在一起并组成更大的图像。 (请考虑将许多图片组合在一起以形成 360° 全景图。)
ApacheCN_飞龙
2023/04/27
4.6K0
Python3 OpenCV4 计算机视觉学习手册:6~11
JavaSE 编写第一个程序
介绍 JavaSE 基础的基本语法知识,不会包含特别难以理解或更深层次的内容,通俗易懂。本人是实战派,看着大幅篇章晦涩的理论,但是没有多少实践证明的书籍就头疼;同时如果知识东一点、西一点,跳跃性太大,不成体系,也比较麻烦。
全栈程序员站长
2022/09/14
6.8K0
JavaSE 编写第一个程序
推荐阅读
相关推荐
Altium designer总结
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档