生徒から出された整数問題(Juliaで解いてみた)
整数問題
を満たす組
まずは探してみる。
juliaを使って探してみました。macのJupyter Notebookです。
とりあえず,1000くらいまでで様子を見てみる。
@time for x=0:1000,y=0:1000,z=-2000:0
if x^4+y^4+z^4+2==(x+y+z+2)^4
println(x,y,z)
end
end
28.468024 seconds
@time for x=0:1000,y=-1000:0,z=-1000:0
if x^4+y^4+z^4+2==(x+y+z+2)^4
println(x,y,z)
end
end
14.231885 seconds
@time for x=0:1000,y=0:1000,z=0:1000
if x^4+y^4+z^4+2==(x+y+z+2)^4
println(x,y,z)
end
end
15.602161 seconds
なさそうである。
何かで割って,余りが一致しないことはできそうか検討してみる。
function keisan(a)
@time for x=0:a-1,y=0:a-1,z=0:a-1
if (x^4+y^4+z^4+2)%a==((x+y+z+2)^4)%a
println(x,",", y,",", z)
end
end
end
keisan (generic function with 1 method)
keisan(1)
0,0,0
0.000188 seconds (100 allocations: 2.594 KiB)
keisan(2)
0,0,0
0,0,1
0,1,0
0,1,1
1,0,0
1,0,1
1,1,0
1,1,1
0.001524 seconds (784 allocations: 18.875 KiB)
keisan(3)
0,0,1
0,1,0
0,1,1
0,1,2
0,2,1
1,0,0
1,0,1
1,0,2
1,1,0
1,2,0
2,0,1
2,1,0
0.003155 seconds (1.18 k allocations: 28.500 KiB)
keisan(4)
0,1,1
0,1,3
0,3,1
0,3,3
1,0,1
1,0,3
1,1,0
1,1,1
1,1,2
1,1,3
1,2,1
1,2,3
1,3,0
1,3,1
1,3,2
1,3,3
2,1,1
2,1,3
2,3,1
2,3,3
3,0,1
3,0,3
3,1,0
3,1,1
3,1,2
3,1,3
3,2,1
3,2,3
3,3,0
3,3,1
3,3,2
3,3,3
0.005630 seconds (3.12 k allocations: 75.141 KiB)
keisan(5)
1,1,1
1,3,4
1,4,3
2,2,4
2,3,3
2,4,2
3,1,4
3,2,3
3,3,2
3,4,1
4,1,3
4,2,2
4,3,1
0.002955 seconds (1.27 k allocations: 30.703 KiB)
keisan(6)
0,0,1
0,0,4
0,1,0
0,1,1
0,1,2
0,1,3
0,1,4
0,1,5
0,2,1
0,2,4
0,3,1
0,3,4
0,4,0
0,4,1
0,4,2
0,4,3
0,4,4
0,4,5
0,5,1
0,5,4
1,0,0
1,0,1
1,0,2
1,0,3
1,0,4
1,0,5
1,1,0
1,1,3
1,2,0
1,2,3
1,3,0
1,3,1
1,3,2
1,3,3
1,3,4
1,3,5
1,4,0
1,4,3
1,5,0
1,5,3
2,0,1
2,0,4
2,1,0
2,1,3
2,3,1
2,3,4
2,4,0
2,4,3
3,0,1
3,0,4
3,1,0
3,1,1
3,1,2
3,1,3
3,1,4
3,1,5
3,2,1
3,2,4
3,3,1
3,3,4
3,4,0
3,4,1
3,4,2
3,4,3
3,4,4
3,4,5
3,5,1
3,5,4
4,0,0
4,0,1
4,0,2
4,0,3
4,0,4
4,0,5
4,1,0
4,1,3
4,2,0
4,2,3
4,3,0
4,3,1
4,3,2
4,3,3
4,3,4
4,3,5
4,4,0
4,4,3
4,5,0
4,5,3
5,0,1
5,0,4
5,1,0
5,1,3
5,3,1
5,3,4
5,4,0
5,4,3
0.014065 seconds (9.36 k allocations: 225.609 KiB)
keisan(7)
0,0,0
0,0,2
0,1,1
0,1,4
0,2,0
0,2,4
0,4,1
0,4,2
1,0,1
1,0,4
1,1,0
1,1,4
1,2,2
1,2,4
1,3,4
1,4,0
1,4,1
1,4,2
1,4,3
1,4,4
1,4,5
1,4,6
1,5,4
1,6,4
2,0,0
2,0,4
2,1,2
2,1,4
2,2,1
2,2,2
2,4,0
2,4,1
3,1,4
3,4,1
3,5,6
3,6,5
4,0,1
4,0,2
4,1,0
4,1,1
4,1,2
4,1,3
4,1,4
4,1,5
4,1,6
4,2,0
4,2,1
4,3,1
4,4,1
4,4,4
4,5,1
4,6,1
5,1,4
5,3,6
5,4,1
5,6,3
6,1,4
6,3,5
6,4,1
6,5,3
0.010644 seconds (5.98 k allocations: 151.781 KiB)
keisan(8)
0.000016 seconds
おっと,8で割った余りが一致しない!調べてみよう。
4乗を8で割った余を調べる。
function keisan2(a)
@time for x=0:a-1
y=x^4%a
println(x,",", y)
end
end
keisan2 (generic function with 1 method)
keisan2(8)
0,0
1,1
2,0
3,1
4,0
5,1
6,0
7,1
0.000924 seconds (542 allocations: 12.953 KiB)
4乗したものは8で割ると余りは0か1だね。
なので,
よって,8で割った余りが一致しないので存在しない。(証明終わり)
Discussion