Here is the cut and pastable version:

fd c=:toss d 
c
fd c=:toss d 
c
purr=:13 :'(0{"1 y) ,.100*(1{"1 y)%+/1{"1 y' 
purr
purr c

purr fd toss d

cc=:4 2$7 1 9 2 10 1 11 3   
cc
purr cc

assert 100=+/1{"1 purr cc
d=:500000#"1 ,.2#4 6 8 12 20
fd toss d
]cc=:fd toss d

purr cc

assert 100=+/1{"1 purr fd toss d
assert 100=+/1{"1 purr cc

4!:0 ;:'c cc d r toss fd purr'

Linda


-----Original Message-----
From: programming-boun...@jsoftware.com
[mailto:programming-boun...@jsoftware.com] On Behalf Of Linda Alvord
Sent: Sunday, December 11, 2011 10:31 AM
To: 'Programming forum'
Subject: [Jprogramming] FW: Turkey Roll - Challenge 2



-----Original Message-----
From: Linda Alvord [mailto:lindaalv...@verizon.net] 
Sent: Sunday, December 11, 2011 10:27 AM
To: 'Linda Alvord'
Subject: RE: Turkey Roll - Challenge 2

Time to wrap up the turkey roll.

Lots to think about. Here's a summary of much of it.

I was struck by Don Guinn's comment:


"Why is it that we have all kinds of courses teaching how to write programs
but none for reading?"
 
So here is long story without the results cut out.  Another e-mail will
follow this one that you can copy and paste in a file and then experiment
further.  Feel free to continue to ask questions or simplify these ideas.

I'm almost finished with Challenge 3 and wills post it soon.

   d=:7#"1 ,.2#4 6 8 12 20   NB. Create array
   d
 4  4  4  4  4  4  4
 4  4  4  4  4  4  4
 6  6  6  6  6  6  6
 6  6  6  6  6  6  6
 8  8  8  8  8  8  8
 8  8  8  8  8  8  8
12 12 12 12 12 12 12
12 12 12 12 12 12 12
20 20 20 20 20 20 20
20 20 20 20 20 20 20

   r=: 13 :'1+?y'
   r
1 + ?
   r d
3 4  3  2  3 1  4
 2 4  2  3  3 1  2
 2 5  5  5  5 1  4
 5 2  6  5  3 2  1
 6 6  8  5  8 1  8
 4 8  6  5  2 1  5
 4 3  6  4  2 4 12
11 6 10  9  3 6  3
 1 8 10  9 12 2  8
 3 4  6 16  1 4  8

   r d
2  3  4  1  2  4  1
 2  4  1  2  1  1  3
 4  3  6  5  4  2  6
 1  2  6  4  6  6  2
 2  7  2  3  8  3  1
 2  1  3  1  1  1  8
 5  5  4  3  1  4  4
10  8  7  9  6  8  1
 8  1 15  7  3  8  7
 2 18  8 12 14 18 18

   4!:0 ;:'d r'
0 3

   toss=: 13 :'+/1+?y'       
   toss
[: +/ 1 + ?
   toss d
56 67 39 62 67 63 59

   c=:toss d
   c
0 32 56 48 51 45 60
  
NB.fdkm =: [: /:~ ~. ,. [: +/"1 ~. =/ ]
NB.fdkm c
NB.fdla=: 13 :'/:~(~.y),.+/"1 (~.y)=/y'
NB.fdla c
NB.fdkm
NB.fdla

   fd=:[: /:~ ~. ,. [: +/"1 ~. =/ ] 
   fd
[: /:~ ~. ,. [: +/"1 ~. =/ ]
  fd c=:toss d 
29 1
37 1
48 1
52 1
56 1
58 1
62 1
  c
56 48 37 52 58 62 29
   fd c=:toss d 
45 1
48 1
55 1
59 1
61 1
63 1
69 1
   c
55 59 63 69 61 48 45

   purr=:13 :'(0{"1 y) ,.100*(1{"1 y)%+/1{"1 y' 
   purr
 (0 {"1 ]) ,. 100 * (1 {"1 ]) % [: +/ 1 {"1 ]

   purr c
55 100
   purr fd toss d
35 14.2857
40 28.5714
44 28.5714
45 14.2857
49 14.2857
   cc=:4 2$7 1 9 2 10 1 11 3   
   cc
 7 1
 9 2
10 1
11 3

   purr cc
 7 14.2857
 9 28.5714
10 14.2857
11 42.8571
assert 100=+/1{"1 purr cc

 d=:500000#"1 ,.2#4 6 8 12 20
 fd toss d
17     1
18     6
19    12
20    18
21    36
22    46
23    85
24   131
25   205
26   280
27   448
28   621
29   792
30  1065
31  1409
32  1719
33  2186
34  2744
35  3213
36  3932
37  4697
38  5449
39  6490
40  7141
41  8184
42  9199
43 10073
44 11069
45 12296
46 13226
47 14485
48 15216
49 16156
50 16526
51 17457
52 17610
53 18036
54 18279
55 18309
56 18339
57 17948
58 17943
59 17195
60 16743
61 16060
62 15126
63 14310
64 13349
65 12090
66 11344
67 10235
68  9316
69  8574
70  7333
71  6452
72  5468
73  4681
74  3974
75  3274
76  2610
77  2125
78  1709
79  1346
80  1046
81   748
82   557
83   417
84   294
85   182
86   148
87    85
88    71
89    34
90    17
91     2
92     5
93     1
94     1
95     1

   ]cc=:fd toss d
16     2
17     1
18     8
19     9
20    21
21    35
22    63
23    95
24   127
25   216
26   311
27   425
28   584
29   782
30  1086
31  1386
32  1779
33  2183
34  2687
35  3324
36  3868
37  4724
38  5379
39  6450
40  7369
41  8094
42  9254
43 10243
44 11167
45 12272
46 13279
47 14223
48 14823
49 15821
50 16745
51 17310
52 17843
53 18205
54 18135
55 18532
56 18327
57 18196
58 17897
59 17257
60 16857
61 15731
62 15221
63 14352
64 13261
65 12251
66 11295
67 10223
68  9345
69  8147
70  7247
71  6352
72  5411
73  4713
74  4005
75  3357
76  2723
77  2176
78  1736
79  1346
80  1066
81   784
82   634
83   396
84   308
85   196
86   141
87    79
88    51
89    27
90    17
91     8
92     3
93     2
94     1
95     1
   purr cc
16 0.0004
17 0.0002
18 0.0016
19 0.0018
20 0.0042
21  0.007
22 0.0126
23  0.019
24 0.0254
25 0.0432
26 0.0622
27  0.085
28 0.1168
29 0.1564
30 0.2172
31 0.2772
32 0.3558
33 0.4366
34 0.5374
35 0.6648
36 0.7736
37 0.9448
38 1.0758
39   1.29
40 1.4738
41 1.6188
42 1.8508
43 2.0486
44 2.2334
45 2.4544
46 2.6558
47 2.8446
48 2.9646
49 3.1642
50  3.349
51  3.462
52 3.5686
53  3.641
54  3.627
55 3.7064
56 3.6654
57 3.6392
58 3.5794
59 3.4514
60 3.3714
61 3.1462
62 3.0442
63 2.8704
64 2.6522
65 2.4502
66  2.259
67 2.0446
68  1.869
69 1.6294
70 1.4494
71 1.2704
72 1.0822
73 0.9426
74  0.801
75 0.6714
76 0.5446
77 0.4352
78 0.3472
79 0.2692
80 0.2132
81 0.1568
82 0.1268
83 0.0792
84 0.0616
85 0.0392
86 0.0282
87 0.0158
88 0.0102
89 0.0054
90 0.0034
91 0.0016
92 0.0006
93 0.0004
94 0.0002
95 0.0002
   assert 100=+/1{"1 purr fd toss d

   assert 100=+/1{"1 purr cc

   4!:0 ;:'c cc d r toss fd purr'
0 0 0 3 3 3 3

Happy Thanksgiving.

Linda

   
-----Original Message-----
From: Linda Alvord [mailto:lindaalv...@verizon.net] 
Sent: Saturday, November 26, 2011 3:14 AM
To: 'Linda Alvord'
Subject: Turkey Roll - Challenge 2

PLEASE DO NOT REPLY  BEFORE  December I, 2011 at 12:00 am EST !

    The turkey roll challenge, named in honor of the Thanksgiving Day
holiday,  focuses on the verb   roll   or   ?    with one argument.
    
Create two nouns and a verb that will generate the following results.

    dice
----T---T---T---T---T---┐
│ │o │o │o o│o o│o o│
│ o │ │ o │ │ o │o o│
│ │ o│ o│o o│o o│o o│
L---+---+---+---+---+----
    toss
----T-T---T-T---T-T---T-T---T-T---T-T---T-T---T-T---T-T---┐
│o │ │o o│ │o o│ │o o│ │o │ │o o│ │o │ │o o│ │o │ │o o│
│ │ │ │ │ o │ │o o│ │ o │ │ │ │ o │ │ o │ │ o │ │o o│
│ o│ │o o│ │o o│ │o o│ │ o│ │o o│ │ o│ │o o│ │ o│ │o o│
+---+-+---+-+---+-+---+-+---+-+---+-+---+-+---+-+---+-+---+
│ │ │o o│ │o │ │o o│ │o o│ │o o│ │o o│ │o │ │ │ │o o│
│ o │ │ │ │ │ │o o│ │o o│ │ │ │o o│ │ │ │ o │ │o o│
│ │ │o o│ │ o│ │o o│ │o o│ │o o│ │o o│ │ o│ │ │ │o o│
L---+-+---+-+---+-+---+-+---+-+---+-+---+-+---+-+---+-+----
    toss
----T-T---T-T---T-T---T-T---T-T---T-T---T-T---T-T---T-T---┐
│o │ │o o│ │o o│ │o o│ │o │ │o o│ │o │ │o o│ │o │ │o o│
│ │ │ │ │ o │ │o o│ │ o │ │ │ │ o │ │ o │ │ o │ │o o│
│ o│ │o o│ │o o│ │o o│ │ o│ │o o│ │ o│ │o o│ │ o│ │o o│
+---+-+---+-+---+-+---+-+---+-+---+-+---+-+---+-+---+-+---+
│ │ │o o│ │o │ │o o│ │o o│ │o o│ │o o│ │o │ │ │ │o o│
│ o │ │ │ │ │ │o o│ │o o│ │ │ │o o│ │ │ │ o │ │o o│
│ │ │o o│ │ o│ │o o│ │o o│ │o o│ │o o│ │ o│ │ │ │o o│
L---+-+---+-+---+-+---+-+---+-+---+-+---+-+---+-+---+-+----
    c=:3 8 7 12 9 8 9 7 4 12      NB.  The list  c  is the sums of the
second toss of

                                                NB.   ten dice 
    fd c
3 1                                             NB.  A frequency
distribution of the ten tosses                 
4 1
7 2
8 2
9 2
12 2

    4!:0 'dice';'toss';'c';'fd' 
0 0 0 3                                                           NB. 0 for
nouns, 3 for verbs


Some rules and hints:

     Write all verbs and nouns without  @ .  You can use several nouns and
verbs to make a final noun or verb.  Here are some things about  roll.  

     r=: 13 :'?y'
     r
? 
    r 4
3
   r 4
2
   s=: 13 :'r 3 4$y' 
   s
[: r 3 4 $ ]
   s 5
3 3 3 2
3 2 3 4
2 4 0 4
   s 5
1 3 1 0
3 1 4 1
4 2 1 3
    t=: 13 :'(r s y)*3 4$100*i.4' 
    5 t 5
1003 1000.69 1000.5 1001.49
1001 1000.55 1000 1001
1000.89 1001.03 1002 1000
    5 t 5
1001 1002 1000 1001.37
1003 1000.04 1000.23 1002
1000.01 1001 1000.3 1001.16

Be sure to get unique results as you go.  Notice how to build a complex
result with several shorter functions. 

Linda

----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm

----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm

Reply via email to