TC官方合作论坛

 找回密码
 立即注册
查看: 1510|回复: 9

[讨论] 嗯 夜猫子们 出来想个算法吧

[复制链接]
发表于 2016-6-6 23:52:43 | 显示全部楼层 |阅读模式

马上加入TC

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
5个人  三间房  随机排列 每间房人数最高2人 最低1人
简单明了   想个算法吧

回复

使用道具 举报

发表于 2016-6-7 01:31:06 | 显示全部楼层
本帖最后由 孤映楼 于 2016-6-7 01:32 编辑
  1. var 人 = array()
  2.     var 房间 = array()
  3.    
  4.     房间 = array("1","2","3")
  5.     人 = array("1","2","3","4","5")
  6.    
  7.     var 新顺序 = array()
  8.     新顺序[0] = array()
  9.     新顺序[1] = array()
  10.     新顺序[2] = array()
  11.     //先随机排列房间
  12.     for(var i = 3; i > 0; i--)
  13.         var x = rnd(0,i-1)
  14.         新顺序[3-i]["房间"] = 房间[x]
  15.         var 大小 = arraysize(房间)
  16.         房间[x] = 房间[大小-1]
  17.         arraypop(房间,"")
  18.     end
  19.    
  20.     //随机排列人
  21.     var 房间下标 = 0
  22.     var 人分组
  23.     for(var i = 5; i > 0; i--)
  24.         var x = rnd(0,i-1)
  25.         人分组 = 人分组&人[x]&","
  26.         var 大小 = arraysize(人)
  27.         人[x] = 人[大小-1]
  28.         arraypop(人,"")
  29.         
  30.         if(i%2 == 0 || i == 1)
  31.             人分组 = strcut(人分组,1,false)
  32.             新顺序[房间下标]["人"] = array()
  33.             新顺序[房间下标]["人"] = 人分组
  34.             人分组 = ""
  35.             房间下标++
  36.         end
  37.     end
  38.    
  39.     traceprint(新顺序)
复制代码


回复 支持 反对

使用道具 举报

发表于 2016-6-7 01:33:44 | 显示全部楼层
  1. 输出>>"array("0"=array("房间"="1","人"="1,3"),"1"=array("房间"="3","人"="2,5"),"2"=array("房间"="2","人"="4"))"
复制代码


回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-6-7 01:35:48 | 显示全部楼层


.......兄弟幸苦了   兄弟知道我这个程序写了多少行?

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-6-7 10:15:33 | 显示全部楼层
附上源码,实现上图gif,并满足条件只是不到10行代码


  1. 人=数组("甲","乙","丙","丁","戊","")
  2.     遍历(变量 i =2; i < 8; i++)
  3.         随机人=随机数(1,数组大小(人))
  4.         数组获取元素(人,随机人-1,B)
  5.         标签设置文本("标签"&i,B)
  6.         数组指定位置删除(人,随机人-1)
复制代码




回复 支持 反对

使用道具 举报

发表于 2016-6-7 17:38:14 | 显示全部楼层
不一样,我首先做了房间随即,然后要用二维数组存
你是直接赋值给标签,少了临时存储判断
回复 支持 反对

使用道具 举报

发表于 2016-6-7 17:42:36 | 显示全部楼层
忘记了,获取数组里,可以直接用下标取,多做了点判断
回复 支持 反对

使用道具 举报

发表于 2016-6-8 04:10:50 | 显示全部楼层
自己开发自己用,功能 一样的话,10行和100行和1000行 没区别。
然而  我并不会  为了  把 1000行 简化 成  100行 而费  脑筋。这样

其实,  简化 后的  代码 重用性和 可扩展性 是不是会 提升,这个很难说,谁 知道你下一次 的需求是什么样子的?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-6-8 09:07:02 | 显示全部楼层
谢谢各位厚爱
回复 支持 反对

使用道具 举报

发表于 2016-7-1 11:10:41 | 显示全部楼层
54545
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条

关闭

小黑屋|TC官方合作论坛 (苏ICP备18045623号)

GMT+8, 2024-5-21 15:14 , Processed in 0.045547 second(s), 23 queries .

Powered by 海安简单软件服务部

© 2008-2019 版权所有 保留所有权利

快速回复 返回顶部 返回列表