How to initialize a matrix with random characters in Go

1 Answer

0 votes
package main

import (
    "fmt"
    "math/rand"
    "time"
)

const (
    ROWS = 3
    COLS = 4
)

func printMatrix(matrix [][]rune) {
    for _, row := range matrix {
        for _, ch := range row {
            // %3s gives right-aligned width of 3, like setw(3)
            fmt.Printf("%3s", string(ch))
        }
        fmt.Println()
    }
}

func getRandomCharacter() rune {
    characters := []rune("0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ")
    
    return characters[rand.Intn(len(characters))]
}

func initializeMatrixWithRandomCharacters(rows, cols int) [][]rune {
    matrix := make([][]rune, rows)
    for i := range matrix {
        matrix[i] = make([]rune, cols)
        for j := range matrix[i] {
            matrix[i][j] = getRandomCharacter()
        }
    }
    
    return matrix
}

func main() {
    rand.Seed(time.Now().UnixNano()) 

    matrix := initializeMatrixWithRandomCharacters(ROWS, COLS)

    printMatrix(matrix)
}



/*
run:
    
  7  m  c  f
  A  u  r  3
  p  B  X  K
    
*/

 



answered 12 hours ago by avibootz
edited 11 hours ago by avibootz
...