Bir komut dosyasından belirli sayıda ondalık basamağa Pi nasıl oluşturabilirim?


Yanıtlar:


19

Sisteminizde bc(Temel Hesap Makinesi) yardımcı programına sahip olduğunuzu varsayarsak , π ila 10.000 ondalık basamak hesaplamak için aşağıdaki komutu ve biraz eski matematik kullanabilirsiniz:

echo "scale=10000; 4*a(1)" | bc -l

Bu muhtemelen 10.000 ondalık basamağın tamamlanması için biraz zaman alacaktır.

Komut bozuldu ...

  • scale = 10000 - sonuç için kullanılacak ondalık basamak sayısını belirtir
  • 4 * a (1) - bu 1'in arktanjantını [45 °: 45 x (π / 180) veya tan] değerine eşit döndürür, ardından get elde etmek için 4 ile çarpar.
  • bc -l - tam işlev dizesini bc yardımcı programına bağlar , -l , arctangent işlevi için gerekli olan standart matematik kitaplığını yüklemeyi belirtir, a () .

Sorunuzda belirttiğiniz gibi bunu bir komut dosyasına sarmak için, aşağıdakileri yazmak ve kaydetmek için favori düzenleyicinizi kullanın generatepi.sh:

#!/bin/bash
echo "scale=$1; 4*a(1)" | bc -l

Daha sonra chmod +x generatepi.shdosyayı kaydettiğiniz klasörden bir terminal kullanımından komut dosyası yürütme hakları verir. Sözdizimi o zaman olur generatepi.sh [number of places]. Bunun parametreleri işlemek için çok basit bir yol kullandığını ve girişi doğrulamayacağını unutmayın, bu nedenle parametre olarak yalnızca pozitif tamsayıları ilettiğinizden emin olun.

Çoğu Linux sisteminin sahip olması gerekir, bcancak bazı durumlarda yüklemeniz gerekebilir (örneğin Ubuntu'da apt-get , Gentoo'da ortaya çıkma vb.). Windows için bir bc portu da var .


windows için yerel pi hesap makineleri var - hız aşırtmacılar bunları kararlılık testi için kullanıyor
Journeyman Geek

~ 3dk benim makine, bir senaryoda oldukça işe yaramaz. +1 olsa kullanmak için bc.
cYrus

Bence "bc" deki "b", "Bench" yerine "Berkeley" anlamına geliyor.
user1364368

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.