M = [[1234567890, 77, 9],
     [-59, 211, 25]]
     
def tamanhos_colunas(matriz, espacinho=1):
    """
    Retorna uma lista contendo os tamanhos horizontais
    que as colunas da matriz dada precisam ocupar
    """
    quantidade_colunas = len(matriz[0])
    tamanhos = []
    for indice_coluna in range(quantidade_colunas):
        maior_comprimento_visto = 0
        for linha in matriz:
            elemento = linha[indice_coluna]
            maior_comprimento_visto = max(maior_comprimento_visto, len(str(elemento))+espacinho)
        tamanhos.append(maior_comprimento_visto)
    return tamanhos

def imprime_matriz(matriz, espacinho=1):
    """
    Imprime na tela a matriz 2x3 dada como argumento,
    assumindo que cada elemento da matriz é um número de 3 ou menos dígitos
    """
    tamanhos = tamanhos_colunas(matriz, espacinho)
    espaço = ' '*(sum(tamanhos))
    print(f"┌{espaço}┐")
    for linha in matriz:
        # print(linha)
        print('│', end='')
        indice_coluna = 0
        for elemento in linha:
            print(f"{elemento:^{tamanhos[indice_coluna]}}", end='')
            indice_coluna += 1
        print('│', end='')
        print()
    print(f'└{espaço}┘')

from random import randrange

def sorteios_até_sair(número, faces=10):
    contador = 0
    while True:
        sorteio = randrange(1, faces+1)
        contador += 1
        if sorteio == número:
            break
    return contador

def média(número, faces = 10, quantidade_sorteio = 10**6):
    soma = 0
    for _ in range(quantidade_sorteio):
        soma += sorteios_até_sair(número, faces)
    return soma/quantidade_sorteio
