Jose, That's it. Here it is! f=: 13 :'x ([ (1 }. ([: <:[) |. ])^:(1 <[: #])^:_ [:i.]) y' 4 f 38 37 Linda
-----Original Message----- From: [email protected] [mailto:[email protected]] On Behalf Of Jose Mario Quintana Sent: Saturday, April 27, 2013 9:59 AM To: Programming forum Subject: Re: [Jprogramming] rosettacode 4 ([ (1 }. <:@[ |. ])^:(1 < #@])^:_ i.@]) 38 37 On Apr 27, 2013 4:47 AM, "Linda Alvord" <[email protected]> wrote: > David had the right answer of 37 as the best position to survive when > every 4th prisoner is killed in a group of 38. Here's a new version > now that I understand the problem better. > > jolla=: dyad define > K=:i.y > while. 1<$K do. K=:1}.(<:x)|.K end. > K > ) > > 3 jolla 41 > 30 > 4 jolla 38 > 37 > > I still think there is a "one liner" in its future, but I'm not too > good at that yet. > > http://rosettacode.org/wiki/Josephus_problem#J > > Linda > > -----Original Message----- > From: [email protected] > [mailto:[email protected]] On Behalf Of Linda > Alvord > Sent: Thursday, April 25, 2013 12:54 PM > To: [email protected] > Subject: Re: [Jprogramming] rosettacode > > If there are 38 people in a line and every 4th on is killed, where > would you stand? > > > josephus =: dyad define NB. explicit form, assume executioner starts > at position 0 > NB. use: SKIP josephus NUMBER_OF_PRISONERS > N =: y > K =: N | x > EXECUTIONER =: 0 > PRISONERS =: i. N > kill =: ] #~ (~: ([: i. #)) > while. 1 (< #) PRISONERS do. > EXECUTIONER =: (# PRISONERS) | <: K + EXECUTIONER > PRISONERS =: EXECUTIONER kill PRISONERS > end. > ) > > 3 josephus 41 > 30 > 4 josephus 38 > 37 > > > jolla=: dyad define > B=:_1}"1 ((>.y%x) ,x)$i.y > G=:(-.2|y)|.(-.(i.y) e. B)#i.y > while. y>$B do. > B=:B,_1{"1((>.($G)%x) ,x)$G > G=:(-.(i.y) e. B)#i.y > end. > _1}B > ) > > 3 jolla 41 > 30 > 4 jolla 38 > 18 > > David Lambert's function chooses the 37th position. Mine chooses the e. > Where would you stand? > > Linda > > -----Original Message----- > From: [email protected] > [mailto:[email protected]] On Behalf Of David > Ward Lambert > Sent: Thursday, April 18, 2013 11:20 PM > To: programming > Subject: [Jprogramming] rosettacode > > Please modify these new entries as you please: > http://rosettacode.org/wiki/Josephus_problem#J > > http://rosettacode.org/wiki/Continued_fraction/Arithmetic/Construct_fr > om_rat > ional_number#J > The continued fraction solution has some oddities. Returning _ to > signal "finished" converts the output vector to floating point. > That's why I excluded the 314285714 100000000x example. The `y is 8' > input to r2cf__CF is arbitrary and I have to strip it with _ from the output vector. > > ---------------------------------------------------------------------- > For information about J forums see http://www.jsoftware.com/forums.htm > > ---------------------------------------------------------------------- > For information about J forums see http://www.jsoftware.com/forums.htm > > ---------------------------------------------------------------------- > For information about J forums see http://www.jsoftware.com/forums.htm > ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm
