精华内容
下载资源
问答
  • python生成不重复随机数
    万次阅读 多人点赞
    2019-08-11 17:19:18

    random.sample(range(1,N), k)
    表示从[1,N]的范围内随机生成k个数,结果以列表返回

    栗子1: 随机生成5个(1, 10)范围内的数字:

    import random
    for i in range(5):
        L1 = random.randint(1, 10)
        print(L1, end=' ')
    

    结果为:

    6 7 9 2 9

    栗子2: 随机生成5个(1, 10)范围内不重复的数字:

    import random
    L1 = random.sample(range(1, 10), 5)
    print(L1)
    

    结果为:

    [5, 1, 7, 2, 8]

    更多相关内容
  • 下面小编就为大家分享一篇python生成不重复随机数和对list乱序的解决方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
  • 我已经为AES-FFX--see Python code here尝试了一些基本的Python代码(但请注意,它并完全符合AES-FFX规范)。例如,它可以将计数器加密为随机的7位十进制数。E、 g.:0000000 0731134 0000001 6161064 0000002 ...

    您可以使用Format-Preserving Encryption加密计数器。您的计数器从0向上,加密使用您选择的密钥将其转换为您想要的任意基数和宽度的看似随机的值。

    块密码通常具有固定的块大小,例如64位或128位。但是,保格式加密允许您使用标准密码(如AES)和更小的宽度密码,无论您想要什么基数和宽度(如基数10,问题参数的宽度9),使用的算法仍然具有密码健壮性。

    它保证永远不会发生冲突(因为加密算法创建1:1映射)。它也是可逆的(双向映射),因此您可以获取结果数字并返回到开始时的计数器值。

    AES-FFX是实现这一目标的一种标准方法。

    我已经为AES-FFX--see Python code here尝试了一些基本的Python代码(但请注意,它并不完全符合AES-FFX规范)。例如,它可以将计数器加密为随机的7位十进制数。E、 g.:0000000 0731134

    0000001 6161064

    0000002 8899846

    0000003 9575678

    0000004 3030773

    0000005 2748859

    0000006 5127539

    0000007 1372978

    0000008 3830458

    0000009 7628602

    0000010 6643859

    0000011 2563651

    0000012 9522955

    0000013 9286113

    0000014 5543492

    0000015 3230955

    ... ...

    对于Python中的另一个例子,使用另一个非AES FFX(我认为)方法,请参见this blog post "How to Generate an Account Number",它使用Feistel密码执行FPE。它生成从0到2^32-1的数字。

    展开全文
  • python生成不重复随机数和对list乱序

    万次阅读 2017-05-29 20:15:48
    关于生成随机的不重复数,我被面试过两次,有一次的应用场景是抽奖。 我当时提出的解决方案是:将生成随机数(数组的随机下标)放在一个数组中,每次对新生成随机数首先判断是否已经存在,如果不存在就加入这个...

    random.sample(list, n)即是从list中随机选取n个不同的元素 

    # -*- coding: utf-8 -*-
    import random
    # 从一个list中随机挑选5个
    list = [12, 23, 13, 14, 78, 234, 123, 12345]
    randomlist = random.sample(list, 5)
    print randomlist
    
    # 在range(10)中随机生成5个不重复的数,可以作为随机下标集合,然后到list中取数
    len = list.__len__()
    indexList = range(len)
    randomIndex = random.sample(indexList, 5)
    for i in randomIndex:
        print "下标为%d" % i
        print list[i]
    对list进行洗牌,乱序排序,random.shuffle(list),注意原来的list会被改变

    # -*- coding: utf-8 -*-
    import random
    # 对list洗牌,在原list上做改变
    list = range(10)
    print list
    random.shuffle(list)
    print "随机排序列表 : ",  list

    关于生成随机的不重复数,我被面试过两次,有一次的应用场景是抽奖。

    我当时提出的解决方案是:将生成的随机数(数组的随机下标)放在一个数组中,每次对新生成的随机数首先判断是否已经存在,如果不存在就加入这个数组,如果存在就重新生成随机数,直到这个数组中的元素个数到达一个特定值,然后拿着这个随机下标数组到原数组中去取元素。面试官问我时间复杂度问我是多少,我说O(n^2),面试官问我有没有改进方案,我想了一会没想出来。

    回到宿舍后舍友说,你可以每次对选中的元素和最后元素交换以下,下一次生成随机数的时候就在前n-1个元素中生成,这样每次只要交换一次元素,就不用去那个数组中判断当前下标是否已经被生成过一次,时间复杂度变成O(n),不由佩服。

    Java中提供了list.contains(ele)函数,可以直接判断指定容器中是否存在某个元素,这样就不用写二重循环了,但是时间复杂度仍然是O(n^2)

    不过今天看了一下python中的sample函数(随机选取种子点)直接就能达到我要的结果,下次再写抽奖函数一行代码就搞定了。




    展开全文
  • Python 随机数生成不重复

    千次阅读 2021-12-13 16:11:40
    sample()方法返回一个列表,其中包含从序列中随机选择的指定数量的项目。 random.sample(sequence,k) ... import random #随机数 for i in range(5): ran = random.randint(1, 10) print(r..

    sample()方法返回一个列表,其中包含从序列中随机选择的指定数量的项目。

    random.sample(sequencek)

    random.sample(range(1,N), k)
    表示从[1,N]的范围内随机生成k个数,结果返回列表

    如: 随机生成5个(1, 15)范围内的数字:

        import random  #随机数
         for i in range(5):
             ran = random.randint(1, 10)
             print(ran, end=' ')

    效果如下: 

    如:随机生成5个(1, 10)范围内不重复的数字:

    import random
    
       ran = random.sample(range(1, 10),5)
         print(type(ran))
         for i in ran:
             print(i, end=' ')

    效果如下: 

     

     

    展开全文
  • 复制代码 代码如下: import random print ‘N must >K else error’ n=int(raw...=temp result.append(x[i]) print result raw_input(‘Inpuy AnyKey to exit’) 这是用算法生成的 其实python有方法的 random.sample(li
  • Python 生成一定范围内不重复随机数 随机数 Python set 文章目录Python 生成一定范围内不重复随机数生成一定范围内随机数两种方法:一、利用set()特性去重二、调用random.sample()总结 生成一定范围内随机数 两种...
  • python中的uuid模块基于信息如MAC地址、时间戳、命名空间、随机数、伪随机数来uuid。具体方法有如下几个:uuid.uuid1() 基于MAC地址,时间戳,随机数生成唯一的uuid,可以保证全球范围内的唯一...
  • python中random生成不重复随机数的方法发布时间:2020-08-14 12:07:05来源:亿速云阅读:115作者:小新这篇文章给大家分享的是有关用python中random生成不重复随机数的方法的内容。小编觉得挺实用的,因此分享给...
  • python生成不重复随机整数

    千次阅读 2022-04-13 10:46:53
    python生成不重复随机整数 import random ran = random.sample(range(1, 10),9 ) print(type(ran)) for i in ran: print(i, end=' ')
  • 1打开我们的python编辑器,在新建的文件下,输入图中所示的代码,创建一个列表,列表长度就是我们需要的随机数个数,范围定义在提取随机数函数内。while(len(s)...
  • python生成四位随机数

    2020-11-21 02:20:23
    原博文2019-01-12 12:51 −有些时候需要发送短信给用户生成四位随机数字,这里在python中我们可以根据python自带的标准库random和string来实现。 random下有三个可以随机取数的函数,分别是choice,choices,sample ...
  • 主要介绍了Python生成不重复随机值的方法,实例分析了Python算法实现与Python自带方法的实现技巧,非常简单实用,需要的朋友可以参考下
  • python中的random模块用于生成伪随机数计算机的伪随机数是由随机种子根据一定的计算方法计算出来的数值。所以,只要计算方法一定,随机种子一定,那么产生的随机数就是固定的。python学习网,大量的免费python视频...
  • Python根据上下限生成不重复随机数1

    千次阅读 2020-12-22 17:54:51
    Python 2.7.5代码:#coding=utf-8import random#定义计数器,默认为0num=0#定义随机结果集,默认为空列表choose_resault=[]#最多可随机5次while num<5:#输入上下限min_num = input(u'随机数上限:')max_num = ...
  • numpy 中 的random模块有多个函数用于生成不同类型的随机数,常见的有 uniform、rand、random、randint、random_interges 下面介绍一下各自的用法 1、np.random.uniform的用法 np.random.uniform(low=0.0, high...
  • 【Python 基础教程】Python生成随机数

    千次阅读 多人点赞 2022-02-26 08:02:33
    记录了生成随机数的几种方式以及生成随机列表的几种方法。
  • 这里是我想要的:我需要Python生成一个简单的数字列表从0到1,000,000,000随机顺序,用于序列号(使用随机数,所以你能知道已经分配了多少个或做计时攻击很容易,即猜测下一个会出现)。这些数字与连接到它们的信息...
  • 主要介绍了Python编程实现生成特定范围内不重复多个随机数的2种方法,涉及Python基于random生成随机数的常见操作技巧,需要的朋友可以参考下
  • Python random 生成不重复随机数

    千次阅读 2020-12-20 16:45:58
    Python random 生成不重复随机数 先说结论: random.sample(range(10), n) random.sample(range(0, 10), n) 以上两条表示在范围0-9内不包括10生成n条的随机数 random.randint(0, 10) 以上表示在范围0-10内包括10...
  • Python不重复随机数(while循环)
  • Python产生一个数值范围内的不重复随机数,可以使用random模块中的random.sample函数,其用法如下: import random random.sample(population,k) 函数从序列或集合population中返回一个长度为k的随机数列表,并且...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 17,347
精华内容 6,938
关键字:

python生成不重复随机数