Josephus problem: Difference between revisions
Content added Content deleted
m (→contractalot) |
|||
Line 3,775: | Line 3,775: | ||
<pre> |
<pre> |
||
n =41 k = 3 final survivor = 30 |
n =41 k = 3 final survivor = 30 |
||
</pre> |
|||
=={{header|RPL}}== |
|||
{{works with|Halcyon Calc|4.2.7}} |
|||
===Last survivor=== |
|||
We use here the recursive approach. |
|||
≪ IF OVER 1 - THEN LAST OVER JPHUS SWAP + SWAP MOD ELSE DROP2 0 END |
|||
≫ |
|||
'JPHUS' STO |
|||
5 2 JPHUS |
|||
41 3 JPHUS |
|||
{{out}} |
|||
<pre> |
|||
2: 2 |
|||
1: 30 |
|||
</pre> |
|||
===m survivors + ordered list of executed prisoners=== |
|||
Program execution mimics prisoners' execution ;-) |
|||
≪ OVER SIZE → list idx len |
|||
≪ {} |
|||
1 len 1 - FOR j |
|||
list |
|||
j idx + 1 - len MOD 1 + |
|||
GET + |
|||
NEXT |
|||
≫ ≫ |
|||
'RnDL' STO |
|||
≪ → n k m |
|||
≪ {} DUP |
|||
1 n FOR j j 1 - + NEXT |
|||
m n 1 - START |
|||
k 1 - OVER SIZE MOD 1 + |
|||
DUP2 GET 4 ROLL SWAP + 3 ROLLD |
|||
RnDL |
|||
NEXT |
|||
≫ ≫ |
|||
'JPHUL' STO |
|||
41 3 2 JPHUL |
|||
{{out}} |
|||
<pre> |
|||
2: { 2 5 8 11 14 17 20 23 26 29 32 35 38 0 4 9 13 18 22 27 31 36 40 6 12 19 25 33 39 7 16 28 37 10 24 1 21 3 34 } |
|||
1: { 15 30 } |
|||
</pre> |
</pre> |
||