精华内容
下载资源
问答
  • 1.小数 dbms_random.value(low,high): --获取... 7、生成一个全局唯一的、32位的字符串:SYS_GUID() 生成单独的GUID :select SYS_GUID() from dual; 生成多个GUID: select sys_guid() from dual connect by rownum<10

    1.小数
    dbms_random.value(low,high): --获取一个[low,high)之间的小数,包含low,不包含high
    可以结合trunc函数获取整数
    例如:
    select dbms_random.value from dual; --生成0-1之间的小数
    select dbms_random.value(0,10) from dual; --生成0-10之间的小数
    select trunc(dbms_random.value(0,100)) from dual; --生成0-100之间的整数
    select substr(cast(dbms_random.value(1,100000) as varchar2(10)),1,5) from dual; --生成5位数字
    2.整数
    select trunc(dbms_random.value(0,100)) from dual; --生成0-100之间的整数
    3、DBMS_RANDOM.RANDOM 返回 [-2^^31, 2^^31)的整数,语法:
    select DBMS_RANDOM.RANDOM from dual connect by rownum <=10;
    4.字符串
    dbms_random.string (opt char, len number);
    –opt:表示返回值可能包含的东西
    ----‘u’,‘U’ : 任何大写字母
    ----‘l’,‘L’ : 任何小写字母
    ----‘a’,‘A’ : 大小写混合字母
    ----‘x’,‘X’ : 大写字母和数字混合
    ----‘p’,‘P’ : 任何可打印字符
    ----其他参数 : 任何大写字母
    –len:表示要返回的字符串长度
    select dbms_random.string(‘u’,32) “u_8_password” from dual;
    5.从正态分布得到一个随机数
    dbms_random.normal
    6.生成日期
    select to_char(sysdate,‘J’) from dual; --获取指定日期的基数(内部日期数)
    用带有low_value等于2458054、high_value等于2458054 364,作为dbms_random.value的两个参数,再把它转换成日期
    select to_date(trunc(dbms_random.value(2458054,2458054 364)),‘J’) from dual;
    也可以动态写成:
    select to_date(to_char(sysdate,‘J’) trunc(dbms_random.value(0,365)),‘J’) from dual;
    7、生成一个全局唯一的、32位的字符串:SYS_GUID()
    生成单独的GUID :select SYS_GUID() from dual;
    生成多个GUID: select sys_guid() from dual connect by rownum<10

    展开全文
  • 因此,在特定时间生成的随机数列表是唯一的.你能不能给我任何想法,因为我最终会在特定的毫秒内产生几个重复的随机数(也有相当大的概率).我尝试了以下失败的事情.Random random = new Random(System.nanoT...

    我有点学习随机数生成和概念的概念. java中的多线程.

    我们的想法是不在特定的毫秒内生成范围1000的重复随机数(考虑到,多线程方式不超过50个数据将在毫秒内处理).因此,在特定时间生成的随机数列表是唯一的.你能不能给我任何想法,因为我最终会在特定的毫秒内产生几个重复的随机数(也有相当大的概率).

    我尝试了以下失败的事情.

    Random random = new Random(System.nanoTime());

    double randomNum = random.nextInt(999);

    //

    int min=1; int max=999;

    double randomId = (int)Math.abs(math.Random()* (max - min + 1) + min);

    //

    Random random = new Random(System.nanoTime()); // also tried new Random();

    double randomId = (int)Math.abs(random.nextDouble()* (max - min + 1) + min);

    当我附加正在生成的时间戳时,在多线程环境中,我看到为5000个唯一数据生成(2-4次)相同的ID(大约8-10).

    解决方法:

    此类允许您从特定范围获取非重复值,直到使用整个范围.使用范围后,将重新初始化.

    类带有一个简单的测试.

    如果要使类线程安全,只需将synchronized添加到nextInt()声明即可.

    然后,您可以使用单例模式或仅使用静态变量从多个线程访问生成器.这样,所有线程都将使用相同的对象和相同的唯一ID池.

    public class NotRepeatingRandom {

    int size;

    int index;

    List vals;

    Random gen = new Random();

    public NotRepeatingRandom(int rangeMax) {

    size = rangeMax;

    index = rangeMax; // to force initial shuffle

    vals = new ArrayList(size);

    fillBaseList();

    }

    private void fillBaseList() {

    for (int a=0; a

    vals.add(a);

    }

    }

    public int nextInt() {

    if (index == vals.size()) {

    Collections.shuffle(vals);

    index = 0;

    }

    int val = vals.get(index);

    index++;

    return val;

    }

    public static void main(String[] args) {

    NotRepeatingRandom gen = new NotRepeatingRandom(10);

    for (int a=0; a<30; a++) {

    System.out.println(gen.nextInt());

    }

    }

    }

    标签:java,multithreading,data-structures

    来源: https://codeday.me/bug/20190825/1719238.html

    展开全文
  • $len = 10; // total number of numbers$min = 100; // minimum$max = 999; // maximum$range = []; // initialize arrayforeach (range(0, $len - 1) as $i) {while(in_array($num = mt_rand($min, $max), $ran...

    $len = 10;   // total number of numbers

    $min = 100;  // minimum

    $max = 999;  // maximum

    $range = []; // initialize array

    foreach (range(0, $len - 1) as $i) {

    while(in_array($num = mt_rand($min, $max), $range));

    $range[] = $num;

    }

    print_r($range);

    我很想知道接受的答案是如何与我的一致的。值得注意的是,两者的混合可能是有利的; 实际上是一个根据特定值有条件地使用一个或另一个的函数:

    # The accepted answer

    function randRange1($min, $max, $count)

    {

    $numbers = range($min, $max);

    shuffle($numbers);

    return array_slice($numbers, 0, $count);

    }

    # My answer

    function randRange2($min, $max, $count)

    {

    $range = array();

    while ($i++ < $count) {

    while(in_array($num = mt_rand($min, $max), $range));

    $range[] = $num;

    }

    return $range;

    }

    echo 'randRange1: small range, high count' . PHP_EOL;

    $time = microtime(true);

    randRange1(0, 9999, 5000);

    echo (microtime(true) - $time) . PHP_EOL . PHP_EOL;

    echo 'randRange2: small range, high count' . PHP_EOL;

    $time = microtime(true);

    randRange2(0, 9999, 5000);

    echo (microtime(true) - $time) . PHP_EOL . PHP_EOL;

    echo 'randRange1: high range, small count' . PHP_EOL;

    $time = microtime(true);

    randRange1(0, 999999, 6);

    echo (microtime(true) - $time) . PHP_EOL . PHP_EOL;

    echo 'randRange2: high range, small count' . PHP_EOL;

    $time = microtime(true);

    randRange2(0, 999999, 6);

    echo (microtime(true) - $time) . PHP_EOL . PHP_EOL;

    结果:

    randRange1: small range, high count

    0.019910097122192

    randRange2: small range, high count

    1.5043621063232

    randRange1: high range, small count

    2.4722430706024

    randRange2: high range, small count

    0.0001051425933837

    如果您使用较小的范围和较高的返回值计数,则接受的答案肯定是最佳的; 然而正如我所预料的那样,更大的范围和更小的计数将在接受的答案中花费更长的时间,因为它必须存储范围内的每个可能的值。你甚至冒着吹PHP内存上限的风险。混合物评估范围和计数之间的比率,并有条件地选择发电机将是两个世界中最好的。

    展开全文
  • 122019-04-19 11:33:07 +08:00```phpfunction genToken( $len = 32, $md5 = true ) {# Seed random number generator# Only needed for PHP versions prior to 4.2mt_srand( (double)microtime()*1000000 );...

    12

    2019-04-19 11:33:07 +08:00

    ```php

    function genToken( $len = 32, $md5 = true ) {

    # Seed random number generator

    # Only needed for PHP versions prior to 4.2

    mt_srand( (double)microtime()*1000000 );

    # Array of characters, adjust as desired

    $chars = array(

    'Q', '@', '8', 'y', '%', '^', '5', 'Z', '(', 'G', '_', 'O', '`',

    'S', '-', 'N', '

    '/', '|', ':', '1', 'E', 'L', '4', '&', '6', '7', '#', '9', 'a',

    'A', 'b', 'B', '~', 'C', 'd', '>', 'e', '2', 'f', 'P', 'g', ')',

    '?', 'H', 'i', 'X', 'U', 'J', 'k', 'r', 'l', '3', 't', 'M', 'n',

    '=', 'o', '+', 'p', 'F', 'q', '!', 'K', 'R', 's', 'c', 'm', 'T',

    'v', 'j', 'u', 'V', 'w', ',', 'x', 'I', '$', 'Y', 'z', '*'

    );

    # Array indice friendly number of chars;

    $numChars = count($chars) - 1; $token = '';

    # Create random token at the specified length

    for ( $i=0; $i

    $token .= $chars[ mt_rand(0, $numChars) ];

    # Should token be run through md5?

    if ( $md5 ) {

    # Number of 32 char chunks

    $chunks = ceil( strlen($token) / 32 ); $md5token = '';

    # Run each chunk through md5

    for ( $i=1; $i<=$chunks; $i++ )

    $md5token .= md5( substr($token, $i * 32 - 32, 32) );

    # Trim the token

    $token = substr($md5token, 0, $len);

    } return $token;

    }

    ```

    最近在学 markdown,帮 10 楼整理下看看是啥效果

    展开全文
  • I am trying with below code to generate 10 digits unique random number. As per my req i have to create around 5000 unique numbers(ids). This is not working as expected. It also generates -ve numbers....
  • >将该范围中的每个数字依次添加到list结构中...这将打印从1-10范围内的3个独特的随机数。import java.util.ArrayList;import java.util.Collections;public class UniqueRandomNumbers {public static void main...
  • rn 总是如此,如345436%22 I basically need to shuffle the array of numbers from 0 to n 这个算法并不是你所需要的:它根本不会对数组进行混洗,它会通过从不断增加的值中选择一个来产生有序的随机数(因此,唯一)....
  • JAVA随机数

    2021-02-27 11:32:06
    《望岳三首·其二》- 唐代 - 杜甫获取随机数的方式经常使用的大概就下面5种①Math.random(): 获取随机小数范围:[0.0,1.0) 返回的值是double类型②Random类构造方法:Random() : 建议使用无参构造方法方法:int ...
  • i was working on an application where we need to generate some unique number and practically there was no predefined restrictions so was using java UUD generator and was working fine.Now we are given ...
  • **随机数产生唯一的数。 思路:创建一个容器,利用伪随机数rand先产生伪随机数,然后插入到容器中,并对容器利用sort进行优化排序,从小到大排序,也可用仿函数对他进行从大到小排序,看个人喜欢。 为了防止产生相同...
  • 首先,我想指出的是,您已经获得了很多响应,它们执行以下操作:它们生成一个随机数,然后以某种方式检查它是否已在数组中使用,如果已经使用过,则仅生成另一个直到找到未使用的编号。这是一种幼稚的方法,说实话,...
  • 这样的话,我们生成的10位卡号相当于最大能满足6000多万会员卡号,并且是不重复唯一的卡号。 PHP 我们使用PHP进行进制转换,10进制转36进制。class Code { //密码字典 private $dic = array( 0=>'0', 1=>'1', 2=>'2'...
  • 我正在尝试使用下面的代码来生成10位唯一随机数。根据我的要求,我必须创建大约5000个唯一编号。这无法正常工作。它还会生成-ve数字。同样,有时生成的数字中缺少一两位数字,导致8或9个数字而不是10。public ...
  • I'm trying to get random numbers between 0 and 100. But I want them to be unique, not repeated in a sequence. For example if I got 5 numbers, they should be 82,12,53,64,32 and not 82,12,53,12,32I used...
  • ITMISS使用Java 8+,您可以使用ints方法Random得到一个IntStream随机值distinct和limit若要将流缩减为若干唯一的随机值,请执行以下操作。ThreadLocalRandom.current().ints(0,100).distinct().limit(5).forEach...
  • 您的方法确实非常适合创建大量唯一值,但是如果您只创建少量唯一值,则可以更有效地简单地跟踪使用的值以保证唯一性import java.util.Collection;import java.util.HashSet;import java.util.Random;public class ...
  • I want to generate random number from 1 to 9 and i want them to be unique. This is the code i have written which gives me 9 different numbers from 1 to 9 but I have no clue on generating unique number...
  • function guid() { let now = new Date().getTime(); let str = `xxxxxxxx-xxxx-${now}-yxxx`; return str.replace(/[xy]/g, function(c) { var r = Math.random() * 16 | 0; var v = c == 'x' ?...
  • --循环生成随机数时,判断是否是重复随机数 BEGIN --判断是否是重复随机数,是则ifrandom>0,否则ifrandom=0 select plateNnumber1||to_char(sysdate,'yymmdd')||lpad(round(dbms_random.value(1,1000)),4,0) into ...
  • * Copyright (c) 2003, 2011, Oracle and/or its ... All rights reserved.packagejava.util;import java.security.*;/*** A class that represents an immutable universally unique identifier (UUID).* A...
  • 任何人都可以帮助我制作一个方法来生成随机数而无需在Android中重复?最大数量是:prjcts.size();这是我的JSON数组.返回值应该是整数.我已经拥有的是:int i =(int)(prjcts.size()* Math.random());我将该方法输入3...
  • ORACLE 如何产生一个随机数ORACLE 如何产生一个随机数:DBMS_RANDOM--1、小数( 0 ~ 1)select dbms_random.value from dual ;--2、指定范围内的小数 ( 0 ~ 100 )select dbms_random.value(0,100) from dual ;--3、指定...
  • JAVA生成指定位数的随机数

    千次阅读 2021-02-27 17:12:06
    publicclassRondom{publicstaticStringgenRandomNum(intcard_len){//35是因为数组是从0开始的,26个字母+10个数字...//生成的随机数intcount=0;//生成的密码的长度char[]str={‘0‘,‘1‘,‘2‘,‘3‘,‘4‘,‘5...
  • java生成不重复随机数的方法

    千次阅读 2021-03-11 12:56:37
    java生成不重复随机数的方法发布时间:2020-07-01 11:00:00来源:亿速云阅读:225作者:Leahjava怎么实现生成不重复随机数 ?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题...
  • java如何产生1-10随机数

    千次阅读 2021-03-17 17:10:31
    java代码方法一如下: int random=(int)(Math.random()*10+1) java代码方法二如下: package bdqn_...如果将这个写成一个带参数的方法,那么只要用户输入需要生成随机数的最大值,就可以让这个方法生成制定范围的随机数
  • How to get random unique numbers between any 2 numbers in c# without storing and checking the previous output?Please see the below link for an example:-https://adf.ly/msz2d[^]Thanks in advance解决方案...
  • php生成指定位数的随机数,是php程序员经常面对的课题,万维景盛工程师为您汇总了几个简单的批量生产特定位数随机数的php函数方法,共大家参考。函数一:...
  • 答案 2 :(得分:1) 获得N个随机数而从0到N-1重复的一种方法是创建这些N个数的数组并创建一个随机数,该数将选择该数组的一个索引。然后从该数组中删除索引,继续使用N-1个数字,依此类推。 class NoRepeatRandom { ...
  • 那么你会如何填补这个漏子?就是需要生成1-25之间的16个不重复的随机数,去填补。具体怎么设计函数呢?将随机数存入数组,再在数组中去除重复的值,即可生成一定数量的不重复随机数。程序如下:...
  • 项目中需要动态随机生成一些固定位数的随机数,如8位,5位等。之前看到的写法是这样ROUND(ROUND(RAND(),5)*100000)这样写不太准确,有几率出现4位的情况,Rand() 函数是取 0 ~ 1(无限接近) 的随机函数如果 某此...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 64,118
精华内容 25,647
关键字:

唯一随机数