Что это за матрица? - PullRequest
       3

Что это за матрица?

0 голосов
/ 19 марта 2019

Matrix Exmaple

Это странная матрица.Если входное значение равно 1, то выходное значение равно 1. Но если входное значение равно 2, то выходное значение равно матрице 3 ^ 2.Самое странное, если на входе 3 выводится матрица 5 ^ 2.Кто-нибудь знает, как решить эту проблему?Мне действительно нужен ответ, чтобы получить работу!

Ответы [ 3 ]

0 голосов
/ 19 марта 2019

Это код в 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>";                
            }       
        }
    ?>

Это не дает мне тот же результат, что и вывод.

0 голосов
/ 19 марта 2019

У меня есть как это сделать в 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>"; 
        }
    }       
}   

?>

0 голосов
/ 19 марта 2019

Это довольно просто.размер матрицы, если (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('')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...