Java 计算';数组的中心';在爪哇

Java 计算';数组的中心';在爪哇,java,arrays,center,Java,Arrays,Center,这是我的问题: 给定一个长度为6的整数数组,我想知道属于该数组的哪对数字是它的中心。这意味着如果你把数组分成3个长度=2的小数组,如果你把它们作为一对坐标放在一个矩阵中,(其中第一个坐标表示i的值,第二个坐标表示j的值),你会在你的矩阵上得到类似“L”的东西。中心是长度=2的小坐标,在L的中间。我知道这很混乱,所以这是一张图片: PD:唯一可用的一对“小型阵列”是: {array[0],array[1]} {array[2],array[3]} {array[4],array[5]} 希

这是我的问题:

给定一个长度为6的整数数组,我想知道属于该数组的哪对数字是它的中心。这意味着如果你把数组分成3个长度=2的小数组,如果你把它们作为一对坐标放在一个矩阵中,(其中第一个坐标表示i的值,第二个坐标表示j的值),你会在你的矩阵上得到类似“L”的东西。中心是长度=2的小坐标,在L的中间。我知道这很混乱,所以这是一张图片:

PD:唯一可用的一对“小型阵列”是:

{array[0],array[1]}

{array[2],array[3]}

{array[4],array[5]}

希望你能帮助我!我在做游戏的逻辑!对不起我的英语

我相信你只是在寻找一个平均值:

i = (array[0] + array[2] + array[4])/3;
j = (array[1] + array[3] + array[5])/3;

可以使用3个点的数组。A是一个Java类,它保存x和y值

图中红色阴影的3个点为:

0, 1
0, 0
1, 0
2, 2
3, 2
3, 1
另一组L形点是:

0, 1
0, 0
1, 0
2, 2
3, 2
3, 1

我不确定我是否理解你的问题,给你一个长度为6的任意数组,其中包含一些方向未知的L形,你必须返回数组中的切片,即中心


那么,我们怎么知道中心在哪里呢?它将是重复两次的x和y坐标。所以只需寻找重复两次的x值,然后寻找重复两次的y值。你现在有你的中心了

你的例子是错误的!您的数组应该是
|0 | 0 | 0 | 1 | 1 | 0 |

一种简单的检查方法是:

|0|1|2|   3   |    4  |5| 
|x|y|x|y(+/-)1|x(+/-)1|y|
or
|0|1|   2   |3|4|    5  |
|x|y|x(+/-)1|y|x|y(+/-)1|
检查中心是否为c(x=0,y=1):

检查x(索引0)的相同值是否在索引2中且等于(索引4(+/-)1中的值)如果y(索引1)的相同值在索引3中且等于(索引5(+/-)1中的值)

检查x(索引0)的相同值是否在索引4中且等于(索引2(+/-)1中的值)如果y(索引1)的相同值在索引5中且等于(索引3(+/-)1中的值)


注:在上述情况下,我将L长度固定为1,您可以更改该值并使用另一个值4、5等。

当给定的三个单元格坐标形成“L”形时,两个单元格将彼此相对。也就是说,这两个单元格将有(a,b)和(b,a)这样的点。所以这两个点以外的点将成为中心

所以只要找到像(a,b)和(b,a)这样的两点。另一点是中心

如果第一、第二和第三是形式(a、b)的三个点 差不多

if(first.a==second.b && first.b=second.a)

        return three;

if(second.a==three.b && second.b==three.a)


     return first;

else return second;

首先,我不能正确理解你的问题。如果我理解的是正确的,那么这里是解。例如:你有一个长度为10的整数数组。你想把每两个元素放在单独的数组中,然后按这个顺序找到中间数组

所以,如果输入数组的长度是偶数,那么只需执行(数组长度)/2,在我们的例子中是5。那么显然,yur mid数组将是原始输入数组中包含第5和第6个元素的数组

如果输入数组的长度是奇数,那么只需执行(数组的长度+1)/2,在我们的例子中是6。显然,yur mid数组将是原始输入数组中包含第6和第7个元素的数组。但在这种情况下,最后一个数组将没有第j个坐标


您尚未指定数组的长度。

您希望输入和输出是什么?因此,数组中的每两个数字定义一个平面上的坐标,并且您希望找到作为该平面内物理中心的元组?有点不清楚你在问什么?这个问题令人费解。你的例子错了!你的数组应该是
|0 | 0 | 0 | 1 | 1 | 0 |
对不起,我在图像上搞错了。坐标是{0,0,0,1,1,0}你说得对,纳撒尼尔,这就是我要找的!我没有投你反对票,但这并没有指向原始数组中的元组,而是只找到所有提供的元组的几何“中心”。考虑<代码> x= {0,0,04} <代码>:您的解决方案建议了一些类似于<代码> {0},1.3},它不在原始数组中。我说它必须是一个长度为6的数组,并且您的数组已经是“L”。这意味着作为参数接收的数组已经具有L的几何形状!伟大的但是我认为这样证明了数组的几何形状是L,但是我怎么才能找到L的中心呢?如果你的检查成功,这意味着第一个点x=索引0中的值,y=索引1中的值是center@user2970305你试过这个逻辑吗?当然,
Point
类使用起来很好,但仅此一点并不能帮助回答问题。答案并非如此,但这最终挑战了原始OP,以确定它们有一个由3对{x,y}组成的数组,而不是一个由6对组成的数组。不正确。它们将是相同的+/-偏移量,在提供的情况下,因为它从0开始,0将是0-0=0。如果L指向不同的方向,则必须同时测试四个方向中的每个方向。(左/上、左/下、右/上、右/下)