精华内容
下载资源
问答
  • 真随机
    千次阅读
    2020-05-22 22:41:09

    今日份离散学习:伪随机与真随机有什么不同?

    随机很有趣。
    真随机:你脑子里随便想几个数,想说啥说啥,这些数都没有联系,各个之间都是相互独立的。
    伪随机:随机数是由随机种子根据一定的计算方法计算出来的数值。所以,只要计算方法一定,随机种子一定,那么产生的随机数就不会变。计算机常常以时间作为随机数种子,那计算后产生的数字看起来就是随机的。
    我们希望我们产生的伪随机数具有均匀性,我们希望我们产生的伪随机数具有独立性,不能在多个伪随机数之间产生内在联系从而让别人分析得出伪随机数产生的规律。但是归根结底,计算机产生随机数这件事,以我们目前的水平难以完美实现。
    下面摘了个例子
    真随机:有一天,小明在的班级上举办了一次抽奖活动。这个班级有40个学生,所以为了公平起见,保证每个学生都有1/40的几率中奖,老师准备了40个相同的纸盒,每个纸盒中都有40张纸条,有1张纸条是中奖纸条。这样一来,每个学生都有1/40的几率中奖,但每个学生是否中奖并不受其他学生的影响。在极端情况下,这个班上可能40个学生都能中奖。这就是真随机。
    伪随机:小明班上举办了抽奖活动。为了公平起见,老师准备了1个纸盒,纸盒中有40张纸条,只有1张纸条是中奖纸条。这样一来,每个学生都有1/40的几率中奖——但是显而易见,这个班上有且仅有一名学生能够中奖。一名学生在中奖后,余下的所有学生中奖几率都会减少至0。这就是伪随机。
    但实际上我并没有很理解这个例子。

    更多相关内容
  • 真随机发生数的设计,纯数字电路设计。设计模块占门级资源少,产生速度快。数据相关性高,能够通过美国各项指标。
  • 为什么游戏里的都是伪随机,做不出真随机?希望来个简单易懂的解释?我发现像LOL这些游戏,暴击机制都是伪随机的,前面几下没暴击,后面暴击几率很大概率。像王者荣耀更为明显,都可以卡暴击。因为这样可以在保证...

    为什么游戏里的都是伪随机,做不出真随机?希望来个简单易懂的解释?

    我发现像LOL这些游戏,暴击机制都是伪随机的,前面几下没暴击,后面暴击几率很大概率。像王者荣耀更为明显,都可以卡暴击。

    因为这样可以在保证总体概率完全不变的前提下,「极端好运」和「极端霉运」都尽可能变少,让每个玩家的运气成分降低,保证双方的体验。

    “劫富济贫”的「伪随机」可以让欧皇更讲基本法,让非酋有最基本的游戏体验。

    按照真实概率来做游戏的话,体验只会更差,那才是真恶心一次记住一年。(回答仅针对同一个概率数值的情况分析,不包括抽卡手游出货…)

    举例来说,来比较20%的概率,分辨使用「真随机」和「伪随机」情况下,是2种不同的计算模式。

    真随机的20%运作模式:每一下发生概率都是20%,每次都独立计算。

    伪随机的20%运作模式:第1下发生概率为5.6%,若发生了则下一次继续按第1下5.6%算,若没发生则下一次概率+5.6%,比如第2下为11.2%,再不中的话第3下为16.8%,以此类推,直至发生后回到第1下5.6%。若概率累积超过100%,则视为下次必定发生。

    5.6%这个数是可以用计算机算出来的,足以保证两种模式的发生概率是相同的,这个就不赘述了。每个概率和上面的数值都有一一对应的数值解(用计算机直接硬算就ok了,最简单的二分法都可行)。

    6929c0fa6c3d3d921284441d2ed902d4.jpeg

    那看看20%的概率两种模式下「好运」和「霉运」的分布。

    我们先来看极度好运:

    20%概率好运情况

    连续2次触发

    连续3次触发

    连续4次触发

    真随机

    4.0%

    0.80%

    0.16%

    伪随机

    0.31%

    0.018%

    0.00098%

    可以发现,伪随机模式下,出现极端好运的可能性大大降低了。

    再来看看相对霉运发生的概率:

    20%概率霉运情况

    连续6次不触发

    连续12次不触发

    连续18次不触发

    真随机

    26.2%

    6.87%

    1.80%

    伪随机

    25.9%

    0.239%

    完全不可能发生

    若第6下开始还没有发生,「伪随机」会极大的提高发生概率,保证玩家尽早触发一次;而第18下的保底彻底保证了再非也不可能18下都不中。

    「真随机」则是继续特立独行。同样的20%概率,有0.8%可能会连续触发3次,又有1.8%的概率会连续18次都不触发…

    也就是说20%概率极度霉运前提下,如果尝试100个回合的「连续攻击18次」,其中有数学期望1.8个回合的会发生完全不触发,这个概率其实真的不算很低了…

    可以发现「伪随机」在保留随机性前提下,比「真随机」要保证双方游戏体验。

    用真随机,很多游戏体验只会更糟糕。

    比如对于《俄罗斯方块》,如果用真随机,那只要你玩得足够多,肯定会碰到连续30个不下来竖棒子的情况,有时又碰到10个里面出6个竖向棒子…哪种都是非常蛋疼的。

    而对战类游戏就更加了,比如《DOTA2》里的PA这种带暴击英雄,暴击几率15%如果用真随机,玩家的心理预期可能是6-7刀暴击一次,但实际上连续32刀不暴击的概率也有0.55%…更不要说虚空这种英雄,如果用真随机,那一定会出现比现在多得多得多的「对方虚空敲你一锤子,你直接满血被木大致死」的情况…

    以上任何一种碰上一次可能就足够把人恶心到删了游戏,素质差的可能会想跟游戏制作人他妈连麦(x

    只能简单举些例子,可能不那么直观,其中还涉及到「随机」和人们的心理上误解为「平均」等等,这里不展开了。

    展开全文
  • 真随机与伪随机

    2019-10-21 11:34:13
    真随机:即我们常见意义上的随机事件,事件发生的概率是独立的。例如抛硬币,每次出现1的概率都是1/6,与之前几次抛几次的结果无关。 伪随机:真随机对于人类来说有些不近人情,例如在某些抽卡游戏中,如果是真随机...

    真随机:即我们常见意义上的随机事件,事件发生的概率是独立的。例如抛硬币,每次出现1的概率都是1/6,与之前几次抛几次的结果无关。
    伪随机:真随机对于人类来说有些不近人情,例如在某些抽卡游戏中,如果是真随机的话,有些人运气不好,可能抽几百次也抽不到SSR。为了照顾人的感受,引入了伪随机。
    伪随机分为以下几类:

    1. (Pseudo Random Distribution)PRD,通常用于游戏中计算概率,为了平衡一些极端情况对游戏体验的影响(例如Dota中虚空先知有百分之25的概率免疫所有伤害,如果有人运气特别好,一个丝血的JB脸,就是死不掉,会很让对面崩溃),所以设计师引入了伪随机:例如第一次JB脸被攻击时,不是有25%的概率躲掉,而是10%,如果这次没躲掉,那么下次概率躲掉的概率变为20%,再变为30%。个人认为可能阴阳师抽卡也是伪随机
    2. 洗牌算法。例如音乐播放器中常见的“随机播放”,如果是真随机的话,有可能出现一首歌你永远都听不到,或者不停的播放同一首歌(极端情况)。所以播放器的做法是像洗牌一样把这些歌打乱顺序,然后按顺序播放这个乱序数组。

    另外要说的是计算机中产生随机数的方法,叫赝随机数算法(Pseudo-Random Number Generator,简称PRNG),由于计算机中只有确定的0和1,所以要产生真正的随机数是不可能的,通过随机数算法得到的只是看起来像是,即如果输入随机数算法的值是一样的,那么得到的随机数也是一样的。

    展开全文
  • 鼠标真随机连点器

    2016-05-31 15:37:07
    可设置毫秒,可用于网络游戏随机强化装备等
  • RANDI_ORG 函数的用法与 RANDI 函数类似。 但是,它不会返回伪随机数... 有关伪随机性和真随机性之间差异的讨论,请参阅网站。 请注意, http://www.random.org允许每天的流量有限,请查看该站点以了解更多详细信息。
  • Golang 伪随机/真随机取某个范围内的随机数 ???? Tue, 13 Nov 2018 by GolangNote golang 内置能实现伪随机(math/rand)和真随机(crypto/rand)的库。 真随机和伪随机概念 先大概了解一下伪随机和真随机的概念。根据...

    Golang 伪随机/真随机取某个范围内的随机数
    🕚 Tue, 13 Nov 2018 by GolangNote
    golang 内置能实现伪随机(math/rand)和真随机(crypto/rand)的库。

    真随机和伪随机概念
    先大概了解一下伪随机和真随机的概念。根据密码学原理,要想对一个“随机数”进行随机性检验有以下几个标准:

    统计学伪随机性 - 在给定的随机比特流样本中,1 的数量大致等于 0 的数量,也就是说,“10”“01”“00”“11” 四者数量大致相等。说人话就是:“一眼看上去是随机的”。
    密码学安全伪随机性 - 就是给定随机样本的一部分和随机算法,不能有效的演算出随机样本的剩余部分。
    真随机性 - 其定义为随机样本不可重现。
    根据以上几个标准,其对应的随机数也就分为以下几类:

    伪随机数 - 满足第一个条件的随机数。
    密码学安全的伪随机数 - 同时满足前两个条件的随机数。可以通过密码学安全伪随机数生成器计算得出。
    真随机数 -同时满足三个条件的随机数。
    golang 实现伪随机
    golang 取某值范围的伪随机数实现

    package main
    
    import (
    	"fmt"
    	"math/rand"
    	"time"
    )
    
    func main() {
    	// 随机种子
    	rand.Seed(time.Now().Unix())
    
    	// 生成 20 个 [0, 100) 范围的伪随机数。
    	for i := 0; i < 20; i++ {
    		result := rand.Intn(100)
    		fmt.Println(result)
    	}
    }
    golang 真随机实现
    golang 取某值范围的真随机数实现
    
    package main
    
    import (
    	"crypto/rand"
    	"fmt"
    	"math/big"
    )
    
    func main() {
    	// 生成 20 个 [0, 100) 范围的真随机数。
    	for i := 0; i < 20; i++ {
    		result, _ := rand.Int(rand.Reader, big.NewInt(100))
    		fmt.Println(result)
    	}
    }
    
    展开全文
  • 如果不加set.seed(1),一样可以生成随机数,但是每次执行的结果都会不同,这就会出现一个问题,比如某学者对某问题进行研究,如果每次都是用随机数据不固定随机数的话,就会导致前后数据的不一致,而且也无法让后来...
  • 电信设备-基于真随机复杂算法的高安全性加密通信系统.zip
  • 写这篇随笔的动机,在于最近看了不少对于游戏中概率事件的提问 在这些相关讨论里,总是能频繁看到“真随机”和“伪随机”这两个词汇。 其中最常见的句子则莫过于宝典一般的——“程序里没有真随机”。 这句话本身...
  • 行业资料-电子功用-光纤电流互感器用镜像对称真随机四态调制解调方法的介绍分析.rar
  • /伪随机、以及随机算法

    千次阅读 2021-03-21 08:46:49
    随机性(英语:Pseudorandomness)是一个过程似乎是随机的,但实际上并不是。伪随机数是看似随机实质是固定的周期性序列,也就是有规则的随机。什么是随机数随机数在计算机应用中使用的比较广泛,最为熟知的便是在...
  • Java随机 Java真随机

    千次阅读 2016-12-30 14:17:56
    最近发现java自带的随机函数是可以遇见的,自己就根据随机的理解利用cpu和时间的随机种子写了一个随机类,希望对你有所启发!!! 不说这么多了直接上源码:public class Random { public static void main(String...
  • 想象一下,如果你在某款moba游戏中,在装备平平,队友天坑的情况下,却刀刀暴击,在一小波gank中轻松拿下五杀,也许你会感叹自己的神操作和好运气,但其实,还有另外一种神秘的力量在支配着这一切,那就是:随机算法...
  • QQ音乐的随机播放 是随机吗?

    千次阅读 2022-01-16 11:43:20
    其实我早就怀疑 这个随机播放不像是随机啊,因为我自己经常躺在床上随机听歌,但是有些歌经常随到,但是有些歌老是听不到。 所以今天刚好也无聊,就拿自己的歌单做个测试。 首先我把自己的一个歌单拷出来: 歌单...
  • 最近在研究随机函数,利用很多算法,改写了随机函数,但是我在想,改写后的随机函数的随机性能最好,谁最近真随机函数,需要用一种方法来检验。 我能想到的有以下几种: 希望大家能补充。 1.直接能用数学理论证明,...
  • 使用物理性随机数发生器生成的随机数,可以说是完美再现了生活中的真正的“随机”,也可以称为绝对的公平,绝对的随机数。 2 伪随机数 实际上,绝对随机的随机数只是一种理想的随机数,即使计算机怎样发展,它也...
  • 先说结论:不止Python的random内置模块,还包括numpy的随机抽样子模块random,以及其他编程语言的随机数生成器,例如java.Math.Random()函数,所有这些随机数生成器生成的随机数都不是真正的随机数,而是伪随机数。
  • 首先需要声明的是,计算机不会产生绝对随机的随机数,计算机只能产生“伪随机数”。其实绝对随机的随机数只是一种理想的随机数,即使计算机怎样发展,它也不会产生一串绝对随机的随机数。计算机只能生成相对的随机数...
  • 随机算法

    千次阅读 2018-05-17 08:35:26
    随机算法是一种在接受输入的同时,为了随机选择的目的,还接受一串随机比特流并且在运行过程中使用该比特流的算法(允许算法在执行过程中随机地选择下一个计算步骤)。 随机算法通常有两个优点: 较之那些我们所知...
  • 以下的文章主要讲述的是MySQL随机查询数据、MySQL随机更新数据的实际应用以及对MySQL随机查询数据、MySQL随机更新数据的实际应用代码的描述,以下就是文章的主要内容描述,望你会有所收获。
  • 使用MATLAB编写一个可以对8bit灰度和24bit彩色BMP图像,进行随机LSB匹配算法嵌入秘密信息的程序,可设定随机密钥,可选择文件嵌入,有GUI,有代码注释。
  • 关于随机数和伪随机

    万次阅读 2015-09-25 13:32:11
    首先,「真随机」也有不同的含义, 真正的真随机目测只有量子力学了……一般的所谓真随机不是指这个,而是指 统计意义 上的随机,也就是具备不确定性,可以被安全的用于金融等领域,下面的真随机也均指这个。...
  • Random常用随机数类 随机整数,随机真假,随机颜色,随机数组Demo
  • 随机数发生器(TRNG) 随机数发生器会生成几乎无法预测的随机数,因为影响结果值变化的因素是物理环境的特征。例如,掷骰子将生成难以预测的随机值。但是骰子的数量限制为1到6。因此,几乎很难预测生成随机数,...
  • 随机数:随机数和伪随机

    万次阅读 多人点赞 2017-10-06 23:23:18
    说到随机这个词,相信各位肯定都深有体会了。生活中有太多的不确定因素从各方各面影响着我们,但也正是因为这样我们的人生更加多彩,具有了更多的可能性。 可以说,随机是个非常有魅力的东西。 而游戏开发者通常也...
  • 真随机”与“伪随机” 真随机:就是我们传统意义上理解的“随机”,随机事件如今天是否下雨,抛硬币的正反面,家门口的十字路口今天发生车祸等等。这些看似毫无规律而言的事件发生的概率是“随机的”。所谓的“...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 404,398
精华内容 161,759
关键字:

真随机