Sum and product puzzle: Difference between revisions
Content added Content deleted
m (→{{header|Rust}}: formatting) |
m (→{{header|J}}) |
||
Line 1,112: | Line 1,112: | ||
show=. 'X=' , ": o X ,' Y=' , ": o Y , ' X+Y=' , ": o (X+Y) , ' X*Y=' , ": o (X*Y) |
show=. 'X=' , ": o X ,' Y=' , ": o Y , ' X+Y=' , ": o (X+Y) , ' X*Y=' , ": o (X*Y) |
||
solve=. show o filter3 o filter2 o filter1 o (] filter0 decompositions) f.</syntaxhighlight> |
solve=. show :: (''"_) o filter3 o filter2 o filter1 o (] filter0 decompositions) f.</syntaxhighlight> |
||
Example use: |
Example use: |
||
Line 1,122: | Line 1,122: | ||
X=4 Y=13 X+Y=17 X*Y=52 |
X=4 Y=13 X+Y=17 X*Y=52 |
||
solve |
solve 64 |
||
930 candidates |
|||
62 candidates |
|||
46 candidates |
|||
0 candidates |
|||
⚫ | |||
solve 1685 |
solve 1685 |
||
Line 1,134: | Line 1,134: | ||
17567 candidates |
17567 candidates |
||
2 candidates |
2 candidates |
||
X=4 4 Y=13 61 X+Y=17 65 X*Y=52 244 |
X=4 4 Y=13 61 X+Y=17 65 X*Y=52 244 |
||
solve 1970 |
|||
967272 candidates |
|||
70475 candidates |
|||
23985 candidates |
|||
3 candidates |
|||
⚫ | |||
solve 2522 |
|||
1586340 candidates |
|||
116238 candidates |
|||
37748 candidates |
|||
4 candidates |
|||
X=4 4 16 16 Y=13 61 73 111 X+Y=17 65 89 127 X*Y=52 244 1168 1776</syntaxhighlight> |
|||
The code is tacit and fixed (in other words, it is point-free): |
The code is tacit and fixed (in other words, it is point-free): |
||
<syntaxhighlight lang="j"> _80 [\ (5!:5)<'solve' |
<syntaxhighlight lang="j"> _80 [\ (5!:5)<'solve' |
||
('X=' , ":@:(0&{"1) , ' Y=' , ":@:(1&{"1) , ' X+Y=' , ":@:(0&{"1 + 1&{"1) , ' X* |
('X=' , ":@:(0&{"1) , ' Y=' , ":@:(1&{"1) , ' X+Y=' , ":@:(0&{"1 + 1&{"1) , ' X* |
||
Y=' , ":@:(0&{"1 * 1&{"1))@:(([ 0 0&$@(1!:2&2)@:(' candidates' ,~ ":@:# |
Y=' , ":@:(0&{"1 * 1&{"1)) ::(''"_)@:(([ 0 0&$@(1!:2&2)@:(' candidates' ,~ ":@:# |
||
(0&{"1 + 1&{"1) </. ]) #~ 1 = #&>@:((0&{"1 + 1&{"1) </. ])))@:(([ 0 0&$ |
))@:;@:(((0&{"1 + 1&{"1) </. ]) #~ 1 = #&>@:((0&{"1 + 1&{"1) </. ])))@:(([ 0 0&$ |
||
@:(' candidates' ,~ ":@:#))@:;@:(((0&{"1 * 1&{"1) </. ]) #~ 1 = #&>@:(( |
@(1!:2&2)@:(' candidates' ,~ ":@:#))@:;@:(((0&{"1 * 1&{"1) </. ]) #~ 1 = #&>@:(( |
||
&{"1) </. ])))@:(([ 0 0&$@(1!:2&2)@:(' candidates' ,~ ":@:#))@:((((0&{" |
0&{"1 * 1&{"1) </. ])))@:(([ 0 0&$@(1!:2&2)@:(' candidates' ,~ ":@:#))@:((((0&{" |
||
) <@:(0&{"1 * 1&{"1)/. ]) ('' -: -.)&>"0 _ <@:((0&{"1 * 1&{"1)@:;@:(((0 |
1 + 1&{"1) <@:(0&{"1 * 1&{"1)/. ]) ('' -: -.)&>"0 _ <@:((0&{"1 * 1&{"1)@:;@:(((0 |
||
{"1) </. ]) #~ 1 < (0&{"1 * 1&{"1) #/. ]))) ;@:# (0&{"1 + 1&{"1) </. ]) |
&{"1 * 1&{"1) </. ]) #~ 1 < (0&{"1 * 1&{"1) #/. ]))) ;@:# (0&{"1 + 1&{"1) </. ]) |
||
0 0&$@(1!:2&2)@:(' candidates' ,~ ":@:#))@:((([ >: (0&{"1 + 1&{"1)@:]) |
)@:(] ([ 0 0&$@(1!:2&2)@:(' candidates' ,~ ":@:#))@:((([ >: (0&{"1 + 1&{"1)@:]) |
||
0&{"1) *. (1 < 1&{"1) *. 0&{"1 < 1&{"1)@:]) # ]) >@:,@:{@:(;~)@:i.)</syntaxhighlight> |
*. ((1 < 0&{"1) *. (1 < 1&{"1) *. 0&{"1 < 1&{"1)@:]) # ]) >@:,@:{@:(;~)@:i.)</syntaxhighlight> |
||
=={{header|Java}}== |
=={{header|Java}}== |