请选择 进入手机版 | 继续访问电脑版
设为首页收藏本站

Crossin的编程教室

 找回密码
 立即加入
楼主: crossin先生

【每日一坑 1】 随机取数

  [复制链接]

0

主题

0

好友

16

积分

新手上路

Rank: 1

发表于 2017-10-4 17:20:34 |显示全部楼层
  1. # -*- coding:utf-8 -*-
  2. '''
  3. 题目:
  4. 从1~n中,随机取m个数。1 <= m <= n
  5. '''
  6. import random

  7. print 'list_n = [1,2,3,4,5,6,7,8,9,0]'
  8. print 'plz input the value of m(0<=m<=10):'
  9. m = input()
  10. list_n = [1,2,3,4,5,6,7,8,9,0]
  11. list_m = random.sample(list_n,m)

  12. print list_m
复制代码
回复

使用道具 举报

2

主题

0

好友

60

积分

注册会员

Rank: 2

发表于 2018-2-22 10:33:42 |显示全部楼层
本帖最后由 wwyy4ever 于 2018-2-22 10:55 编辑

老师,可以讲解一下return sorted(random.sample([i for i in xrange(1,int(n)+1)], int(m)))中括号里那部分内容吗?
改成return sorted(random.sample(range(1,int(n)+1), int(m)))可以吧
回复

使用道具 举报

174

主题

45

好友

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

发表于 2018-2-22 13:04:38 |显示全部楼层
wwyy4ever 发表于 2018-2-22 10:33
老师,可以讲解一下return sorted(random.sample(, int(m)))中括号里那部分内容吗?
改成return sorted(ran ...

是的,可以。
不过你中间少半个括号
#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

4

主题

0

好友

98

积分

注册会员

Rank: 2

发表于 2018-2-22 18:08:40 |显示全部楼层
#!/usr/bin/python
# -*- coding: UTF-8 -*-

from random import randint
n = int(input("请输入抽取上限n:"))
i = m = int(input("请输入抽取的次数m:"))
res=[]
while i:
    num=randint(1,n)
    res.append(num)
    i-=1
print ('从(1,%d)中随机抽取%d次的结果为:%s\n'%(n,m,res))
回复

使用道具 举报

0

主题

0

好友

8

积分

新手上路

Rank: 1

发表于 2018-2-23 15:25:06 |显示全部楼层
# coding uft-8

import random

m = int(raw_input("How many numbers do you want?"))
n = int(raw_input("1-?"))
i = random.sample(range(1, n+1), m)
print sorted(i)
回复

使用道具 举报

0

主题

0

好友

4

积分

新手上路

Rank: 1

发表于 2018-3-30 10:01:55 来自手机 |显示全部楼层
本帖最后由 刘友会 于 2018-3-30 10:06 编辑

# -*- coding: UTF-8 -*-
# 超级大乐透
import random

def quShu(m, n):
    lst = range(1, n+1)
    count = 0
    newLst = []
    while count < m:
        randomNum = random.choice(lst)
        if randomNum not in newLst:
            newLst.append(randomNum)
            count += 1
    return newLst

qianQu = sorted(quShu(5, 35))
houQu = sorted(quShu(2, 12))

for i in qianQu:
    print i,
print '|',
for j in houQu:
    print j,
回复

使用道具 举报

0

主题

2

好友

46

积分

新手上路

Rank: 1

发表于 2018-4-18 15:56:19 |显示全部楼层
from random import randint    #from 模块名 import 方法名
m=input()
n=input()
for i in range(0,m):
    if 1<=m<=n:
        num = randint(1, n)
        print num
else:
    print 'mistake'
回复

使用道具 举报

0

主题

0

好友

24

积分

新手上路

Rank: 1

发表于 2018-5-3 18:05:02 |显示全部楼层
from random import randint
n=int(raw_input('从哪要'))
m=int(raw_input('要多少个'))
i=1
c=[]

def chachong(x,y):#防止重复选取
    a=randint(1,y)
    if x==[]:
        #print a,'\n'
        return a
        
    elif x!=[]:
        for l in x:
            if a==l:
                #print c,a,'\n'
                chachong(x,y) #如果与已有数字重复,重新选取
        return a
            

while i<=m:
    b=chachong(c,n)
    c.append(b)
    i+=1

想请教一下为什么取出来的数字仍然会有重复
回复

使用道具 举报

174

主题

45

好友

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

发表于 2018-5-3 23:19:11 |显示全部楼层
小砂 发表于 2018-5-3 18:05
from random import randint
n=int(raw_input('从哪要'))
m=int(raw_input('要多少个'))

不要随便用递归函数,而且你也没用对。里面 chachong 并没有返回结果
#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

0

主题

0

好友

24

积分

新手上路

Rank: 1

发表于 2018-5-7 11:06:07 |显示全部楼层
crossin先生 发表于 2018-5-3 23:19
不要随便用递归函数,而且你也没用对。里面 chachong 并没有返回结果

了解了,谢谢
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即加入

QQ|手机版|Archiver|Crossin的编程教室 ( 苏ICP备15063769号  

GMT+8, 2024-3-29 10:07 , Processed in 0.026244 second(s), 21 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

回顶部