Minimal steps down to 1: Difference between revisions
Content added Content deleted
m (→{{header|J}}) |
m (→{{header|J}}) |
||
Line 525: | Line 525: | ||
paths=.,:,:0 0 1 NB. operator, operand, net value |
paths=.,:,:0 0 1 NB. operator, operand, net value |
||
m=.,m [ n=.,n NB. m: subtractors, n: divisors |
m=.,m [ n=.,n NB. m: subtractors, n: divisors |
||
for_ok.|.m steps n y do. NB. ok: valid net values |
for_ok.}.|.m steps n y do. NB. ok: valid net values |
||
last=.{ |
last=.{."2 paths |
||
subs=. (1,.m,.0)+"2]0 0 1*"1 last+"1 0/m |
subs=. (1,.m,.0)+"2]0 0 1*"1 last+"1 0/m |
||
divs=. (2,.n,.0)+"2]0 0 1*"1 last*"1 0/n |
divs=. (2,.n,.0)+"2]0 0 1*"1 last*"1 0/n |
||
prev=. subs,"2 divs NB. we are working backwards from 1 |
|||
paths=. (,({:"1 |
paths=. (,({:"1 prev)e.ok)#,/prev,"1 2/"2 paths |
||
end. |
end. |
||
;@((<":y), |
;@((<":y),,)"2((' -/'{~{.);":@{:)"1}:"2}:"1 paths |
||
}} |
}} |
||
</lang> |
</lang> |
||