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

Crossin的编程教室

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

【每日一坑 1】 随机取数

  [复制链接]

0

主题

2

好友

46

积分

新手上路

Rank: 1

发表于 2018-5-8 18:47:59 |显示全部楼层
请问老师,每日一坑没有选出最佳答案的吗?
回复

使用道具 举报

174

主题

45

好友

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

发表于 2018-5-9 00:01:44 |显示全部楼层
coolqing 发表于 2018-5-8 18:47
请问老师,每日一坑没有选出最佳答案的吗?

没有,开放式的。一般下一次里面会选一个来讲解,但并不是说别的方法不好
#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

0

主题

0

好友

6

积分

新手上路

Rank: 1

发表于 2018-6-5 20:23:30 |显示全部楼层
#!usr/bin/env python3

import random

def TheRandom(n,m):
    TheSet = []

    for i in range(m):
        t = random.randint(1, n)
        if t not in TheSet:
            TheSet.append(t)

    print(TheSet)


TheRandom(1000,99)
回复

使用道具 举报

1

主题

0

好友

31

积分

新手上路

Rank: 1

发表于 2018-6-10 11:50:04 |显示全部楼层
import random

n = int(input('please enter a number:'))
m = int(input("How many numbers do you want?"))
def wow(n, m):
    if m <= n and m >= 1:
        list = []
        i = 0
        while i < m:
            list.append(random.randint(1, n))
            i += 1
        print(list)
    else:
        m = int(input("The number should <=n and >=1"))
        wow(n, m)

wow(n, m)
回复

使用道具 举报

0

主题

0

好友

24

积分

新手上路

Rank: 1

发表于 2018-6-13 14:00:48 |显示全部楼层
import random
def ball():
   m=eval(input("需要输出几个数"))
   n=eval(input("输出数的最大数是多少?"))
   if 1<=m <=n:
       for i in range(1,m+1):
         print(random.randint(1,n))
   else:
        print("输出最大数必须大于等于输出的数字个数,请重新输入!")
        ball()
ball()
回复

使用道具 举报

2

主题

0

好友

66

积分

注册会员

Rank: 2

发表于 2018-8-24 14:15:38 |显示全部楼层
#coding:utf-8

import random
def choice(n,m):

    if 1<=int(m)<=int(n):
        return sorted(random.sample(xrange(1,int(n)+1),int(m)))
    else:
        return"请确认‘1<m<n'!"

print choice(100,5)
回复

使用道具 举报

0

主题

0

好友

8

积分

新手上路

Rank: 1

发表于 2019-9-4 17:13:14 |显示全部楼层
#coding=utf-8
from random import randint
n=int(input("请输入整数n:\n"))
m=int(input("请输入整数m(1<=m<=n):\n"))
def test_One():
    if 1<=m<=n:
        for i in range(0,m):
         print(randint(1,n))

    else:
        print("输入的m,n值不符合条件")
test_One()
回复

使用道具 举报

0

主题

0

好友

8

积分

新手上路

Rank: 1

发表于 2019-9-4 17:16:16 |显示全部楼层
Lisa 发表于 2019-9-4 17:13
#coding=utf-8
from random import randint
n=int(input("请输入整数n:\n"))

未考虑重复问题,代码需补充优化
回复

使用道具 举报

3

主题

1

好友

111

积分

注册会员

Rank: 2

发表于 2021-2-10 21:36:26 |显示全部楼层
写了一下午和一晚上,总算把坑都给填完了

这个程序可以解决重复出现数字的问题

希望老师能看看,更欢迎提出建议和意见

谢谢啦
  1. import random

  2. #从1~n中随机取m个数
  3. print('从1~n中随机取m个数')
  4. print('tips:m,n都必须为正整数且1≤m≤n')
  5. global m
  6. global n
  7. m = float(input('enter m:'))
  8. n = float(input('enter n:'))
  9. #此处暂时不转换为整数形式以防止输入内容不符合条件
  10. #下面这个while循环可以使m,n最终均为符合条件的值
  11. while (m<1) or (n<1) or (n<m) or (int(m % 1) is not 0) or (int(n % 1) is not 0):
  12.     print('注意!m,n都必须为正整数且1≤m≤n!')
  13.     m = float(input('enter m again:'))
  14.     n = float(input('enter n again:'))
  15.     if (1 <= m <= n) and (int(m % 1) is 0) and (int(n % 1) is 0):
  16.         break
  17. m = int(m)
  18. n = int(n)
  19. result_list = []
  20. for i in range(m):
  21.     result_list.append(random.randint(1, n))
  22. # print(result_list)
  23. #下面这个循环可以使结果中的数不重复
  24. while len(set(result_list)) < m:
  25.     daiti = []
  26.     for a in set(result_list):
  27.         daiti.append(a)
  28.     result_list = daiti
  29.     result_list.append(random.randint(1, n))
  30. print('\n结果为:')
  31. print(result_list)
复制代码
回复

使用道具 举报

3

主题

1

好友

111

积分

注册会员

Rank: 2

发表于 2021-2-10 21:38:54 |显示全部楼层
FERRYMAN 发表于 2021-2-10 21:36
写了一下午和一晚上,总算把坑都给填完了

这个程序可以解决重复出现数字的问题

老师可以仔细讲讲“集合”这个东西吗?

写程序的时候用了set(),然后就被绕晕了
回复

使用道具 举报

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

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

GMT+8, 2024-4-19 05:19 , Processed in 0.019685 second(s), 21 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

回顶部