技术头条 - 一个快速在微博传播文章的方式     搜索本站
您现在的位置首页 --> 查看专题: 随机
     有这样一道算法题: 给定一个能够生成均匀1~5随机枚举数的函数,请设计一个能够生成均匀1~7随机枚举数的函数。 就是说,有一个生成随机数的函数rand5,可能返回1、2、3、4、5这5个枚举值,其中每个值被返回的概率都是严格的1/5,现在需要设计一个类似的随机数函数rand7,可能返回1、2、3、4、5、6、7这几个枚举值,每个值被返回的概率都是严格的1/7。
    假设数组为:array(100,200,300,400),开始是从1,1000这个概率范围内筛选第一个数是否在他的出现概率范围之内, 如果不在,则将概率空间,也就是k的值减去刚刚的那个数字的概率空间,在本例当中就是减去100,也就是说第二个数是在1,900这个范围内筛选的。这样筛选到最终,总会有一个数满足要求。就相当于去一个箱子里摸东西,第一个不是,第二个不是,第三个还不是,那最后一个一定是。这个算法简单,而且效率非常高,关键是这个算法已在我们以前的项目中有应用,尤其是大数据量的项目中效率非常棒。
    根据最近生产环境使用的经验,更多的项目的采用,以及采用了更加自动的测试平台,对HBase做了更多的场景的测试,在这篇blog中来分享下纯粹的随机写和随机读的性能数据,同时也分享下我们调整过后的参数。 ps: 强烈推荐同事的blog,其中记录了很多我们对HBase的改进,以及我们在运维HBase项目时碰到的各种奇怪、诡异的问题。
    随机读取数据库记录,搜索发现很多人都使用 order by rand() 来达到该目的,这是mysql提供的功能。但是实际上存在非常严重的性能问题。 如果表里记录不多,偶尔用一下也可以。但是如果数据多的话,就会凸显出查询的性能问题。 随机查询5条记录: SELECT * FROM `table` ORDER BY RAND() LIMIT 5; 在数十万记录的表里,这样的查询大概要5-8秒,甚至更多时间。
      依次考虑下面三个问题。     1. 一根单位长的木棒。随机在中间选取一点,把这根木棒折断。那么,短的那一截木棒平均有多长?     2. 一根单位长的木棒。随机在中间选取一点,把这根木棒折断。那么,长的那一截木棒平均有多长?     3. 一根单位长的木棒。随机在中间选取一点,把这根木棒折断。那么,短的那一截与长的那一截的长度之比平均是多少?
             在日常工作中,经常需要使用随机算法。比如面对大量的数据, 需要从其中随机选取一些数据来做分析。 又如在得到某个分数后, 为了增加随机性, 需要在该分数的基础上, 添加一个扰动, 并使该扰动服从特定的概率分布。本文主要从这两个方面出发, 介绍一些算法, 供大家参考。          首先假设我们有一个使用的随机函数float frand(), 返回值在(0, 1)上均匀分布。...
    在游戏的开发中随机数必不可少, 和同事争论一件事情, 他认为PHP的伪随机发生器产生的随机数会有分布问题 所以我找了一下相关资料 一些相关的讨论在这里可以看到 http://blog.bluesky.cn/archives/418/true-random-number-and-pseudo-random-number.html 我在PHP 5.2.8以及CentOs 5.2 Linux环境下测试了文中的例子 结果如下 可以看到其实PHP的rand函数不会产生过分规律的随机数. 所谓产生的数不够随机的问题基本可以忽略
[ 共7篇文章 ][ 第1页/共1页 ][ 1 ]
赞助商广告
© 2009 - 2024 by blogread.cn 微博:@IT技术博客大学习

京ICP备15002552号-1