`
jack
  • 浏览: 393116 次
  • 来自: 温州
社区版块
存档分类
最新评论

伪随机数的问题

阅读更多
C,C++,VB,C#中用的随机数都是伪随机数,伪随机数的一个问题就是取值分布不均匀。
比如抽奖,如果从100种随机抽取,如果1和100都是一等奖,但是1和100的出现机率完全不是1%,有可能比1%,也有可能比1%小.


也不知道各种数据库中的随机数最终是否也是采用了伪随机数.

目前如果要分布均匀,一般都是用高斯随机数算法,所以各位玩抽奖的同学,如果要公平,还是不要用系统自带的随机函数,需要另外自己写.

如果是游戏中色子,如果采用伪随机数的,而且随机种子相同的,那么会出现在相同时间点上获取的两个随机值相同的问题.有些游戏就是这么被破解的.


分享到:
评论
1 楼 sdh5724 2008-11-01  
你的理解有个误区。。。实际上, 计算机做不到一个真正的随机函数的。
根据 从一个状态到另一个状态必须是有限的理论(机器的基础), 开始是有状态, 那就一位着不是一个随机过程, 高斯算法, 只是强化了算法。 目前机器的算随机数, 基本都是以机器的当前时间+机器本身一些固定参数+高斯分布的算法,部分参数的结合,因此, 做不到真的随机函数:)

相关推荐

    蒙特卡洛产生伪随机数

    从给定的文件信息来看,主要讨论的是两个不同的领域:一是关于Mg-Li合金及其表面处理的问题,另一个是蒙特卡洛法在产生伪随机数中的应用。然而,根据题目要求,我们将集中讨论“蒙特卡洛产生伪随机数”的相关知识点...

    伪随机数MATLAB版

    在计算机科学和数值计算中,伪随机数生成是模拟随机性的一个重要工具。MATLAB作为一个强大的数值计算软件,提供了多种生成伪随机数的功能。伪随机数并非真正的随机数,因为它们是由确定性的算法生成的,但这些算法...

    伪随机数的生成

    ### 伪随机数生成知识点详解 #### 一、伪随机数概述 伪随机数是指由确定性算法产生的序列,该序列具有随机性特征但实际是由特定算法生成的,并非真正的随机数。伪随机数在密码学、计算机科学、游戏开发等领域有着...

    伪随机数生成算法及比较.pdf

    伪随机数生成算法的研究不仅限于理论分析,还包括如何将理论应用到实际问题中,如计算机图形学、蒙特卡洛模拟、密码学、游戏开发等领域。理解这些算法的优缺点以及如何在具体场景下选择和应用它们,对于IT专业人员来...

    伪随机数的产生PPT

    伪随机数在实际应用中有着广泛的应用场景,比如在求解π的近似值问题中。通过模拟雨点落在正方形区域的情况,可以计算出落在四分之一圆内的雨点比例,进而估算π的值。程序会生成大量0到1之间的随机数对`(x, y)`,...

    java伪随机数

    在讨论Java编程中的伪随机数生成时,首先应该了解“伪随机数”的概念。伪随机数是由算法生成的数列,尽管它们看起来像是随机的,但实际上是由一个确定的算法决定的,可以重复生成,这与物理过程生成的真随机数有所...

    C# 伪随机数加密 实例源码(加密解密)

    在C#编程中,伪随机数生成器(PRNG)是一种重要的工具,广泛应用于各种领域,包括加密和解密操作。伪随机数虽然不是真正的随机数,但它们在统计上足够随机,使得对于大多数实际应用来说,它们可以作为随机数使用。在...

    生成伪随机数.rar

    在计算机科学和编程领域,伪随机数生成是至关重要的一个环节。这些数字看似随机,但实际上是由确定性算法生成的,因此称为“伪”随机。在各种应用中,如模拟、加密、游戏、测试等,都需要使用到伪随机数。本资料...

    二维联合正态分布伪随机数生成算法的研究与实现

    根据给定文件的信息,本文将深入探讨“二维联合正态分布伪随机数生成算法的研究与实现”。本研究主要关注如何通过不同的方法和技术来生成二维联合正态分布的伪随机数,并着重介绍了基于Cholesky分解的方法。 ### 一...

    伪随机数生成算法及比较

    ### 伪随机数生成算法及比较 #### 一、引言 在计算机科学领域中,随机数的应用极为广泛,尤其是在模拟、加密、游戏开发等领域。然而,在计算机内部生成真正意义上的随机数是非常困难的,通常使用的方法是通过算法...

    基于CUDA平台的伪随机数产生器系统研究1

    该方法可以大幅提高伪随机数产生的速度,解决传统线性同余算法产生伪随机数周期短、速度较慢的问题。 CUDA 平台的体系结构是基于 NVIDIA 的 GPU 架构,提供了一个完整的编程模型和开发环境,允许开发者使用 C 语言...

    基于FPGA的高速任意分布伪随机数发生器.pdf

    在现代IT行业中,伪随机数发生器(PRNG)的应用极为广泛,尤其是在计算机仿真、信息安全、自动化控制等领域。伪随机数通常通过特定的算法生成,其目的是模拟真正的随机性,虽然不能确保绝对的随机性,但在大多数应用...

    伪随机数质量对简单粒子群优化算法性能的影响.pdf

    这暗示了在应用PSO算法时,应该针对具体问题特性选择适当的伪随机数生成器,而非单纯追求伪随机数生成质量的高低。 综上所述,掌握伪随机数质量与PSO算法性能之间的关系对于优化算法的设计和应用至关重要。合理选择...

    suijishu.rar_伪随机数_随机数

    伪随机数生成器(PRNG)是实现这些应用的核心工具。标题中的“suijishu.rar”可能是一个包含源代码的压缩包,用于生成伪随机数序列。"suijishu.cpp"可能是C++编程语言编写的源代码文件,而其他如".dsp", ".dsw", "....

    伪随机数生成器LSFR与RC4流加密

    在IT领域,伪随机数生成器(Pseudo-Random Number Generator, PRNG)和流加密算法是两个重要的概念,它们广泛应用于密码学、模拟运算、游戏开发等多个场景。本项目结合了这两种技术,通过LSFR(Linear Shift ...

    C#伪随机数加密完整源码

    在C#编程语言中,伪随机数生成器(PRNG)是用于生成一系列看似随机但实际上可预测的数字的工具。这种技术在加密、游戏、模拟和各种其他领域中都有广泛应用。在“C#伪随机数加密完整源码”中,我们可以预见到包含了一...

    易语言源码伪随机数生成原理.7z

    本篇将深入探讨易语言源码中的伪随机数生成原理。 伪随机数生成(Pseudo-Random Number Generation, PRNG)是一种在确定性算法基础上产生看似随机但实际上是可预测的数字序列的技术。在易语言中,生成伪随机数通常...

    椭圆曲线伪随机序列生成器

    基于椭圆曲线的伪随机序列生成方法主要依赖于椭圆曲线的离散对数问题 (ECDLP),这是一种已知的安全难题。以下是一些经典的椭圆曲线伪随机序列生成方法: 1. **基于椭圆曲线点的生成方法**:这种方法通过椭圆曲线上...

    伪随机数与准随机数的比较

    ### 伪随机数与准随机数的比较 #### 引言 随着计算机技术的发展,随机数在各种领域中扮演着越来越重要的角色,特别是在模拟、密码学、统计抽样等领域。传统上,人们采用逆转法来生成随机数,即首先生成一个在\[0,1...

Global site tag (gtag.js) - Google Analytics