[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[其他] 随机数问题

现在需要一段代码来取随机数,
set max=
set min=
set n=
......
取max到min之间的数,取N个数。N小于max-min。数字不能相同
求代码  拜谢

本帖最后由 netdzb 于 2020-3-25 12:43 编辑

回复 1# chouxia


import random

max = 100
min = 10
n = 5
for i in range(n):
        print(random.randint(min,max))

这要求用python还是挺容易的。
1

评分人数

    • Aub: 还是挺好的技术 + 1

TOP

本帖最后由 netdzb 于 2020-3-25 12:44 编辑

回复 1# chouxia

你到底要做什么东西?

运行的结果如下:

84
93
70
50
37

TOP

本帖最后由 Aub 于 2020-3-26 18:18 编辑
  1. import random
  2. import math
  3. max = random.randint(9999, 999999)
  4. min = random.randint(0, (max - 2))
  5. n = random.randint(1, ((max - min) - 1))
  6. a = random.randint((min + 100), (min + 3))
  7. for __count in range(n):
  8.     if (a + 1 < max - 1 or max - 1 < a + 1):
  9.         if (a < max):
  10.             b = 0
  11.             b = random.randint((a + 1), (max - 1))
  12.             print(b)
  13.             a = 0
  14.             a = b
  15.         else:
  16.             b = 0
  17.             b = random.randint((max - 1), (a + 1))
  18.             print(b)
  19.             a = 0
  20.             a = b
  21.     else:
  22.         print('stop')
复制代码
要做不重复数还挺复杂的
A pupil

TOP

回复 2# netdzb


    可能会重复
A pupil

TOP

回复 4# Aub


    Python
A pupil

TOP

回复 4# Aub

学习一下你的代码。

TOP

本帖最后由 went 于 2020-3-25 21:46 编辑
  1. @echo off
  2. set "max=100"
  3. set "min=40"
  4. set "n=20"
  5. REM 空格不能去掉
  6. set "str= "
  7. :loop
  8. set /a "a=%random%%%(%max%-%min%+1)+%min%"
  9. call set "newStr=%%str:%a%=%%"
  10. if "%newStr%" equ "%str%" (
  11. REM 不重复,添加进字符串
  12. set "str=%str% %a%"
  13. set /a "n-=1"
  14. )
  15. if "%n%" neq "0" goto :loop
  16. REM 拼接成了字符串,用for自己截取数字即可
  17. echo %str%
  18. pause&exit
复制代码
保存为bat,ANSI编码
2

评分人数

    • Aub: 还是挺好的技术 + 1
    • smss:技术 + 1

TOP

本帖最后由 Aub 于 2020-3-26 15:49 编辑

回复 8# went


重复了
A pupil

TOP

回复 7# netdzb


    又写错了,现在改了一下
A pupil

TOP

回复 9# Aub


字符串长度有限,n值不能过大
你测试的数据是啥

TOP

回复 11# went


   
4# Aub
A pupil

TOP

回复 12# Aub

看不懂Python...

TOP

回复 13# went


    你用DOS命令衡量Python
A pupil

TOP

回复 8# went


    标签后不用空格
A pupil

TOP

返回列表