purr=: [: (%"(1) 1 _ <."1 +/) fdrm That said, note that I think of the quantity in the second column as "fraction of total" rather than "percent". For them to be percents, I would want to multiply them by 100:
perc=: [: (%"(1) 1 _ <."(1) 0.01 * +/) fdrm But I understand that "percent" is a more convenient phrase than "fraction of total". -- Raul On Wed, Dec 7, 2011 at 9:26 AM, Linda Alvord <lindaalv...@verizon.net>wrote: > Roul, Your expression is a good one. To define a verb you could start here: > > (~.,.#/.~)/:~+/1+?2 1e6$6 > 2 28046 > 3 55258 > 4 83532 > 5 111206 > 6 138742 > 7 166167 > 8 139145 > 9 111078 > 10 83270 > 11 55635 > 12 27921 > > Now define a function. It could easily be monadic: > > fdrm=: 13 :'(~.,.#/.~)/:~+/1+?y' > fdrm > [: (~. ,. #/.~) [: /:~ [: +/ 1 + ? > > ]d=:fdrm 2 1e6$6 > 2 27744 > 3 55994 > 4 83221 > 5 111031 > 6 138908 > 7 166726 > 8 138794 > 9 111511 > 10 82566 > 11 55995 > 12 27510 > > There is only one more design issue and we'll be finished with the turkey > roll. > > Finally define a function to produce the percentage of each of the rolls > occurred. Percent was traumatic for some students, so we'll give the > function a warm fuzzy name: > > purr=: > purr > (your tacit definition should land here) > > Now see what happens to your data: > > purr d > 2 0.027797 > 3 0.05549 > 4 0.082886 > 5 0.111182 > 6 0.138412 > 7 0.166141 > 8 0.140112 > 9 0.11171 > 10 0.083511 > 11 0.055302 > 12 0.027457 > > assert 1=1{+/purr d > > Put in your function and data (purr d) and no response indicates the sum of > the percentages in the second column had a sum of 1 or 100% > > Now see if you can write purr. > > Linda > > > > > > -----Original Message----- > From: programming-boun...@jsoftware.com > [mailto:programming-boun...@jsoftware.com] On Behalf Of Raul Miller > Sent: Monday, December 05, 2011 10:03 AM > To: Programming forum > Subject: Re: [Jprogramming] Many Turkey Rolls - No embargo > > I am having trouble understanding this one also. > > I think I understand 1: > #/.~/:~+/?2 1e6$6 > 27773 55724 83930 111049 138508 166122 138982 111263 83609 55632 27408 > > Or, perhaps: > > (~.,.#/.~)/:~+/1+?2 1e6$6 > 2 27704 > 3 55158 > 4 83565 > 5 111238 > 6 138938 > 7 167140 > 8 138898 > 9 110833 > 10 83313 > 11 55783 > 12 27430 > > Item 2, however, seems mysterious. The platonic solids would have face > counts of 4, 6, 8, 12, 20, but if we had 100 of each in a bucket and toss > the bucket 200 times and total the numbers we will almost always have over > 100 unique values in those resulting sums. This would result in a rather > odd frequency distribution so I'm not at all sure that I understand the > problem correctly. > > Furthermore, the additional text seemed to have little relation to these > two items, so I am very confused. > > -- > Raul > > > > On Sun, Dec 4, 2011 at 6:12 PM, Linda Alvord <lindaalv...@verizon.net > >wrote: > > > Below you will find my version with some changes. However, I've pointed > > out > > some other versions that were superior to mine. When I tried to mix them > I > > got all mixed up. To do these two exercises, you may use any of the > > statements below. Modify their use to: > > > > 1. Toss a pair of dice a million times and produce a frequency > > distribution of the sums. This a simulation and there will be no graphic > > images of the results. > > > > 2. Image a large bucket with 100 dice of each of the five Platonic > > Solids. Each die is numbered from 1 with consecutive counting numbers. > > Simulate the result and summarize your results in a frequency > distribution > > of the dice are all tosses from the bucket 200 times. > > > > > > > > Here are the expression you may choose from along with J symbols. Make > > your > > expressions as simple as possible. (I think Ric, Kip and Henry should > just > > watch and maybe referee if needed.) > > > > > > > > > > > > d1=:' o ' > > > > d2=:'o o' > > > > d3=:'o o o' > > > > d4=:'o o o o' > > > > d5=:'o o o o o' > > > > d6=:'o oo oo o' > > > > d=:6 9$d1,d2,d3,d4,d5,d6 > > > > dice=:(<"2)3 3$"1 d > > > > dice > > > > s=: 13 :'c=:1+?2 10$y' > > > > toss=: 13 :'(<"2)3 3$"1(<:s y){d' > > > > c > > > > toss 6 > > > > c > > > > toss=: 13 :'(<"2)3 3$"1(<:s y){d' > > > > t=: 13 :'+/"2 y' > > > > fd=: [: /:~ ~. ,. [: +/"1 = > > > > dice > > > > toss 6 > > > > c > > > > t c > > > > fd t c > > > > toss 6 > > > > c > > > > t c > > > > fd t c > > > > toss 4 > > > > c > > > > t c > > > > fd t c > > > > assert 0 0 3 3 3 3 = 4!:0 ;:'dice c s t toss fd' > > > > > > > > NB. dice is a graphic image of the faces of a die > > > > NB. c captures the data from an array of random rolls of the dice > > > > NB. s is the shape and s y allows for different dice > > > > NB. t is a list of totals for each of the tosses > > > > NB. fd is a frequency distribution of data in a list > > > > > > > > > > > > > > ---------------------------------------------------------------------- > > 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