锁定老帖子 主题:JAVA每日一题01
精华帖 (0) :: 良好帖 (5) :: 新手帖 (2) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2009-04-22
ruby 代码:
5.times do arr=(1..49).to_a p (0..5).inject([]){|result,index| result << arr.delete_at(rand(49-index))} end result: [41, 18, 15, 43, 40, 37] [18, 26, 33, 15, 16, 27] [14, 44, 49, 42, 8, 20] [9, 42, 30, 28, 48, 19] [11, 39, 21, 14, 35, 28] |
|
返回顶楼 | |
发表时间:2009-04-22
最后修改:2009-04-22
Haskell:
import Random import Data.List import Control.Monad randomSelectFrom size ls = randomMove size [] ls where randomMove 0 rs xs = print rs randomMove n rs xs = do idx <- randomRIO (0, length xs - 1) let em = xs !! idx randomMove (n-1) (em:rs) (delete em xs) main = sequence$ replicate 5 (randomSelectFrom 6 [1..49]) Scala: (1 to 5) foreach { _ => println(List.range(1,50).sort{ (_,_) => Math.random > 0.5}.take(6)) } Java: import static java.util.Collections.*; import java.util.*; public class RandomS { public static void main(String[] args){ for(int c = 0; c < 5;c ++){ List<Integer> lst = new ArrayList<Integer>(); for(int n = 1;n <= 49;n ++) lst.add(n); shuffle(lst); System.out.println(lst.subList(0,6)); } } } |
|
返回顶楼 | |
发表时间:2009-04-23
把Haskell版减少了两行:
import Random import Data.List import Control.Monad shuffle ls@(x:xs) = do elm <- liftM (ls !!) (randomRIO(0 ,length xs)) liftM (elm:) (shuffle$ delete elm ls) shuffle _ = return[] main = sequence [shuffle[1..49] >>= print.take 6 | c <- [1..5]] |
|
返回顶楼 | |
发表时间:2009-04-23
最后修改:2009-04-23
shuffle 犯规呀~~
不过 ruby 实现 shuffle 就一句 sort_by{rand} 5.times{ p((1..49).sort_by{rand}[1..7]) } 后知后觉的补充:嗯…… 和 QuakeWang 的一样 |
|
返回顶楼 | |
发表时间:2009-04-23
night_stalker 写道 shuffle 犯规呀~~
不过 ruby 实现 shuffle 就一句 sort_by{rand} 5.times{ p ((1..49).sort_by{rand}[0..6]) } 就没有规则,何来犯规? |
|
返回顶楼 | |
发表时间:2009-04-23
Eastsun 写道 就没有规则,何来犯规? 不好意思,口癖…… 是褒义词…… 譬如我常常说“卡莲萌犯规了”,也是不带规则的 |
|
返回顶楼 | |
发表时间:2009-04-23
night_stalker 写道 shuffle 犯规呀~~
不过 ruby 实现 shuffle 就一句 sort_by{rand} 5.times{ p((1..49).sort_by{rand}[1..7]) } 后知后觉的补充:嗯…… 和 QuakeWang 的一样 哇,这个sort_by{rand}[1..7]好强大呀!!呼呼~~ |
|
返回顶楼 | |
发表时间:2009-04-23
华为的兄弟吧~~!!
|
|
返回顶楼 | |
发表时间:2009-04-24
最后修改:2009-04-24
看看 这里:http://www.iteye.com/topic/373123同类问题
|
|
返回顶楼 | |