设为首页收藏本站

Crossin的编程教室

 找回密码
 立即加入
楼主: crossin先生
打印 上一主题 下一主题

【每日一坑 1】 随机取数

  [复制链接]

1

主题

0

好友

120

积分

注册会员

Rank: 2

15#
发表于 2013-12-13 18:45:50 |只看该作者
  1. #coding:utf-8
  2. #从1到n 取m个数 1<=m<=n
  3. from random import randint

  4. print "---------------------------------"

  5. try:
  6.     n = input("Please input number of N > ")
  7. except NameError:
  8.     print "Please check your input, needs number only"
  9.     n = input("Please input number of N > ")
  10.    
  11. number_list = []
  12. for i in range(1,n+1):
  13.     number_list.append(i)
  14.    
  15. m = randint(1,n)
  16. print "Get",m,"number"
  17. get_number = []
  18. for i in range(0,m):
  19.     x = randint(1,n-1)
  20.     get_number.append(number_list[x])
  21.    
  22. print "\nDone\n"
  23. for i in get_number:
  24.     print i,
  25.    
  26. print "\n---------------------------------"
复制代码
回复

使用道具 举报

0

主题

0

好友

19

积分

新手上路

Rank: 1

14#
发表于 2013-12-13 15:32:16 |只看该作者
来填坑了~
def m(m, n):
    import random
    return [random.randint(1, n) for i in xrange(m)]
   
回复

使用道具 举报

7

主题

1

好友

269

积分

中级会员

Rank: 3Rank: 3

13#
发表于 2013-12-13 13:35:41 |只看该作者
xuefu 发表于 2013-12-13 11:47
楼主没说一定要用Python啊。。。吱吱,还不会Python

嗯嗯,用C很厉害的。
回复

使用道具 举报

0

主题

0

好友

79

积分

注册会员

Rank: 2

12#
发表于 2013-12-13 11:47:04 |只看该作者
byron 发表于 2013-12-13 08:55
你这是C啊?

楼主没说一定要用Python啊。。。吱吱,还不会Python
回复

使用道具 举报

0

主题

0

好友

14

积分

新手上路

Rank: 1

11#
发表于 2013-12-13 11:45:37 |只看该作者
本帖最后由 歪脑特 于 2013-12-13 11:53 编辑
  1. # Randomly pick m numbers from 1~n. 1<=m<=n.

  2. import random

  3. n = int(input("Input a value for n: "))
  4. m = int(input("Input a value for m: "))

  5. L = list(range(1,n))
  6. MList = []

  7. for i in range(m):
  8.     tmp = random.choice(L)
  9.     if tmp in MList:
  10.         tmp = random.choice(L)
  11.     MList.append(tmp)

  12. print(MList)
复制代码
回复

使用道具 举报

0

主题

0

好友

65

积分

注册会员

Rank: 2

10#
发表于 2013-12-13 11:18:34 |只看该作者
  1. import random

  2. def pick(n, m):
  3.     if 1<=m<=n:
  4.         resultnum = []
  5.         while(m > 0):
  6.             resultnum.append(random.randint(1,n))
  7.             m = m - 1
  8.         return (resultnum)
  9.     else:
  10.         print "Please make sure 1<=m<=n"

  11. if __name__ == "__main__":
  12.     n = int(input ("Please input a number n: "))
  13.     m = int(input ("Please input a number(Make sure 1<=m<=n) m: "))
  14.     print "Your result number is: " + str(pick(n, m))
复制代码
回复

使用道具 举报

0

主题

0

好友

66

积分

注册会员

Rank: 2

9#
发表于 2013-12-13 10:39:49 |只看该作者
本帖最后由 TongShan 于 2013-12-13 10:43 编辑
  1. import random

  2. def ball(n, m):
  3.     ball = random.sample(range(1, n+1), m)
  4.     ball.sort()
  5.     print ball
复制代码
回复

使用道具 举报

7

主题

1

好友

269

积分

中级会员

Rank: 3Rank: 3

8#
发表于 2013-12-13 08:55:27 |只看该作者
xuefu 发表于 2013-12-13 01:11
明显得到的数可能会重复。。。

你这是C啊?
回复

使用道具 举报

0

主题

0

好友

79

积分

注册会员

Rank: 2

7#
发表于 2013-12-13 01:11:25 |只看该作者
judy 发表于 2013-12-12 23:27
import random
def tool():
    m=input("需要几个数:")

明显得到的数可能会重复。。。
回复

使用道具 举报

0

主题

0

好友

79

积分

注册会员

Rank: 2

6#
发表于 2013-12-13 01:09:30 |只看该作者

回帖奖励 +5

本帖最后由 xuefu 于 2013-12-13 01:21 编辑
  1. #include <assert.h>
  2. #include <stdio.h>
  3. #include <stdlib.h>
  4. #include <time.h>

  5. int main(int argc, const char *argv[])
  6. {
  7.   int a, n, m, i = 0, j = 0;
  8.   int* secret;

  9.   printf("Input n: ");
  10.   scanf("%d", &n);

  11.   assert(n > 1 || n == 1);

  12.   printf("Input m: ");
  13.   scanf("%d", &m);

  14.   if(m > 0 && !(m > n))
  15.     printf("Below is the number: \n");
  16.   else
  17.   {
  18.     printf("the number m should be greater than zero and not larger than n.\n");
  19.     exit(0);
  20.   }

  21.   secret = malloc(sizeof(int) * m);
  22.   srand(time(NULL));

  23.   while(m--)
  24.   {
  25.     /* generate the number you want */
  26.     while(1)
  27.     {
  28.       a = rand() % n + 1;
  29.       /* check a whether is repeated */
  30.       for (j = 0; j < i; j++)
  31.       {
  32.         if (a == secret[j])
  33.         {
  34.           a = 0;
  35.           break;
  36.         }
  37.       }
  38.       if(a != 0)
  39.         break;
  40.     }
  41.     secret[i] = a;
  42.     printf("%d  ", secret[i++]);
  43.   }
  44.   printf("\n");

  45.   free(secret);
  46.   return 0;
  47. }
复制代码
回复

使用道具 举报

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

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

GMT+8, 2024-5-17 17:21 , Processed in 0.032949 second(s), 21 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

回顶部