Jump to content

Gerar valores aleatórios para uma matriz


andrfey
 Share

Recommended Posts

Python que gere valores aleatórios para uma matriz. Após, exiba para cada linha, o percentual de valores pares e o percentual de valores ímpares.  informe o tamanho da matriz (número de linhas e de colunas), de forma que seja desenvolvido um método para gerar a matriz, onde a quantidade de linhas e colunas sejam recebidas como parâmetros; outro método para completar a matriz com valores aleatórios e um último método para exibir as porcentagens de valores pares e ímpares para cada linha da matriz.

Link to comment
Share on other sites

Em 04/11/2022 às 02:46, andrfey disse:

Python que gere valores aleatórios para uma matriz. Após, exiba para cada linha, o percentual de valores pares e o percentual de valores ímpares.  informe o tamanho da matriz (número de linhas e de colunas), de forma que seja desenvolvido um método para gerar a matriz, onde a quantidade de linhas e colunas sejam recebidas como parâmetros; outro método para completar a matriz com valores aleatórios e um último método para exibir as porcentagens de valores pares e ímpares para cada linha da matriz.

Se procurar pela internet tem muitos exemplos de como resolver esse exercicio.

Embora o exercício aponte para fazer isso em python puro, tem também a alternativa de usar a biblioteca numpy, que facilita o trabalho, dê uma vista de olhos na documentação.

Ver:https://pt.stackoverflow.com/questions/205528/como-criar-uma-matriz-em-python

Link to comment
Share on other sites

4 horas atrás, Cerzedelo disse:

Se procurar pela internet tem muitos exemplos de como resolver esse exercicio.

Embora o exercício aponte para fazer isso em python puro, tem também a alternativa de usar a biblioteca numpy, que facilita o trabalho, dê uma vista de olhos na documentação.

Ver:https://pt.stackoverflow.com/questions/205528/como-criar-uma-matriz-em-python

 

boa tarde, estas ai eu vi sim, mas nao to conseguindo por  porcentagem por linha de pares e impares, esta aqui ate onde consegui fazer:

import random

lista = []
linha = []
col = int(input('Quantidade de colunas?'))
lin = int(input('Quantidade de linhas?'))

for i in range(lin):
    for i in range(col):
        randomNum = random.randrange(1,40)
        linha.append(randomNum)
    lista.append(linha)
    linha = []
    
for k in lista:
    print (k)


 

Edited by thoga31
GeSHi
Link to comment
Share on other sites

Lembro que, de uma próxima vez, não se deve colocar apenas o exercício sem, pelo menos, se expor a(s) dúvida(s) específica(s) e qual o ponto em que se está.

 

Quanto ao código apresentado, deverás reiniciar a variável linha a cada iteração. Caso contrário, os valores da linha anterior não são "esquecidos".

Um exemplo:

def input_matriz(x, y):
    lista = []
    for i in range(x):
        linha = []          # Nova linha da matriz!
        for j in range(y):
            linha.append(int(input()))
        lista.append(linha)
    return lista

 

Cumprimentos.

 

Knowledge is free!

Link to comment
Share on other sites

Em 04/11/2022 às 16:28, thoga31 disse:

Lembro que, de uma próxima vez, não se deve colocar apenas o exercício sem, pelo menos, se expor a(s) dúvida(s) específica(s) e qual o ponto em que se está.

 

Quanto ao código apresentado, deverás reiniciar a variável linha a cada iteração. Caso contrário, os valores da linha anterior não são "esquecidos".

Um exemplo:

def input_matriz(x, y):
    lista = []
    for i in range(x):
        linha = []          # Nova linha da matriz!
        for j in range(y):
            linha.append(int(input()))
        lista.append(linha)
    return lista

 

Cumprimentos.

 

vc nao sabe nem que dia e hj, isso ai que vc inventou nao chega a lugar nenhum, nada haver com a pergunta

Link to comment
Share on other sites

53 minutos atrás, andrfey disse:

vc nao sabe nem que dia e hj, isso ai que vc inventou nao chega a lugar nenhum, nada haver com a pergunta

De facto vi mal o código apresentado, mas isso não são modos de falar com quem quer que seja. Se queres respeito, dá-te ao respeito.

Quanto ao problema, já que o que eu faço não chega a lado nenhum:

foo, e = lambda : int(input()), lambda x : not x % 2
def inm(x, y, f=foo):
    return [[f() for j in range(y)] for i in range(x)]
def pi(m):
    k = len(m[0])
    return (n := list(map(lambda l: len(list(filter(e, l))) / k * 100, m))), list(map(lambda x: 100 - x, n))
if __name__ == "__main__":
    from random import randint
    x, y = foo(), foo()
    m1, m2 = inm(x, y), inm(x, y, lambda : randint(0, 100))
    (p1, i1), (p2, i2) = pi(m1), pi(m2)
    print(f"{m1}:\n\t{p1}\n\t{i1}\n{m2}:\n\t{p2}\n\t{i2}")

Exemplo de output para uma matriz 3x3 com os números de 1 a 9, seguido de uma matriz do mesmo tamanho com valores aleatórios de 0 a 100:

[[1, 2, 3], [4, 5, 6], [7, 8, 9]]:
        [33.33333333333333, 66.66666666666666, 33.33333333333333]
        [66.66666666666666, 33.33333333333333, 66.66666666666666]
[[71, 13, 75], [69, 22, 65], [88, 77, 72]]:
        [0.0, 33.33333333333333, 66.66666666666666]
        [100.0, 66.66666666666666, 33.33333333333333]

Diverte-te, e resto de um bom 6 de novembro de 2022.

  • Vote 1

Knowledge is free!

Link to comment
Share on other sites

Em 06/11/2022 às 01:16, thoga31 disse:

De facto vi mal o código apresentado, mas isso não são modos de falar com quem quer que seja. Se queres respeito, dá-te ao respeito.

Quanto ao problema, já que o que eu faço não chega a lado nenhum:

foo, e = lambda : int(input()), lambda x : not x % 2
def inm(x, y, f=foo):
    return [[f() for j in range(y)] for i in range(x)]
def pi(m):
    k = len(m[0])
    return (n := list(map(lambda l: len(list(filter(e, l))) / k * 100, m))), list(map(lambda x: 100 - x, n))
if __name__ == "__main__":
    from random import randint
    x, y = foo(), foo()
    m1, m2 = inm(x, y), inm(x, y, lambda : randint(0, 100))
    (p1, i1), (p2, i2) = pi(m1), pi(m2)
    print(f"{m1}:\n\t{p1}\n\t{i1}\n{m2}:\n\t{p2}\n\t{i2}")

Exemplo de output para uma matriz 3x3 com os números de 1 a 9, seguido de uma matriz do mesmo tamanho com valores aleatórios de 0 a 100:

[[1, 2, 3], [4, 5, 6], [7, 8, 9]]:
        [33.33333333333333, 66.66666666666666, 33.33333333333333]
        [66.66666666666666, 33.33333333333333, 66.66666666666666]
[[71, 13, 75], [69, 22, 65], [88, 77, 72]]:
        [0.0, 33.33333333333333, 66.66666666666666]
        [100.0, 66.66666666666666, 33.33333333333333]

Diverte-te, e resto de um bom 6 de novembro de 2022.

kkkkkk casa um que vc faz sai totalmente fora do contexto, isso ai e o que? python, c++, html, css?isso ai nao tem nada haver

Link to comment
Share on other sites

Em 07/11/2022 às 11:17, andrfey disse:

kkkkkk casa um que vc faz sai totalmente fora do contexto, isso ai e o que? python, c++, html, css?isso ai nao tem nada haver

É Python, meu caro.

Inseres o tamanho da matriz, e fiz duas opções:

  1. Inserir manualmente os valores da matriz;
  2. Preencher a matriz com valores aleatórios de 0 a 100.

O que tu referiste foi o segundo ponto, portanto está lá o que queres.

No final calcula a percentagem de pares e ímpares por linha da matriz. Ora vê lá bem o output do exemplo:

[[71, 13, 75], [69, 22, 65], [88, 77, 72]]:
        [0.0, 33.33333333333333, 66.66666666666666]
        [100.0, 66.66666666666666, 33.33333333333333]
  • Na primeira linha da matriz gerada aleatoriamente, [71, 13, 75], tens 0% de números pares.
  • Na segunda linha, [69, 22, 65], tens 33,3% de números pares.
  • E na terceira linha, [88, 77, 72], tens 66,6% de números pares.

Estas percentagens são a segunda linha do output: [0.0, 33.333…, 66.666…]. A linha seguinte é a percentagem de números ímpares por linha da matriz.

Eu fiz o que pediste. Só tens de adaptar a teu gosto. E claro, formatar o output conforme aches melhor.


Por fim, relembro pela última vez para cuidares dos modos com que falas.

Edited by thoga31
Formatação do texto

Knowledge is free!

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.