Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Matrix 这是什么样的矩阵?_Matrix - Fatal编程技术网

Matrix 这是什么样的矩阵?

Matrix 这是什么样的矩阵?,matrix,Matrix,这是一个奇怪的矩阵。 如果输入为1,则输出为1。 但若输入为2,则输出为矩阵3^2。 最奇怪的是,如果输入3,那么输出是矩阵5^2。 有人知道如何解决这个问题吗? 我真的需要答案才能找到工作 这是非常直截了当的。如果(2*input)+1,则矩阵的维数和矩阵中的数字是距离中心+1的距离。请参见下面的python代码 import math def distance(x1, y1, x2, y2): dist = (x1-x2)*(x1-x2) + (y1-y2)*(y1-y2)

这是一个奇怪的矩阵。 如果输入为1,则输出为1。 但若输入为2,则输出为矩阵3^2。 最奇怪的是,如果输入3,那么输出是矩阵5^2。 有人知道如何解决这个问题吗?
我真的需要答案才能找到工作

这是非常直截了当的。如果(2*input)+1,则矩阵的维数和矩阵中的数字是距离中心+1的距离。请参见下面的python代码

import math

def distance(x1, y1, x2, y2):
    dist = (x1-x2)*(x1-x2) + (y1-y2)*(y1-y2)
    return int(math.sqrt(dist))+1

if __name__=='__main__':
    x = int(input())
    if(x < 1):
        exit()
    dimension = (2*x)-1
    center = dimension // 2
    mat = [[None for i in range(dimension)] for i in range(dimension)]
    for i in range(dimension):
        for j in range(dimension):
            mat[i][j] = distance(center, center, i, j);
            print(mat[i][j], end=' ')
        print('')
导入数学
def距离(x1、y1、x2、y2):
距离=(x1-x2)*(x1-x2)+(y1-y2)*(y1-y2)
返回整数(数学sqrt(dist))+1
如果“名称”=“\uuuuuuuu主要”:
x=int(输入())
如果(x<1):
退出()
维度=(2*x)-1
中心=尺寸//2
mat=[[范围内i无(尺寸)]范围内i无(尺寸)]
对于范围内的i(尺寸):
对于范围内的j(尺寸):
mat[i][j]=距离(中心,中心,i,j);
打印(材料[i][j],结束=“”)
打印(“”)

这是基于您的代码的php代码:

<?php   
        $x = 3;
        $dimension = (2 * $x) -1 ;  
        $center = floor($dimension/2); 
        for($i = 1; $i <= $dimension; $i++)
        {
            for($j = 1; $j <= $dimension; $j++)
            { 
                $dist = ($center - $i) * ($center - $i) + ($center - $j) * ($center - $j);
                $result = floor(sqrt($dist)) + 1; 
                echo "(" . $i . ", " . $j . ")" . " = " . $result . "</br>";                
            }       
        }
    ?>


它不会给我与输出相同的结果

我知道如何在php中实现,但我不知道如何优化代码。 有人知道如何正确地做吗

<?php   
$z = 3; 
$dimension = (2 * $z) -1 ;  

for($i = 1; $i <= $dimension; $i++)
{
    for($j = 1; $j <= $dimension; $j++)
    { 
        if(($i == 1|| $j == 1) || ($i == $dimension || $j == $dimension)){
            echo $z . " "; 
        } else if(($i == 2 || $j == 2) || ($i == $dimension - 1 || $j == $dimension - 1)){
            echo $z - 1 . " "; 
        }
        else if(($i == 3 || $j == 3) || ($i == $dimension - 2 || $j == $dimension - 2)){
            echo $z - 2 . " "; 
        }
        else if(($i == 4 || $j == 4) || ($i == $dimension - 3 || $j == $dimension - 3)){
            echo $z - 3 . " ";
        }
        else{
            echo $z - 4 . " "; 
        }

        if($j == $dimension){
            echo "</br>"; 
        }
    }       
}   

你说的3^2和5^2是什么意思?如果这是一个求职面试的问题,只要看看结果,就会清楚地知道如何做到这一点。如果其他人为你做这件事,对你没有好处。知道维度是
(2*n)-1
,有帮助吗?是的,有帮助。谢谢@Kingsley。不,我不用phyton。根据这些代码,我知道它不能得到与图像中的输出相同的结果。无论如何,谢谢。将逻辑迁移到您所使用的任何其他语言应该是非常简单的。如果您面临问题,请将代码添加到问题中,我可以检查我是否使用了php,但它没有运算符//如Phyton。有人可以帮助我吗?我真的需要这份工作。我知道如何编制程序,但当涉及到矩阵时,我就不知所措了。那就是整数除法运算符。在php中,可以使用intdiv(dimension,2)或floor(dimension/2)。两种方法都可以。如果你被卡住了,你可以和别人分享。