Autor Tópico: Como Calcular PI pelo terminal  (Lida 4488 vezes)

Offline peq42

  • Usuário Ubuntu
  • *
  • Mensagens: 53
    • Ver perfil
    • TwitDown
Como Calcular PI pelo terminal
« Online: 13 de Agosto de 2013, 20:30 »
Eu gostaria de saber como eu poderia fazer o calculo(o mais completo possivel, com pelo menos 1 milhão de digitos de resultado) pelo terminal do ubuntu.

Estou querendo fazer isto só para testar a minha maquina, para ver até onde ela consegue calcular em um determinado tempo.

Offline sigur

  • Usuário Ubuntu
  • *
  • Mensagens: 1.175
    • Ver perfil
Re: Como Calcular PI pelo terminal
« Resposta #1 Online: 13 de Agosto de 2013, 20:44 »

Offline zekkerj

  • Usuário Ubuntu
  • *
  • Mensagens: 19.735
  • Gratidão gera gratidão, lamúria atrai lamúria...
    • Ver perfil
    • Blog do Zekke
Re: Como Calcular PI pelo terminal
« Resposta #2 Online: 14 de Agosto de 2013, 10:28 »
Se vc quer fazer um benchmark do seu computador, há formas muito mais práticas. Uma pesquisa por "benchmark ubuntu" no Google deve trazer bons resultados.

Calcular pi pode até servir de benchmark, mas só vai fazer sentido se vc comparar com outra máquina usando o mesmo ambiente de programação e o mesmo algoritmo.
Pesquise antes de perguntar, sua dúvida pode já ter sido respondida.
Não respondo dúvidas por MP, coloque sua dúvida no fórum onde ela pode ser pesquisada pelos seus colegas!
Não venha ao fórum apenas para perguntar. Se você sabe a resposta de um problema, porque não ajudar seu colega? ;D

Offline pylm69

  • Usuário Ubuntu
  • *
  • Mensagens: 476
    • Ver perfil
Re: Como Calcular PI pelo terminal
« Resposta #3 Online: 15 de Agosto de 2013, 15:57 »
Rolling Release é o máximo \o/

Offline platao

  • Equipe Ubuntu
  • Usuário Ubuntu
  • *****
  • Mensagens: 5.052
    • Ver perfil
Re: Como Calcular PI pelo terminal
« Resposta #4 Online: 15 de Agosto de 2013, 17:00 »
Lembro de uma vez(senta que la vem historia hehehe) quando trabalhava em uma usina de açucar e alcool no interior de Sao Paulo e eles tinham la um sistema VM/AS bem antigao, tela de fosforo verde e la trabalhava um japones que era programador.

Ele programava do setor dele toda a safra da usina e fazia projeçoes de corte da cana, simulações etc. As vezes ele requisitava algumas coisas para o PCP(o servidor) e o cara la negava :).

Lembro que ele botava para rodar um programinha que calculava o PI com trocentas casas decimais e o sevidor as vezes caia ou ficava extremamente lento!!! heehhehehe   
\\\\\\\\Apostilas Dicas e Guias do Ubuntu\\\\\\\\\> http://ubuntuforum-br.org/index.php/topic,79368.msg440997.html#msg440997

Offline pylm69

  • Usuário Ubuntu
  • *
  • Mensagens: 476
    • Ver perfil
Re: Como Calcular PI pelo terminal
« Resposta #5 Online: 21 de Agosto de 2013, 13:21 »
http://systester.sourceforge.net/
 Tava usando o parted magic esses dias e dando uma fuçada achei esse programa (que é instalado nele por padrão) e ele faz quase exatamente o que vc quer, calcular pi ;D mas em interface gráfica, ta nos repos oficiais do ubuntu, pode instalar pela central de programas.
Rolling Release é o máximo \o/

Offline rlcastrobh

  • Usuário Ubuntu
  • *
  • Mensagens: 31
    • Ver perfil
Re: Como Calcular PI pelo terminal
« Resposta #6 Online: 12 de Outubro de 2013, 09:19 »
Ola pessoal, calcular pi é bem simples, segue um algoritmo em python para quem tiver curiosidade. Rode a função dec_pi(n) e calcule quantas casas decimais quiserem. Acho que não chega em 1 bilhão (para calcular 5000 casas aqui no meu notebook demorou quase 1 min), afinal sou apenas um iniciante, mas é bem legal.

Abraços.

Código: [Selecionar]
def dec_pi(n):  
    tamanho = int(10*n/3)
    i = 0
    A = []
    while i <= tamanho:
        A.append (2)
        i += 1
        
    i = 0
    q = 0
    r = 0
    x = 0
    multiplicador = 0
    lista = []
    while i <= n:
        j = 0
        while j <= tamanho:
            A[j] = A[j] * 10
            j += 1
        k = tamanho
        while k >= 0:
            A[k] = A[k] + multiplicador
            if k > 0:
                q = int(A[k] / (k*2 +1))
                r = A[k] % (k*2 +1)
                multiplicador = q * k
                A[k] = r
            else:
                if len (str(A[0])) > 1:
                    lista.append (int(str(A[0])[0]))
                    A[k] = int(str(A[0])[1])
                else:
                    lista.append (int(str(A[0])[0]))
                    A[k] = int(str(A[0]))                
            k -= 1
        i += 1
    novalista = []
    p = 1
    for i in lista:
        if p == 1:
            novalista.append (str(i))
            novalista[0] = str(i) + '.'
            p = 0
            #print(novalista[0])
        else:
            novalista.append (str(i))
            #print(novalista[::-1][0])
    return ''.join (novalista)
« Última modificação: 12 de Outubro de 2013, 09:23 por rlcastrobh »