免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 6634 | 回复: 15
打印 上一主题 下一主题

[数值计算] 随机数列 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2013-08-13 10:14 |只看该作者 |倒序浏览
有50个1和50个2
怎么生成这种随机排列的额数列
1 2 2 2 1 1 1 2  2  2  1 2 1 2 2 1 1 。。。。。

论坛徽章:
0
2 [报告]
发表于 2013-08-13 10:27 |只看该作者
  1. for((i=1;i<=100;i++));do a=$(($RANDOM%3));if [[ $a -ne 0 ]]; then echo $a; fi done
复制代码
这个shell的,试试

论坛徽章:
50
15-16赛季CBA联赛之广夏
日期:2018-11-05 09:42:462015年亚冠纪念徽章
日期:2015-07-23 11:58:122015亚冠之广州富力
日期:2015-07-07 08:26:172015亚冠之塔什干棉农
日期:2015-06-29 09:08:072015年亚洲杯之伊朗
日期:2015-03-08 20:51:012015年迎新春徽章
日期:2015-03-04 09:58:11未羊
日期:2014-10-16 22:41:47处女座
日期:2014-10-16 15:33:33酉鸡
日期:2014-03-13 12:54:10巳蛇
日期:2014-03-10 14:39:052015亚冠之德黑兰石油
日期:2015-07-29 12:46:372015亚冠之德黑兰石油
日期:2015-08-07 12:54:11
3 [报告]
发表于 2013-08-13 10:40 |只看该作者
  1. awk 'BEGIN{srand();for(i=1;i<=100;i++)printf"%d ",int(rand()*10%2+1);print ""}'
复制代码

论坛徽章:
50
15-16赛季CBA联赛之广夏
日期:2018-11-05 09:42:462015年亚冠纪念徽章
日期:2015-07-23 11:58:122015亚冠之广州富力
日期:2015-07-07 08:26:172015亚冠之塔什干棉农
日期:2015-06-29 09:08:072015年亚洲杯之伊朗
日期:2015-03-08 20:51:012015年迎新春徽章
日期:2015-03-04 09:58:11未羊
日期:2014-10-16 22:41:47处女座
日期:2014-10-16 15:33:33酉鸡
日期:2014-03-13 12:54:10巳蛇
日期:2014-03-10 14:39:052015亚冠之德黑兰石油
日期:2015-07-29 12:46:372015亚冠之德黑兰石油
日期:2015-08-07 12:54:11
4 [报告]
发表于 2013-08-13 10:50 |只看该作者
回复 2# wsleichao3

你这个不足100个数吧?
   

论坛徽章:
0
5 [报告]
发表于 2013-08-13 11:00 |只看该作者
回复 4# WilliBhamlll
我错了,瞄了眼要求就写了,补上
  1. #!/bin/bash
  2. i=1
  3. k=0
  4. l=0
  5. while [[ $i -ne 0 ]]
  6. do
  7.          a=$(($RANDOM%3));
  8.    
  9.         if [[ $k -ne 50 && $a -eq 1 ]];then
  10.                 echo $a;
  11.                 k=$(($k+1));
  12.         fi  
  13.         if [[ $l -ne 50 && $a -eq 2 ]];then
  14.                 echo $a;
  15.                 l=$(($l+1));
  16.         fi  

  17.         if [[ $(($k+$l)) -eq 100 ]];then
  18.                 i=0;
  19.         fi  
  20.    
  21. done
复制代码

论坛徽章:
6
摩羯座
日期:2013-08-24 10:43:10狮子座
日期:2013-08-25 10:27:06天秤座
日期:2013-09-11 20:28:44午马
日期:2014-09-28 16:06:0015-16赛季CBA联赛之八一
日期:2016-12-19 13:55:0515-16赛季CBA联赛之天津
日期:2016-12-20 14:01:23
6 [报告]
发表于 2013-08-13 11:11 |只看该作者
楼主要求是:50个1,50个2
不是:x个1,y个2,x+y=100

论坛徽章:
39
辰龙
日期:2013-08-21 15:45:192015亚冠之广州富力
日期:2015-05-12 16:34:52亥猪
日期:2015-03-03 17:22:00申猴
日期:2015-03-03 17:21:37未羊
日期:2014-10-10 13:45:41戌狗
日期:2014-06-17 09:53:29巨蟹座
日期:2014-06-12 23:17:17双鱼座
日期:2014-06-10 12:42:44寅虎
日期:2014-06-09 12:52:172015亚冠之卡尔希纳萨夫
日期:2015-05-24 15:24:35黄金圣斗士
日期:2015-12-02 17:25:0815-16赛季CBA联赛之吉林
日期:2017-06-24 16:43:52
7 [报告]
发表于 2013-08-13 11:16 |只看该作者
本帖最后由 关阴月飞 于 2013-08-13 11:36 编辑

来个shell数组的:50个1,50个2
  1. #!/bin/bash
  2. a=(`seq 50 |awk '{print 1,2}'`)
  3. for i in `seq ${#a[@]}`
  4. do
  5.         n=$[RANDOM%${#a[@]}]
  6.         echo -n  "${a[n]} "
  7.         unset a[n]
  8.         a=(`echo ${a[@]}`)
  9. done
  10. echo
复制代码

论坛徽章:
6
摩羯座
日期:2013-08-24 10:43:10狮子座
日期:2013-08-25 10:27:06天秤座
日期:2013-09-11 20:28:44午马
日期:2014-09-28 16:06:0015-16赛季CBA联赛之八一
日期:2016-12-19 13:55:0515-16赛季CBA联赛之天津
日期:2016-12-20 14:01:23
8 [报告]
发表于 2013-08-13 11:37 |只看该作者
@关阴月飞很独到,但for循环不如直接写明做100次。

论坛徽章:
0
9 [报告]
发表于 2013-08-13 11:52 |只看该作者
awk 'BEGIN{for(i=1;i<=50;i++)a[i]=1;for(i=51;i<=100;i++)a[i]=2;for(i in a)print a[i]}'

论坛徽章:
6
摩羯座
日期:2013-08-24 10:43:10狮子座
日期:2013-08-25 10:27:06天秤座
日期:2013-09-11 20:28:44午马
日期:2014-09-28 16:06:0015-16赛季CBA联赛之八一
日期:2016-12-19 13:55:0515-16赛季CBA联赛之天津
日期:2016-12-20 14:01:23
10 [报告]
发表于 2013-08-13 16:05 |只看该作者
  1. $ a[1]=50
  2. $ a[2]=50
  3. $ while [ $((a[1]+a[2])) -gt 0 ]; do n=$((RANDOM%2+1)); if [ ${a[$n]} -gt 0 ]; then echo $n; ((a[$n]--)); fi; done
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP