java判断素数为什么要假设(java中求一个数的各个完数因子)

技术Java概率论的计数方法是什么本篇内容主要讲解“Java概率论的计数方法是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Java概率论的计数方法是什么”吧!概率概率论

本文主要讲解“Java概率论的计数方法是什么”。感兴趣的朋友不妨看看。本文介绍的方法简单、快速、实用。让边肖带你学习“Java概率论的计数方法是什么”!

概率

概率论研究随机事件。它来自赌徒的研究。随机事件很多,比如扔一个。只是运气吗?

赌徒逐渐发现随机事件的规律。扔两个是常见的游戏。如果重复多次,2的总次数将少于7的总次数。这是赌徒把握的规律:虽然我无法预测事件的具体结局,但我可以知道每个结局的可能性。这是概率论的核心。

“概率”到底是什么?这在数学界还是有争议的。“频率学派”认为,概率是重复尝试次数和某一结果出现的次数与总尝试次数的比值。“贝叶斯学派”认为概率是主观信念的强度。幸运的是,这些争议并不影响我们在日常生活中对“概率”哲学的运用。当预报降雨概率为80%时,很多人会带伞。报纸会分析某支球队在一场比赛中获胜的概率。如果最终获胜概率为10%的球队获胜,那么球迷会感到惊讶。这毕竟是一个小概率事件。

知道某个结果的概率并不容易。分析球队获胜概率要考虑的因素很多。一票有六种可能的结果。很多原因都会影响结果,比如说撒布者是否均匀,比如说撒布者是否有技能偏向。只有绝对统一,没有作弊,每个结果的概率才能一样。否则,不可能给结果一个确定的概率值。因此,为了给结果赋予一个数学上的概率,我们经常给随机事件加上一些假设。这些条件是理想主义的,但并不背离现实。比如我们说扔种子是偶数,扔种子的人没有什么特殊的技术,我们推断每个结果可能都是一样的。那么,这些结果中任何一个的概率都是1/6。

Java概率论的计数方法是什么

基本计数原理

上面我们讲了“等概率”的假设。如果每个结果的概率相同,那么给结果分配概率的任务就变得更简单了。在计算这个概率时,我们只需要等待概率相等的结果总数,就可以知道每个结果的概率。比如掷骰子会有六种结果。如果概率相等,每个结果的概率是1/6。对于一些复杂的情况,需要运用计数技巧。

计数的基本原理描述如下:

如果一个实验可以分成m个步骤,每个步骤有n1,n2,nmn1,n2,nm的可能性,那么就会有共。

n1n2.nmn1n2.nm

可能的结果。

基本技术原理的核心是“循序渐进”。对于一个简单的一步到位的事情,我们可以比较直接解析结果的总数。比如孩子的性别,比如一枚硬币的利弊,比如一个孩子的结果。当一个随机事件由多个步骤组成,并且每个步骤都是随机的,那么分布可以简化问题的复杂性。想象一下,一家有三扇窗户的餐馆,卖三种饮料、五种菜肴和两种主食。每个学生在每个窗口只能选择一个,因此学生的餐饮套餐中有30种可能的结果,即3x5x2。如果每个窗口的主人独断专行,盛气凌人,随意给学生一些东西,那么我们甚至可以假设等概率条件,每种餐饮球拍的概率都是1/30。

(当然,作为学生,你会抗议这样“随意”的食堂吗?)

基本计数原理的应用不限于概率论。当程序员分析算法时,他们实际上使用计数。比如嵌套循环,外循环需要m步,内循环需要n步,所以操作总数为MxN次。可以说,计数是离散数学中非常重要的一部分。离散数学是计算机专业的核心数学课程。

基本的计数原理是思维的起点。现实中的情况往往变化更大。尤其是当我们的“分配”行为都作用于同一个群体时,就会相对复杂。我们对以下情况进行分类和理解:

00-1010考虑以下两个问题:

连续两次一掷。有多少种可能的结果?

有六个可选数字,每个数字可以是0到9。有多少种可能的结果?

我们可以看到,这种采样结果是由多次采样组成的。每次采样的样本也可能在下次出现。例如,第一次是1,第二次可能是1。这被称为重复采样(或替换采样)。在的示例中,每个采样有六种可能的结果。

样本出现的顺序会影响结果。例如,(1,2)(1,2)和(2,1)(2,1)是两个不同的结果。

数学上,如果有m次带返回的采样,那么每次采样有n种可能性。如果最后的结果是有序的,那么就会有

nmnm

也许吧。

我们模拟下面的例子:

导入工具

a=[1,2,3,4,5,6]

outcomes=list(ITER tools . product(a,a))print(outcomes)print(len(outcomes))返回36个可能的结果3360。

[(1,1),(1,2),(1,3),

 (1, 4), (1, 5), (1, 6), 
 (2, 1), (2, 2), (2, 3), (2, 4), (2, 5), (2, 6), 
 (3, 1), (3, 2), (3, 3), (3, 4), (3, 5), (3, 6), 
 (4, 1), (4, 2), (4, 3), (4, 4), (4, 5), (4, 6), 
 (5, 1), (5, 2), (5, 3), (5, 4), (5, 5), (5, 6), 
 (6, 1), (6, 2), (6, 3), (6, 4), (6, 5), (6, 6)]
36

如果每种结果的出现概率相同,那么对于其中的某个具体结果来说,它出现的概率P=1/36P=1/36。

有序的非重复抽样

考虑下面两个问题:

  • 从4个人中,挑出2个人分别担任队长和副队长,有多少种可能?

  • 从10们课种,挑选3门,分别放入周一、周三、周五的课表,有多少种可能?

可以看到,这样的抽样是没有重复的。某一次抽样的样本在此后不会出现,前面一个步骤的动作减少了后面一个步骤的选择,这叫做非重复抽样。在非重复的前提下,每次抽样可能的结果数递减,比如从4个人中选一个作为队长,那么副队长只能从3个人中选择。

同样,结果是有序的。A担任队长,B担任副队长,与A担任副队长,B担任队长,是两个不同结果。

有序的非重复抽样又叫做排列(permutation)。从数学上来说,从n个样品中挑选m个,放入m个位置,将有

n×(n−1)×...×(n−m+1)n×(n−1)×...×(n−m+1)

种可能。如果我们使用阶乘(factorial)运算符,那么结果可以表示为

n!(n−m)!n!(n−m)!

其中,n!=1×2×...×(n−1)×nn!=1×2×...×(n−1)×n。

我们用下面的程序来模拟队长组合的状况:

import itertools
a = ["Tom", "Lee", "King", "James"]
outcomes = list(itertools.permutations(a, 2))print(outcomes)print(len(outcomes))

结果为

[('Tom', 'Lee'), ('Tom', 'King'), ('Tom', 'James'), 
 ('Lee', 'Tom'), ('Lee', 'King'), ('Lee', 'James'), 
 ('King', 'Tom'), ('King', 'Lee'), ('King', 'James'), 
 ('James', 'Tom'), ('James', 'Lee'), ('James', 'King')]

共有12种可能的结果。

无序的非重复抽样

考虑下面的问题:

  • 从4个人中抽出2个人,有多少种可能?

  • 从一副中抽3张牌,有多少种可能?

在上面的问题中,每次抽样同样是非重复的。但这里,抽样结果是无序的。比如说,抽出"Lee"和"Tom",以及抽出"Tom"和"Lee",是同一个结果。这样的抽样方式叫做组合(combination)。

m个样品有m!m!种排列方式。如果是从n个样品中抽取m个作为组合,所有的这m!m!种排序方式应该看做一种。因此,有

n!(n−m)!m!n!(n−m)!m!

种可能结果。我们可以用下面的方式记录组合:

(nm)=n!(n−m)!m!(nm)=n!(n−m)!m!

 

我们下面来模拟第一个问题:

import itertools
a = ["Tom", "Lee", "King", "James"]
outcomes = list(itertools.combinations(a, 2))print(outcomes)print(len(outcomes))

有以下结果

[('Tom', 'Lee'), ('Tom', 'King'), ('Tom', 'James'),
 ('Lee', 'King'), ('Lee', 'James'),
 ('King', 'James')]

可以看到,从4个中挑选2个,有6种可能的组合。这是排列的一半。

组合的问题可以进一步延伸。比如,将9个球分为1, 3, 5个的三堆,有多少种方式?这相当于从9个球中抽取1个,再从剩下的8个球中抽取3个,最后剩下的5个为一堆。可以证明,结果为

9!1!3!5!9!1!3!5!

类似的,将n个球分为n1,n2,...,nmn1,n2,...,nm个的堆,其中n=n1+n2+...+nmn=n1+n2+...+nm。将有

n!n1!n2!...nm!n!n1!n2!...nm!

种可能。

无序的重复抽样

考虑下面的问题:

  • 刮奖有4种奖品。购买3张的话,有多少种中奖可能?

在上面的每次抽样中,都是重复抽样,即抽出后有放回。比如刮奖中,可以多次刮到同一奖品。我们在一个表中记录结果:

台灯 手表 电脑 汽车
可能1 3 0 0 0
可能2 2 0 1 0
可能3 0 1 1 1

可以看到,我们实际上是将3张分成4份,每份的数目不定(≥0)(≥0)。

这与下面的问题类似,将5个相同物品放入三个不同的容器中:

Java概率论的计数方法是什么

我们用2个黑色分隔物,来将5个相同的物品分为3堆。比如这里,将物品分为(0, 2, 3)的结果。

从7个位置中挑选2个作为分割物的位置,共有

(72)(72)

种可能。

概括来讲,从n个样品中,无序的重复抽样m次,有

(n+m−1m−1)(n+m−1m−1)

种可能。

阶乘与组合

我们在上面多次使用了阶乘运算,在Python中,它可以使用math.factorial实现:

import mathprint(math.factorial(5))

此外,组合可以使用scipy.misc.comb来近似计算,比如:

import scipy.miscprint(scipy.misc.comb(4, 2))

到此,相信大家对“Java概率论的计数方法是什么”有了更深的了解,不妨来实际操作一番吧!这里是网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/154660.html

(0)

相关推荐

  • 如何利用Springboot+Dubbo构建分布式微服务

    技术如何利用Springboot+Dubbo构建分布式微服务本篇内容主要讲解“如何利用Springboot+Dubbo构建分布式微服务”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家

    攻略 2021年11月12日
  • 站内链接有什么作用

    技术站内链接有什么作用这篇文章主要介绍“站内链接有什么作用”,在日常操作中,相信很多人在站内链接有什么作用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”站内链接有什么作用”的疑惑有所帮助!

    攻略 2021年11月2日
  • Oracle11g报警功能识别是否会忽略或吞掉错误的程序

    技术Oracle11g报警功能识别是否会忽略或吞掉错误的程序Oracle11g报警功能识别是否会忽略或吞掉错误的程序,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易

    攻略 2021年11月29日
  • java中实现时间差的计算

    技术java中实现时间差的计算 java中实现时间差的计算java中实现时间差的计算
    代码编写
    package com.excel.demo;import java.text.DateFormat;
    i

    礼包 2021年12月6日
  • web前端实习生面试题有哪些

    技术web前端实习生面试题有哪些这篇文章主要介绍“web前端实习生面试题有哪些”,在日常操作中,相信很多人在web前端实习生面试题有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”web

    攻略 2021年11月18日
  • 写朋友深厚友情的诗句,10 形容友谊深厚的诗句

    技术写朋友深厚友情的诗句,10 形容友谊深厚的诗句为什么我首先想到的是孔子的“无友不如已者”……当然,这个观点容易带偏人写朋友深厚友情的诗句。古人:朋友,以义合者 ——朱熹
    近代:在背后称赞我们的人,就是我们的良友。

    生活 2021年10月28日