机器人 救救瓜
Toggle navigation
Home
SCM-tool
Linux
Jenkins
SVN
other
About Me
Archives
Tags
Shell 和 python 取范围内随机整数并去重
2021-02-20 12:17:21
1121
0
0
gua_l
## python 中随机数 ### 模块random中一些重要的函数 函 数 描 述 random() 返回一个0~1(含)的随机实数 getrandbits(n) 以长整数方式返回n个随机的二进制位 uniform(a, b) 返回一个a~b(含)的随机实数 randrange([start], stop, [step]) 从range(start, stop, step)中随机地选择一个数 choice(seq) 从序列seq中随机地选择一个元素 shuffle(seq[, random]) 就地打乱序列seq sample(seq, n) 从序列seq中随机地选择n个值不同的元素 ### 这里使用sample的一个例子 ``` from random import sample print('MY RED : {}'.format(sample(list(range(1,34,1)), 6))) print('MY BLUE : {}'.format(sample(list(range(1,17,1)), 1))) ``` ``` (venv) C:\Users\LTE-LCFeng\PycharmProjects\ssq\venv>python ssq.py MY RED : [9, 1, 24, 26, 3, 6] MY BLUE : [6] ``` ## Shell 中随机数 ### shell的RANDOM函数 范围 0~32767 ``` echo $RANDOM ``` 取小范围内随机数,对随机结果取模N , 可取到0~(N-)1 内的随机数 取1~ 6 的随机数,只需加1 ``` echo $[$RANDOM%6+1] ``` ### 一个范例 在1-33 中取6个不重复的随机数,在1-16中取1随机数 ``` #!/bin/bash RED_D=33 BLUE_D=16 RED_MAX=6 count=0 touch RED.txt while [ $count -lt ${RED_MAX} ] do flag=$(expr 6 - $count) while [ $flag -gt 0 ] do flag=$(expr $flag - 1) RED=$[$RANDOM%${RED_D}+1] echo $RED >>RED.txt done cat RED.txt | sort|uniq >RED1.txt count=$(cat RED1.txt|wc -l) done echo "RED NUMBER (1~${RED_D})|BLUE NUMBER (1~${BLUE_D})" cat RED1.txt | tr "\n" " " echo "| $[$RANDOM%${BLUE_D}+1]" rm -f RED* ``` ``` ./ss.sh RED NUMBER (1~32)|BLUE NUMBER (1~16) 12 14 21 24 3 5 | 7 ```
Pre:
python 笔记之 Python 推导
Next:
linux 后台执行相关切换
0
likes
1121
Weibo
Wechat
Tencent Weibo
QQ Zone
RenRen
Submit
Sign in
to leave a comment.
No Leanote account?
Sign up now.
0
comments
More...
Table of content
No Leanote account? Sign up now.