skynet实践(9)-随机数重复问题】的更多相关文章

最近在使用skynet的过程中,遇到需要为玩家的每次请求产生一个随机序列的场景.简化如下: main.lua中每隔1S便发出一次随机数请求: local skynet = require "skynet" skynet.start(function() skynet.error("Server start") rand = skynet.newservice("testrand") skynet.sleep() do i = i + skynet…
C# Random循环生成随机数重复问题解决方案1.当我们通过Random生成随机数时,习惯的写法如下: int a=new Random().Next(0,100); 然后生成一个数据数没有任何问题,但是代码修改如下 ;i<;i++){ Console.WriteLine(,)); } 问题:你会发现生成的随机数居然完全一样.肿么办呢? 2.解决:之所以会出现这样的情况是因为C#生成随机数和计算的时间有关系,如果生成太快就会造成这个问题 解决方案1: 暂停一定时间 ;i<;i++){ Con…
//编程的时候,有三条任选执行路径,都会显示一些图片,比如路径1显示的图片是一个人,路径2显示的是两个人,路径3显示任意人数的图片,要求每次进入该页面都不能重复初始的那张图片. 于是我想到了 运用随机生成数来解决. 网上搜搜 果然好多方法,有一点是很重要的,随机生成,不能保证是否有重复的,那么用户体验肯定不好,为了用户果断应该选择“不重复的随机生成数的方法” 以下是借鉴别人的好方法 留着备用. .获取一个随机整数范围在:[,)包括0,不包括100 ; . 获取一个随机数范围在:[,),包括500…
在实际项目中不仅需要随机产生密码字符串,还要一次生成多个.我把生成随机字符串的方法放到for循环中,问题出现了. 生成的字符串,会重复. 经过多方查证,原因在代码. //使用与系统时间相关的种子 Random rnd = new Random(); 问题正是出现在这,系统时间会在10ms更新一次,而for循环大大短于10ms,所以会产生重复. 如何解决呢,当然是不使用默认种子,手动指定,而且种子不能重复.我想for循环中的计数器正适合. ; i < count; i++) { //以i作为种子,…
今天做测试,在一个循环里面给实体属性赋随机值,然后生成一个实体集合,突然发现生成的实体集合中的所有实体相应属性值都是一样的,调试时却又发现值并不是重复的,度娘以后发现了问题——Random类是一个产生伪随机数字的类,它的构造函数有两种,一个是直接New Random(),另外一个是New Random(Int32),前者是根据触发那刻的系统时间做为种子,来产生一个随机数字,后者可以自己设定触发的种子,系统默认是用UnCheck((Int)DateTime.Now.Ticks)做为参数种子,因此如…
srand(time(NULL)); 是我们熟悉的c++随机函数,用时间做种子.但由于在多线程环境下若想在子线程中随机出不同的随机数则需随机种子的不同.但time以秒计算,略显不足,故参考这篇文章解决此问题: /* 初始化随机种子 */ void InitRand() { // 如果支持高性能精度计数器,则使用其初始化随机种子(微秒级) LARGE_INTEGER nFrequency; if(::QueryPerformanceFrequency(&nFrequency)) { LARGE_I…
我从开源项目(https://github.com/lipp/lua-websockets,这里我们简称LWS)中抽出了websocket的部分处理,步骤如下: 1)首先是解决LWS的几个依赖问题.LWS在握手阶段的base64编解码使用了luasocket中的mime,因此在3rd文件夹中建立mime文件夹,将mime.h和mime.c文件放进去,修改skynet的Makefile文件,作为一个单独的动态库编译: LUA_CLIB = skynet \ client \ bson md5 sp…
在使用Random类生成随机数时,我们可能会碰到生成随机数重复的问题. 比如我们要生成6位数字验证码,虽然也是使用Random,但是可能出现111111,999999这样的情况. 这是因为在实例化Random类时,如果随机种子不填写,默认是以时间线作为种子进行伪随机运算,当计算运行速度过快时,导致所有的随机种子都是一个值. 解决的方法也很简单,我们使用Guid的哈希码作为种子值,就不会重复了,代码如下: public class RandomHelper { /// <summary> ///…
/** *产生9位不同的随机数 */ private String getRandomString(){ StringBuffer sb = new StringBuffer(); for(int i=0;i<9;i++){ sb.append((int)(Math.random()*10)); } return sb.toString(); } 相信很多人写随机数的方法有很多,但是我感觉这样所产生的随机数重复的概率最低,因为我的每一位数字都是随机出来的每个数字产生的概率是十分之一九个数字就是十…
JavaScript内置函数random(seed)可以产生[0,1)之间的随机数,若想要生成其它范围的随机数该如何做呢? 生成任意范围的随机数 //生成[100,120)之间的随机数 Math.floor(Math.random() * 20+100); 大于等于100小于120的随机数:   我们还可以配合当前时间来生成随机数: var offset = new Date().getMilliseconds(); Math.floor(Math.random() * offset+100)…
昨天无聊,就模仿仙剑5外传中的卡牌游戏做了一个小游戏,结果在开发这个小游戏的时候,碰到了产生多个不同随机数的问题.我们知道,仙剑中的卡牌游戏是随机产生16张图片,并且这16张图片是两个一组的,因为只有选中了相同的图片,这一组图片才能消除.所以这个问题,可以简化为:随机产生n个随机数,且保证每个数字都有唯一的一个数字和它对应.如1.3.4.6.7.6.1.3.4.7这样一组数字.那么这个问题怎么解决呢?首先我们先思考怎样产生n个不同的随机数,如果直接使用Random类,我们不能保证这n个随机数互不…
今天在写一个小测试用例时,想在数据库插入一些数据.造数据时用到了Random函数,之前没有注意到这个问题,看到“Random生成随机数重复的问题”才注意到自己插入的数据有重复. ; i < ; i++) { Random ro = new Random(); Console.WriteLine(ro.Next()); } 验证了下,果然是会出现“如果生成的时间非常短,那么很可能会出现生成的随机数重复的问题.”,做个记录.…
Java中产生随机数的两个方法 一.利用random方法来生成Java随机数. 在Java语言中生成Java随机数相对来说比较简单,因为有一个现成的方法可以使用.在Math类中,Java语言提供了一个叫做random的方法.通过这个方法可以让系统产生随机数.不过默认情况下,其产生的随机数范围比较小,为大于等于0到小于1的double型随机数.虽然其随机数产生的范围比较小,不能够满足日常的需求.如日常工作中可能需要产生整数的随机数.其实,只要对这个方法进行一些灵活的处理,就可以获取任意范围的随机数…
<Java 程序设计>课堂实践项目类定义 课后学习总结 目录 改变 类定义实验要求 课堂实践成果 课后思考 改变 修改了博客整体布局,过去就贴个代码贴个图很草率,这次布局和内容都有修改.     加了一些类定义相关的拓展的内容,图片等都是再次运行之后截得细致的图片,电脑上也有原图. 类定义实验要求 设计并实现一个Book类,定义义成Book.java,Book 包含书名,作者,出版社和出版日期,这些数据都要定义getter和setter.定义至少三个构造方法,接收并初始化这些数据.覆盖(Ove…
前几天负责的理财产品线上出现问题:一客户赎回失败,查询交易记录时显示某条交易记录为其他人的卡号. 交易的链路如下: 出现该问题后,我们对日志进行了分析,发现主站收到的两笔流水号完全相同,然而主站却没有做重复校验,将两笔订单(A和B)都发往基金系统,基金系统做了重复校验,收到A之后开始处理,收到B之后直接报错返回,A处理完后又正常返回.但是主站根据流水号更新数据库状态,却将两笔订单更新错了,导致客户的交易记录出错. 该问题虽然不会造成用户的资金损失或记账出错,但是交易记录出错会带来极差的用户体验,…
目录 Sobol 序列并行化的实践经验 随机数发生器并行化的常见策略 Sobol 序列的原理和跳转功能 Sobol 序列并行化实践 分块策略 蛙跳策略 蛙跳策略的计算量分析 减少异或计算的技巧 分块策略不算缺点的缺点 参考文献 Sobol 序列并行化的实践经验 随机数发生器并行化的常见策略 随机数发生器的并行化通常有四种策略(文献[2]): "随机化"种子 参数化随机数发生器 分块策略 蛙跳策略 "随机化"种子 "随机化"种子就是让每个线程上运行…
Random Random 类诞生于 JDK 1.0,它产生的随机数是伪随机数,也就是有规则的随机数.Random 使用的随机算法为 linear congruential pseudorandom number generator (LGC) 线性同余法伪随机数.在随机数生成时,随机算法的起源数字称为种子数(seed),在种子数的基础上进行一定的变换,从而产生需要的随机数字. Random 对象在种子数相同的情况下,相同次数生成的随机数是相同的.比如两个种子数相同的 Random 对象,第一次…
最近班级里需要人员抽签参加活动,闲来无事用java的(Math.random()方法||java.util.Random())写了一个随机抽签的,所以我又了解了一下C语言的随机数获取. C语言的随机数获取: 参考:http://c.biancheng.net/view/2043.html 程序的抽签信息源文件可以自己通过程序去做出来...咳咳,虽然方法很笨- 程序中有些函数注释掉了,还有的隐藏了,就是制作源信息文件的. 你们可以改进改进,我这个写的比较乱... 还有就是因为我不太喜欢参加活动,所…
一. JavaWeb基础 第一天: 1.Eclipse详解: (1).Bad versionnumber in .class file:编译器版本和运行(JRE)版本不符合.高的JRE版本兼容低版本的编译器版本. (2).当程序有错误的时候,使用Debug as 运行程序.双击语句设置断点.程序运行到此处停止.点击跳入方法的内部代码.点击跳过,执行下一条代码,点击跳出,跳出方法.观察变量的值,选中变量右击 选择watch. 跳入下一个断点.查看断点,调试完后一定要清除断点.结束运行断点的jvm.…
一.       JavaWeb基础 第一天: 1.Eclipse详解: (1).Bad versionnumber in .class file:编译器版本和运行(JRE)版本不符合.高的JRE版本兼容低版本的编译器版本. (2).当程序有错误的时候,使用Debug as 运行程序.双击语句设置断点.程序运行到此处停止.点击跳入方法的内部代码.点击跳过,执行下一条代码,点击跳出,跳出方法.观察变量的值,选中变量右击 选择watch. 跳入下一个断点.查看断点,调试完后一定要清除断点.结束运行断…
批量生成随机字符串文件名 # 用for循环在 /test 目录下批量创建10个html文件,其中每个文件需要包含10个随机小写字符加固定字符串 alnk #!/bin/bash ######################################### # Auth: Alnk # date: 20191115 # qq: 1029612787 # version: v0.1.0 # 随机生成文件 ######################################### # 存…
目录索引 [无私分享:ASP.NET CORE 项目实战]目录索引 简介 很长时间没有来更新博客了,一是,最近有些忙,二是,Core也是一直在摸索中,其实已经完成了一个框架了,并且正在准备在生产环境中试用,但是很多东西也是出于自己理解的肤浅和技术的不断更新,经常变动,所以,如果自己还没有完全搞好,就来写博客,反复的修正,可能会误导一些新手朋友. 如果有正在研究Core的朋友,可以大家一起交流下. 验证码 相信很多朋友跟我一样,图形验证码成为了 Core 的一个绊脚石. System.Drawin…
工厂模式 工厂模式是软件工程领域一种广为人知的设计模式,这种模式抽象了创建具体对象的过程.工厂模式虽然解决了创建多个相似对象的问题,但却没有解决对象识别的问题. function createPerson(name, age, job) { var o = new Object(); o.name = name; o.age = age; o.job = job; o.sayName = function() { alert(this.age); }; return o; } var perso…
using System; using System.Collections.Generic; using System.Text; using System.Collections; using System.Text.RegularExpressions; using System.Security.Cryptography; /**/ //////////////////////////////////////////////////// ///功能:字符文本操作类 /// /// ///…
最近在思考和实践怎样应用重复数据删除技术到云存储服务中.找了些论文来读,其中<Avoiding the Disk Bottleneck in the Data Domain Deduplication File System>是鼎鼎大名的李凯教授出品,读来收益匪浅. 论文主要内容 Data Domain的去重存储系统是商业上大获成功的产品,从产品的角度来讲非常完善,其架构图如下: 去重存储系统在数据存储和重建的过程中,都需要频繁地访问数据块的索引,即图中的Segment Index.为了降低成…
一.0.94-cdh4.2.1版本系统级别的一级目录如下,用户自定义的均在这个/hbase 下的一级子目录下/hbase/-ROOT-/hbase/.META./hbase/.archive/hbase/.corrupt/hbase/.hbck/hbase/.logs/hbase/.oldlogs/hbase/.snapshot/hbase/.tmp/hbase/hbase.id/hbase/hbase.version 1./hbase/-ROOT- hbase读写数据的时候采用三级寻址方式,首…
新建一般处理程序:veify.ashx <%@ WebHandler Language="C#" Class="verify" %> using System; using System.Web; using System.Text; using System.IO; using System.Drawing; using System.Drawing.Imaging; public class verify : IHttpHandler, System…
昨天填完原本打算写有关“学生考试部门”的总结,但是因为时间来不及,所以推迟到今天来写. 至于最后的:“老师登录”部门就没什么好说的了,只要会了“管理员部分”和“学生考试部分”的书写,剩下就只是耐心的一点一点把代码码出来,写代码是一个考验耐性的活,我本身不是很有耐心,但是我慢慢地我努力改变着自己,其实稍微努力一下,我也可以蛮有耐心的嘛,哈哈!老规矩,我上图分析分析: 第一点问题: 图一 图一中我想说说的是sessionScope.,意思如下图二所示: 图二 第二点问题:struts2标签 图三 2…
 背景:     中午快餐,菜单吃了个遍,天天纠结于不知道点啥菜.      想起读书考试时,丢纸团选答案,于是用python写个随机点菜脚本玩玩. 功能:      菜单为Excel,一个Sheet页为一个分类,每行显示每道菜的编号.菜名.价格,如下图所示. 1.程序启动,程序提示选择分类,按输入的数字进入相应分类所在Sheet页(目前分类写死,只有3类).     2. 程序获取Sheet页最大行数,以此为上限,随机生成一个1到最大行数之间的数字.     3.程序根据生成的随机数,读出该行…
在上一篇中我们介绍了如果使用Session来做一个简单的用户登录案例,在本篇中我们继续使用Session技术来做一个防止表单重复提交的案例. 这是一个很重要的知识点,在很多框架中都有防止表单重复提交的这个概念.表单重复提交,这个概念已经在字面意义上很明确的说明了,现实生活中会有各种重复提交情况的发生,比如当用户点击了提交按钮之后,由于网速的原因,页面没有及时跳转到相应的页面,导致用户以为自己没有提交,结果又多点了几次:又或者是在表单提交后页面跳转到Servlet处理表单数据时进行了多次刷新,都会…