【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

posted @ 2023-04-29 20:47  逆火狂飙  阅读(27)  评论(0编辑  收藏  举报
生当作人杰 死亦为鬼雄 至今思项羽 不肯过江东