java吧 关注:1,244,878贴子:12,719,870
  • 5回复贴,共1

作业君 JAVA的随机数列求救~~~

只看楼主收藏回复

作业君的要求。。。‘
继续求搭救QAQ
Write a program that generates a sequence of 20 random die tosses and that prints the die values,
marking only the longest run, like this:
1 2 5 5 3 1 2 4 3 (2 2 2 2) 3 6 5 5 6 3 1
If there is more than one run of maximum length, mark the rst one.不要谷歌可以搜到那个啦~~ 谢谢~~


1楼2014-11-21 12:29回复
    二楼~~
    // len 决定骰数
    int len = 20, i, j, max = 1, start = 0, end = 1;
    // 多工投骰
    final Random rnd = new SecureRandom();
    final int[] rolls = IntStream.generate( ()->rnd.nextInt(6)+1 ).parallel().limit( len ).toArray();
    // 寻找最长相同。低效率。
    for ( i = 0 ; i < len ; i++ ) {
    for ( j = 1 ; j < i ; j++ )
    if ( rolls[i-j] != rolls[i] ) break;
    if ( j > max )
    start = (end = i + 1) - (max = j);
    }
    // 输出
    final StringBuilder str = new StringBuilder( len * 2 + 3 );
    IntStream.of( rolls ).forEach( k -> str.append( k ).append( ' ' ) );
    System.out.println( str.insert( start*2, '(').insert( end*2, ')' ) );


    3楼2014-11-21 13:32
    收起回复
      慢慢明白了,戴三百块的表和三百万的表,时间是一样的;喝三十块的酒和三千块的酒,呕吐是一样的;住三十平米的房和三百平米的房,孤独是一样的。总有一天你会明白,你内心真正的快乐,是物质世界永远给予不了的…抽十块的烟和抽100块的烟都会得肺癌,坐头等舱和坐经济舱失联了一样都回不来...所


      IP属地:上海来自WindowsPhone客户端5楼2014-11-21 15:07
      回复
        慢慢明白了,戴三百块的表和三百万的表,时间是一样的;喝三十块的酒和三千块的酒,呕吐是一样的;住三十平米的房和三百平米的房,孤独是一样的。总有一天你会明白,你内心真正的快乐,是物质世界永远给予不了的…抽十块的烟和抽100块的烟都会得肺癌,坐头等舱和坐经济舱失联了一样都回不来...所


        IP属地:上海来自WindowsPhone客户端6楼2014-11-21 15:07
        回复