📜  打印N阶上Hessenberg矩阵

📅  最后修改于: 2021-05-07 01:19:57             🧑  作者: Mango

给定一个正整数N ,任务是打印N阶的上Hessenberg矩阵,该矩阵包括任意一位随机正整数作为其非零元素。
上Hessenberg矩阵是一个方矩阵,其中所有在对角线以下的元素均为零。在数学上,对于所有i> j + 1,mat [i] [j] = 0

例子:

方法:对于打印带有一位正数元素的上部Hessenberg矩阵,借助rand()函数,对于i> j + 1的矩阵的所有单元格以及任何一位随机数均打印零。

下面是上述方法的实现:

C++
// C++ implementation of the approach
#include 
using namespace std;
  
// Function to print the Upper Hessenberg
// matrix of order n
void UpperHessenbergMatrix(int n)
{
    for (int i = 1; i <= n; i++) {
        for (int j = 1; j <= n; j++) {
  
            // If element is below sub-diagonal
            // then print 0
            if (i > j + 1)
                cout << '0' << " ";
  
            // Print a random digit for
            // every non-zero element
            else
                cout << rand() % 10 << " ";
        }
        cout << "\n";
    }
}
  
// Driver code
int main()
{
    int n = 4;
    UpperHessenbergMatrix(n);
  
    return 0;
}


Java
// Java implementation of the approach
class GFG 
{
  
// Function to print the Lower Hessenberg 
// matrix of order n 
static void UpperHessenbergMatrix(int n) 
{
    for (int i = 1; i <= n; i++) 
    {
        for (int j = 1; j <= n; j++) 
        {
  
            // If element is above super-diagonal 
            // then print 0 
            if (i > j + 1) 
            {
                System.out.print(0 + " ");
            } 
              
            // Print a random digit for 
            // every non-zero element 
            else 
            {
                System.out.print((int)(Math.random() * 10) + " ");
            }
        }
        System.out.println();
    }
}
  
// Driver code 
public static void main(String[] args) 
{
    int n = 4;
    UpperHessenbergMatrix(n);
}
}
  
// This code is contributed by 29AjayKumar


Python3
# Python3 implementation of the approach
import random
  
# Function to print the Upper Hessenberg
# matrix of order n
def UpperHessenbergMatrix(n):
  
    for i in range(1, n + 1):
  
        for j in range(1, n + 1):
  
            # If element is below sub-diagonal
            # then pr0
            if (i > j + 1):
                print('0', end = " ")
  
            # Pra random digit for
            # every non-zero element
            else:
                print(random.randint(1, 10), 
                                 end = " ")
        print()
  
# Driver code
n = 4;
UpperHessenbergMatrix(n)
  
# This code is contributed 
# by Mohit Kumar


C#
// C# implementation of the approach 
using System;
  
class GFG
{
      
    // Function to print the Lower Hessenberg 
    // matrix of order n 
    static void UpperHessenbergMatrix(int n) 
    { 
        Random rand = new Random();
          
        for (int i = 1; i <= n; i++) 
        { 
            for (int j = 1; j <= n; j++)
            { 
      
                // If element is above super-diagonal 
                // then print 0 
                if (i > j + 1) 
                    Console.Write(0 + " "); 
      
                // Print a random digit for 
                // every non-zero element 
                else
                    Console.Write(rand.Next(1, 10) + " "); 
            } 
            Console.WriteLine(); 
        } 
    } 
      
    // Driver code 
    static public void Main ()
    {
        int n = 4; 
        UpperHessenbergMatrix(n); 
    }
}    
      
// This code is contributed by AnkitRai01


输出:
3 6 7 5 
3 5 6 2 
0 9 1 2 
0 0 7 0