现在的位置: 首页 > 综合 > 正文

【转】一个报数游戏(约瑟夫环问题)

2013年07月29日 ⁄ 综合 ⁄ 共 1409字 ⁄ 字号 评论关闭

今天早上,群里有人除了道题:

“随便给一个数 比如100,那么从1到100围成一个圆圈,然后就类似123123报数一样逢3就舍掉,一直这样轮询   那么最后剩下来的那个数是多少? ” 

这个也算是老题目了,园子里边也曾针对此题有过激烈的讨论,那时候追求用oo来解决。如今既然又有人提了出来,我便抽了点时间写了写自己的想法:

 

代码

<script type="text/javascript">
var a_game = function(pNum){
    
var players = [];
    
for(var i=1;i<=pNum;i++){
        players.push(i);    
    }
    
var flag=0;
    
while(players.length>1){
        
var outPlayerNum = 0,len=players.length;
        
for(var i=0;i<len;i++){
            flag
++;
            
if(flag==3){
                flag
=0;
                document.writeln(
"出局:"+players[i-outPlayerNum]);
                players.splice(i
-outPlayerNum,1);
                outPlayerNum
++;
            }
        }
    }
    
return players[0];
};
document.writeln(
"<br/>剩下:"+a_game(100)); 
</script>

 

 

结果如下:

 

代码

出局:3 出局:6 出局:9 出局:12 出局:15 出局:18 出局:21 出局:24 出局:27 出局:30 出局:33 出局:36 出局:39 出局:42 出局:45 出局:48 出局:51 出局:54 出局:57 出局:60 出局:63 出局:66 出局:69 出局:72 出局:75 出局:78 出局:81 出局:84 出局:87 出局:90 出局:93 出局:96 出局:99 出局:2 出局:7 出局:11 出局:16 出局:20 出局:25 出局:29 出局:34 出局:38 出局:43 出局:47 出局:52 出局:56 出局:61 出局:65 出局:70 出局:74 出局:79 出局:83 出局:88 出局:92 出局:97 出局:1 出局:8 出局:14 出局:22 出局:28 出局:35 出局:41 出局:49 出局:55 出局:62 出局:68 出局:76 出局:82 出局:89 出局:95 出局:4 出局:13 出局:23 出局:32 出局:44 出局:53 出局:64 出局:73 出局:85 出局:94 出局:5 出局:19 出局:37 出局:50 出局:67 出局:80 出局:98 出局:17 出局:40 出局:59 出局:86 出局:10 出局:46 出局:77 出局:26 出局:71 出局:31 出局:100 出局:58 
剩下
:91

 

 

 

 

转自:http://www.cnblogs.com/bravfing/archive/2010/08/04/1791782.html

 

 

 

抱歉!评论已关闭.