【java/算法/可重排列】证明:任意给出九个空间格点,其至少有一对格点的奇偶性相同,且其中点坐标亦为格点
【名词解释:格点】
格点即三坐标都为整数的空间点,因其位置在虚拟的网格上故称格点。
【格点奇偶性的八种情况】
代码证明:
package test230429; /** * 按奇偶性确定空间中格点的种类 * 格点,即xyz三坐标皆为整数的空间点 * xyz为奇偶各有两种可能性,整体便有2^3=8种 * 8种意味着:一旦点数超过8种,其中至少有一对的奇偶性是相同的。 */ public class GridPoint { public static void main(String[] args){ final String[] arr={"奇","偶"}; int sn=0; for(int i=0;i<2;i++){ for(int j=0;j<2;j++){ for(int k=0;k<2;k++){ System.out.println(String.format("%01d.", ++sn)+arr[i]+arr[j]+arr[k]); } } } } }
输出:
1.奇奇奇 2.奇奇偶 3.奇偶奇 4.奇偶偶 5.偶奇奇 6.偶奇偶 7.偶偶奇 8.偶偶偶
至此可以断言,只要超过8点,有两点的奇偶性就相同。
有两点的奇偶性相同,因为(奇数+奇数)/2=奇数,(偶数+偶数)/2=偶数,不会出现小数,故两点中点亦为格点。
下面可以用一个程序多跑几遍来验证一下。
【验证程序】
package test230429; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; class Pt{ int x; int y; int z; public String toString(){ return "("+x+","+y+","+z+")"; } /** * this和that奇偶性相同才算同一类型 * @param that * @return */ public boolean sameTypeAs(Pt that){ if((this.x % 2)!=(that.x % 2)){ return false; } if((this.y % 2)!=(that.y % 2)){ return false; } if((this.z % 2)!=(that.z % 2)){ return false; } return true; } } /** * 三维空间中九个格点,必有两点的中点也是格点 * 若九点中有两个格点的奇偶性一致,那么其中点的必为格点 * 格点即x,y,z坐标都是整数 */ public class NinePoints { public static void main(String[] args) throws IOException { BufferedReader br=new BufferedReader(new InputStreamReader(System.in)); String expr; Pt[] pts=new Pt[9]; for(int i=0;i<pts.length;i++){ pts[i]=new Pt(); } for(;;) { System.out.print("按e退出,其他键继续:"); expr = br.readLine(); if (expr.equalsIgnoreCase("e")) { break; } System.out.println("九点如下:"); int idx=0; for(int i=0;i<pts.length;i++){ pts[i].x=rnd(0,100); pts[i].y=rnd(0,100); pts[i].z=rnd(0,100); System.out.println(""+(++idx)+"."+pts[i]); } for(int i=0;i<pts.length;i++){ for(int j=i+1;j<pts.length;j++){ Pt left=pts[i]; Pt right=pts[j]; if(left.sameTypeAs(right)){ System.out.println("点"+left+"的奇偶性与点"+right+"相同"); } } } } } private static int rnd(int min,int max) { return (int)(min+Math.random()*(max-min+1)); } }
验证程序输出:
按e退出,其他键继续: 九点如下: 1.(28,98,35) 2.(73,64,75) 3.(48,97,55) 4.(34,47,21) 5.(95,45,9) 6.(95,56,34) 7.(93,45,7) 8.(82,74,13) 9.(85,59,99) 点(28,98,35)的奇偶性与点(82,74,13)相同 点(48,97,55)的奇偶性与点(34,47,21)相同 点(95,45,9)的奇偶性与点(93,45,7)相同 点(95,45,9)的奇偶性与点(85,59,99)相同 点(93,45,7)的奇偶性与点(85,59,99)相同 按e退出,其他键继续: 九点如下: 1.(81,47,81) 2.(66,90,10) 3.(7,54,9) 4.(58,11,84) 5.(12,3,55) 6.(1,16,47) 7.(80,0,75) 8.(51,24,5) 9.(69,70,33) 点(7,54,9)的奇偶性与点(1,16,47)相同 点(7,54,9)的奇偶性与点(51,24,5)相同 点(7,54,9)的奇偶性与点(69,70,33)相同 点(1,16,47)的奇偶性与点(51,24,5)相同 点(1,16,47)的奇偶性与点(69,70,33)相同 点(51,24,5)的奇偶性与点(69,70,33)相同 按e退出,其他键继续: 九点如下: 1.(23,27,81) 2.(10,2,14) 3.(99,84,44) 4.(11,12,39) 5.(69,58,35) 6.(84,15,87) 7.(55,26,83) 8.(70,60,5) 9.(74,81,19) 点(11,12,39)的奇偶性与点(69,58,35)相同 点(11,12,39)的奇偶性与点(55,26,83)相同 点(69,58,35)的奇偶性与点(55,26,83)相同 点(84,15,87)的奇偶性与点(74,81,19)相同 按e退出,其他键继续: 九点如下: 1.(63,60,32) 2.(52,93,40) 3.(4,24,61) 4.(81,29,11) 5.(83,6,29) 6.(8,10,50) 7.(33,66,29) 8.(87,21,73) 9.(50,49,42) 点(52,93,40)的奇偶性与点(50,49,42)相同 点(81,29,11)的奇偶性与点(87,21,73)相同 点(83,6,29)的奇偶性与点(33,66,29)相同 按e退出,其他键继续: 九点如下: 1.(44,67,67) 2.(63,24,49) 3.(75,80,52) 4.(96,12,25) 5.(95,45,79) 6.(55,87,89) 7.(97,61,37) 8.(94,40,38) 9.(62,34,65) 点(96,12,25)的奇偶性与点(62,34,65)相同 点(95,45,79)的奇偶性与点(55,87,89)相同 点(95,45,79)的奇偶性与点(97,61,37)相同 点(55,87,89)的奇偶性与点(97,61,37)相同 按e退出,其他键继续: 九点如下: 1.(25,58,21) 2.(50,17,46) 3.(70,52,60) 4.(13,91,78) 5.(20,19,89) 6.(12,95,67) 7.(10,57,34) 8.(9,0,33) 9.(38,21,59) 点(25,58,21)的奇偶性与点(9,0,33)相同 点(50,17,46)的奇偶性与点(10,57,34)相同 点(20,19,89)的奇偶性与点(12,95,67)相同 点(20,19,89)的奇偶性与点(38,21,59)相同 点(12,95,67)的奇偶性与点(38,21,59)相同 按e退出,其他键继续: 九点如下: 1.(4,53,77) 2.(83,38,74) 3.(52,0,58) 4.(21,33,69) 5.(4,82,94) 6.(13,17,81) 7.(20,45,46) 8.(50,75,57) 9.(92,11,5) 点(4,53,77)的奇偶性与点(50,75,57)相同 点(4,53,77)的奇偶性与点(92,11,5)相同 点(52,0,58)的奇偶性与点(4,82,94)相同 点(21,33,69)的奇偶性与点(13,17,81)相同 点(50,75,57)的奇偶性与点(92,11,5)相同 按e退出,其他键继续: 九点如下: 1.(57,45,51) 2.(7,45,5) 3.(42,41,49) 4.(25,83,54) 5.(13,27,66) 6.(5,82,97) 7.(19,40,89) 8.(96,76,40) 9.(11,30,11) 点(57,45,51)的奇偶性与点(7,45,5)相同 点(25,83,54)的奇偶性与点(13,27,66)相同 点(5,82,97)的奇偶性与点(19,40,89)相同 点(5,82,97)的奇偶性与点(11,30,11)相同 点(19,40,89)的奇偶性与点(11,30,11)相同 按e退出,其他键继续: 九点如下: 1.(97,90,82) 2.(32,15,14) 3.(31,23,30) 4.(43,2,98) 5.(18,97,17) 6.(12,68,71) 7.(67,13,41) 8.(29,23,79) 9.(20,85,32) 点(97,90,82)的奇偶性与点(43,2,98)相同 点(32,15,14)的奇偶性与点(20,85,32)相同 点(67,13,41)的奇偶性与点(29,23,79)相同 按e退出,其他键继续: 九点如下: 1.(12,92,80) 2.(96,38,58) 3.(13,0,78) 4.(90,46,42) 5.(7,5,22) 6.(74,97,88) 7.(17,40,96) 8.(81,20,53) 9.(77,49,96) 点(12,92,80)的奇偶性与点(96,38,58)相同 点(12,92,80)的奇偶性与点(90,46,42)相同 点(96,38,58)的奇偶性与点(90,46,42)相同 点(13,0,78)的奇偶性与点(17,40,96)相同 点(7,5,22)的奇偶性与点(77,49,96)相同 按e退出,其他键继续: 九点如下: 1.(42,37,53) 2.(54,51,11) 3.(70,79,12) 4.(22,78,36) 5.(58,18,21) 6.(72,87,5) 7.(44,65,66) 8.(91,49,83) 9.(47,91,53) 点(42,37,53)的奇偶性与点(54,51,11)相同 点(42,37,53)的奇偶性与点(72,87,5)相同 点(54,51,11)的奇偶性与点(72,87,5)相同 点(70,79,12)的奇偶性与点(44,65,66)相同 点(91,49,83)的奇偶性与点(47,91,53)相同 按e退出,其他键继续: 九点如下: 1.(16,54,32) 2.(65,20,50) 3.(33,80,27) 4.(92,58,14) 5.(96,44,7) 6.(15,9,95) 7.(98,91,5) 8.(70,15,99) 9.(37,68,18) 点(16,54,32)的奇偶性与点(92,58,14)相同 点(65,20,50)的奇偶性与点(37,68,18)相同 点(98,91,5)的奇偶性与点(70,15,99)相同 按e退出,其他键继续: 九点如下: 1.(56,33,30) 2.(56,46,20) 3.(89,65,62) 4.(12,74,70) 5.(74,53,42) 6.(79,5,24) 7.(23,22,69) 8.(86,2,36) 9.(47,33,48) 点(56,33,30)的奇偶性与点(74,53,42)相同 点(56,46,20)的奇偶性与点(12,74,70)相同 点(56,46,20)的奇偶性与点(86,2,36)相同 点(89,65,62)的奇偶性与点(79,5,24)相同 点(89,65,62)的奇偶性与点(47,33,48)相同 点(12,74,70)的奇偶性与点(86,2,36)相同 点(79,5,24)的奇偶性与点(47,33,48)相同 按e退出,其他键继续: 九点如下: 1.(5,20,79) 2.(10,42,71) 3.(80,64,60) 4.(65,23,4) 5.(39,87,85) 6.(94,52,69) 7.(43,6,35) 8.(86,27,54) 9.(52,72,5) 点(5,20,79)的奇偶性与点(43,6,35)相同 点(10,42,71)的奇偶性与点(94,52,69)相同 点(10,42,71)的奇偶性与点(52,72,5)相同 点(94,52,69)的奇偶性与点(52,72,5)相同 按e退出,其他键继续: 九点如下: 1.(63,63,2) 2.(12,13,6) 3.(61,21,90) 4.(7,50,40) 5.(63,1,35) 6.(96,84,88) 7.(24,23,91) 8.(44,9,59) 9.(86,57,100) 点(63,63,2)的奇偶性与点(61,21,90)相同 点(12,13,6)的奇偶性与点(86,57,100)相同 点(24,23,91)的奇偶性与点(44,9,59)相同 按e退出,其他键继续: 九点如下: 1.(39,37,24) 2.(39,10,15) 3.(71,61,3) 4.(0,38,78) 5.(31,17,37) 6.(47,94,79) 7.(67,98,55) 8.(75,34,86) 9.(73,11,55) 点(39,10,15)的奇偶性与点(47,94,79)相同 点(39,10,15)的奇偶性与点(67,98,55)相同 点(71,61,3)的奇偶性与点(31,17,37)相同 点(71,61,3)的奇偶性与点(73,11,55)相同 点(31,17,37)的奇偶性与点(73,11,55)相同 点(47,94,79)的奇偶性与点(67,98,55)相同 按e退出,其他键继续: 九点如下: 1.(29,11,93) 2.(85,66,84) 3.(28,28,19) 4.(74,54,100) 5.(69,15,19) 6.(51,86,73) 7.(91,34,45) 8.(68,11,7) 9.(31,72,44) 点(29,11,93)的奇偶性与点(69,15,19)相同 点(85,66,84)的奇偶性与点(31,72,44)相同 点(51,86,73)的奇偶性与点(91,34,45)相同 按e退出,其他键继续: 九点如下: 1.(34,21,51) 2.(72,46,62) 3.(94,89,48) 4.(74,15,5) 5.(52,84,64) 6.(40,39,91) 7.(85,20,1) 8.(13,4,97) 9.(29,15,40) 点(34,21,51)的奇偶性与点(74,15,5)相同 点(34,21,51)的奇偶性与点(40,39,91)相同 点(72,46,62)的奇偶性与点(52,84,64)相同 点(74,15,5)的奇偶性与点(40,39,91)相同 点(85,20,1)的奇偶性与点(13,4,97)相同 按e退出,其他键继续: 九点如下: 1.(49,38,2) 2.(86,60,45) 3.(59,89,72) 4.(68,58,33) 5.(39,63,98) 6.(95,81,48) 7.(34,32,48) 8.(61,5,74) 9.(66,47,2) 点(86,60,45)的奇偶性与点(68,58,33)相同 点(59,89,72)的奇偶性与点(39,63,98)相同 点(59,89,72)的奇偶性与点(95,81,48)相同 点(59,89,72)的奇偶性与点(61,5,74)相同 点(39,63,98)的奇偶性与点(95,81,48)相同 点(39,63,98)的奇偶性与点(61,5,74)相同 点(95,81,48)的奇偶性与点(61,5,74)相同 按e退出,其他键继续: 九点如下: 1.(93,32,32) 2.(97,75,29) 3.(75,33,59) 4.(95,18,64) 5.(90,44,15) 6.(50,70,9) 7.(60,42,80) 8.(19,27,39) 9.(17,32,77) 点(93,32,32)的奇偶性与点(95,18,64)相同 点(97,75,29)的奇偶性与点(75,33,59)相同 点(97,75,29)的奇偶性与点(19,27,39)相同 点(75,33,59)的奇偶性与点(19,27,39)相同 点(90,44,15)的奇偶性与点(50,70,9)相同 按e退出,其他键继续: 九点如下: 1.(39,4,50) 2.(68,18,55) 3.(54,29,4) 4.(81,36,74) 5.(1,46,57) 6.(19,32,25) 7.(23,15,24) 8.(66,68,30) 9.(15,48,100) 点(39,4,50)的奇偶性与点(81,36,74)相同 点(39,4,50)的奇偶性与点(15,48,100)相同 点(81,36,74)的奇偶性与点(15,48,100)相同 点(1,46,57)的奇偶性与点(19,32,25)相同 按e退出,其他键继续: 九点如下: 1.(69,93,90) 2.(19,15,10) 3.(100,24,12) 4.(93,26,53) 5.(87,62,90) 6.(7,23,64) 7.(92,45,69) 8.(99,44,45) 9.(33,24,28) 点(69,93,90)的奇偶性与点(19,15,10)相同 点(69,93,90)的奇偶性与点(7,23,64)相同 点(19,15,10)的奇偶性与点(7,23,64)相同 点(93,26,53)的奇偶性与点(99,44,45)相同 点(87,62,90)的奇偶性与点(33,24,28)相同 按e退出,其他键继续: 九点如下: 1.(27,3,18) 2.(41,81,66) 3.(100,2,25) 4.(32,6,66) 5.(60,72,91) 6.(52,54,96) 7.(53,70,78) 8.(37,2,59) 9.(31,13,78) 点(27,3,18)的奇偶性与点(41,81,66)相同 点(27,3,18)的奇偶性与点(31,13,78)相同 点(41,81,66)的奇偶性与点(31,13,78)相同 点(100,2,25)的奇偶性与点(60,72,91)相同 点(32,6,66)的奇偶性与点(52,54,96)相同 按e退出,其他键继续: 九点如下: 1.(10,61,7) 2.(85,69,4) 3.(45,67,33) 4.(13,85,85) 5.(86,1,39) 6.(85,94,28) 7.(75,1,4) 8.(36,28,11) 9.(51,44,85) 点(10,61,7)的奇偶性与点(86,1,39)相同 点(85,69,4)的奇偶性与点(75,1,4)相同 点(45,67,33)的奇偶性与点(13,85,85)相同 按e退出,其他键继续: 九点如下: 1.(94,71,59) 2.(18,27,71) 3.(90,10,79) 4.(81,6,81) 5.(36,27,62) 6.(62,30,52) 7.(96,59,97) 8.(83,12,6) 9.(56,23,88) 点(94,71,59)的奇偶性与点(18,27,71)相同 点(94,71,59)的奇偶性与点(96,59,97)相同 点(18,27,71)的奇偶性与点(96,59,97)相同 点(36,27,62)的奇偶性与点(56,23,88)相同 按e退出,其他键继续: 九点如下: 1.(28,19,89) 2.(52,45,12) 3.(87,83,86) 4.(32,41,87) 5.(31,1,43) 6.(41,50,27) 7.(76,58,14) 8.(32,32,53) 9.(7,42,94) 点(28,19,89)的奇偶性与点(32,41,87)相同 按e退出,其他键继续:
END