Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Najkraći C program za računajje broja pi

[es] :: Art of Programming :: Najkraći C program za računajje broja pi
(TOP topic)
Strane: 1 2

[ Pregleda: 23269 | Odgovora: 31 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Goran Rakić
Beograd

Član broj: 999
Poruke: 3766

Sajt: blog.goranrakic.com


+125 Profil

icon Re: Najkraći C program za računajje broja pi29.03.2010. u 09:28 - pre 170 meseci
Nedeljko, da li ti je dobro?
http://sr.libreoffice.org — slobodan kancelarijski paket, obrada teksta, tablice,
prezentacije, legalno bez troškova licenciranja
 
Odgovor na temu

mmix
Miljan Mitrović
Profesorkin muz
Passau, Deutschland

SuperModerator
Član broj: 17944
Poruke: 6041



+4631 Profil

icon Re: Najkraći C program za računajje broja pi29.03.2010. u 22:05 - pre 170 meseci
Hoces i ti da odbijes milion dolara kad ti ponude pa nas spremas polako

Sloba je za 12 godina promenio antropološki kod srpskog naroda. On je od jednog naroda koji je bio veseo, pomalo površan, od jednog naroda koji je bio znatiželjan, koji je voleo da vidi, da putuje, da upozna,
od naroda koji je bio kosmopolitski napravio narod koji je namršten, mrzovoljan, sumnjicav, zaplašen, narod koji se stalno nešto žali, kome je stalno neko kriv… - Z.Đinđić
 
Odgovor na temu

Nedeljko
Nedeljko Stefanović

Član broj: 314
Poruke: 8632
212.200.65.*



+2789 Profil

icon Re: Najkraći C program za računajje broja pi29.03.2010. u 23:11 - pre 170 meseci
je osnova sistema. Problem je što može biti (konkretno, može biti jednako , ali ne i više od toga), pa to što se ispisuje ne mora biti cifra tog sistema. To se najlakše vidi tako što se osnova smanji na 10, pa se generiše dosta cifara. No, program je napisan da ispisuje oko 1000 cifara broja pi i u tom opsegu se greška ne ispoljava, pa je izlaz dobar.
Nije bitno koji su zaključci izvučeni, već kako se do njih došlo.
 
Odgovor na temu

Nedeljko
Nedeljko Stefanović

Član broj: 314
Poruke: 8632
212.200.65.*



+2789 Profil

icon Re: Najkraći C program za računajje broja pi30.03.2010. u 09:26 - pre 170 meseci
Citat:
Goran Rakić: Nedeljko, da li ti je dobro?


Ma, dobro sam ja, nego ispravljam ovog kolegu što lupeta.

Citat:
mmix: Hoces i ti da odbijes milion dolara kad ti ponude :D pa nas spremas polako ;)


Pa, ne bi mi bilo loše sa miliončetom u džepu. Ko mi to nudi? Mogu li ja da preuzmem Grišinu nagradu umesto njega?
Nije bitno koji su zaključci izvučeni, već kako se do njih došlo.
 
Odgovor na temu

Nedeljko
Nedeljko Stefanović

Član broj: 314
Poruke: 8632
212.200.65.*



+2789 Profil

icon Re: Najkraći C program za računajje broja pi31.03.2010. u 16:17 - pre 170 meseci
Svi navedeni programi su "nategnuti" da ispale odredjen broj tačnih cifara. Kada bismo zamislili apstraktnu mašinu sa neograničenim intovima ili zamenili int sa nekom bigint klasom, na njima priloženi algoritmi ne bi ispaljivali bilo koji broj cifara broja pi tačno, već bi se dešavalo da ponegde omanu neku cifru (pa da opet iza nje imaju dugu seriju tačnih cifara).
Nije bitno koji su zaključci izvučeni, već kako se do njih došlo.
 
Odgovor na temu

Nedeljko
Nedeljko Stefanović

Član broj: 314
Poruke: 8632
212.200.65.*



+2789 Profil

icon Re: Najkraći C program za računajje broja pi06.04.2010. u 02:41 - pre 170 meseci
Evo jednog čitljivog programa bez anomalija.

Code:
#include <stdio.h>
#include <stdlib.h>

#define EXPONENT 5
#define DIGITS 1000

int main(int argc, char *argv[])
{
    int t = 1;
    int n = (DIGITS + EXPONENT - 1) / EXPONENT;
    char format[] = "%.0d ";
    int summand[n+2];
    int sum[n+2];
    int i;
    int k = 0;
    int p;
    int q;

    for (i=0; i < EXPONENT; ++i) {
        t *= 10;
    }

    n++;
    format[2] = '0' + EXPONENT;

    for (i = 0; i <= n; ++i) {
        summand[i] = sum[i] = 0;
    }

    summand[0] = 2;

    do {
        int carrier = 0;

        for (i = n; i >= 0; --i) {
            sum[i] += summand[i] + carrier;
            carrier = sum[i]/t;
            sum[i] -= carrier*t;
        }

        k++;
        p = 2*k + 1;
        q = 0;

        for (i = 0; i <= n; ++i) {
            q = summand[i]*k + q%p*t;
            summand[i] = q/p;
        }

        for (i = 0; i <= n; ++i) {
            if (summand[i] != 0) {
                break;
            }
        }
    } while(i <= n);

    printf("3.");

    for (i=1; i < n; ++i) {
        printf(format, sum[i]);

        if (i % (2*EXPONENT) == 0) {
            printf("\n  ");
        } else if ((i & 1) == 0) {
            printf(" ");
        }
    }

    if ((n - 1) % (2*EXPONENT) != 0) {
        printf("\n");
    }

    printf("\n");
    system("pause");

    return EXIT_SUCCESS;
}

Nije bitno koji su zaključci izvučeni, već kako se do njih došlo.
 
Odgovor na temu

3okc
Χoᴘᴦoѡ

Član broj: 811
Poruke: 1318

Jabber: 3okc@elitesecurity.org


+116 Profil

icon Re: Najkraći C program za računajje broja pi22.05.2012. u 19:19 - pre 144 meseci
Nije C ali jeste 'kraći', 'najkraći': računanje broja pi iz singl-Excel-formule. :D

66 karaktera i samo 5 tačnih decimala (od milion iteracija -vrlo sporo konvergira!) ali je zato ultra kratko.

(J. Sondow 1997.)

http://mathworld.wolfram.com/PiFormulas.html (70)

Code:

{=PRODUCT(1+1/(4*ROW(1:1000000)^2-1))/SUM(1/(4*ROW(1:1000000)^2-1))}


Have you found helpful examples, solutions or ideas-in-work, please consider the
following:
• Citation of *actual page* you are going to using is welcome.
• Have you saw "Value Added" examples you are going to incorporate to your
profitable blog, daily job or any money making venture: How about online donation?
↗Ana & Vlade Divac Foundation
Hvala!
Prikačeni fajlovi
 
Odgovor na temu

Nedeljko
Nedeljko Stefanović

Član broj: 314
Poruke: 8632
*.3gnet.mts.telekom.rs.



+2789 Profil

icon Re: Najkraći C program za računajje broja pi22.05.2012. u 20:25 - pre 144 meseci
Program ti jednostavno ne valja zato što koristi standardan realni tip ograničene tačnosti, pa ne možeš dobiti proizvoljan broj cifara..
Nije bitno koji su zaključci izvučeni, već kako se do njih došlo.
 
Odgovor na temu

3okc
Χoᴘᴦoѡ

Član broj: 811
Poruke: 1318

Jabber: 3okc@elitesecurity.org


+116 Profil

icon Re: Najkraći C program za računajje broja pi22.05.2012. u 20:50 - pre 144 meseci
Šta je ovde "moj program"? Excel? Ja lepo potpisah autora algoritma a sad što se formule tiče, to je što je.

Inače, Excel u računanju koristi samo 15 značajnih cifara i to je obogaljujuće u ovom proračunu ali zato sam i postavio linkove i integralnu formulu, pošto Excel nije tema.
Have you found helpful examples, solutions or ideas-in-work, please consider the
following:
• Citation of *actual page* you are going to using is welcome.
• Have you saw "Value Added" examples you are going to incorporate to your
profitable blog, daily job or any money making venture: How about online donation?
↗Ana & Vlade Divac Foundation
Hvala!
 
Odgovor na temu

Nedeljko
Nedeljko Stefanović

Član broj: 314
Poruke: 8632
*.3gnet.mts.telekom.rs.



+2789 Profil

icon Re: Najkraći C program za računajje broja pi22.05.2012. u 22:03 - pre 144 meseci
Ovde se prilažu programi koji mogu da izračunaju mnogo više cifara broja pi, nego što to podržavaju standardni realni tipovi koji su mašinski podržani. Dakle, ovde tema nisu programi koji npr. ne mogu da izračunaju 100 decimala broja pi kako treba.
Nije bitno koji su zaključci izvučeni, već kako se do njih došlo.
 
Odgovor na temu

3okc
Χoᴘᴦoѡ

Član broj: 811
Poruke: 1318

Jabber: 3okc@elitesecurity.org


+116 Profil

icon Re: Najkraći C program za računajje broja pi23.05.2012. u 06:20 - pre 144 meseci
Auu koliko sujete, nemam reči. Zašto je problem napisati program u C-u tako da se podrže svi neophodni "mašinski tipovi"? A broj decimala usko je vezan za broj iteracija i dakle ne može nikako biti propisan. Kao što i nije bio. Do malopre.
Have you found helpful examples, solutions or ideas-in-work, please consider the
following:
• Citation of *actual page* you are going to using is welcome.
• Have you saw "Value Added" examples you are going to incorporate to your
profitable blog, daily job or any money making venture: How about online donation?
↗Ana & Vlade Divac Foundation
Hvala!
 
Odgovor na temu

Nedeljko
Nedeljko Stefanović

Član broj: 314
Poruke: 8632
*.3gnet.mts.telekom.rs.



+2789 Profil

icon Re: Najkraći C program za računajje broja pi23.05.2012. u 12:34 - pre 144 meseci
Nije nikakav problem napisati program u bilo kom jeziku koji se oslanja na ugrađene tipove. Evo ti jednog

Code:
#include <iostream>
#include <cmath>
#include <iomanip>

using namespace std;

int main()
{
    cout << setprecision(50) << 4*atanl(1); << endl;
}


Broj iteracija o kome govoriš je samo jedno od ograničenja tačnosti koju ćeš dobiti. Izvršavanjem gornjeg C++ programa ćeš doboti tačnost koja odgovara long double tipu. Recimo,

3.1415926535897932385128089594061862044327426701784


Zacrnjene su dobre cifre (umesto pslednje petice treba 46..., što se zaokrugljuje na 5). Dakle, korišćeni tip ima svoja ograničenja. Možeš praviti kakve god hoćeš programe po kakvim god hoćeš formulama, izvršiti koliko god hoćeš iteracija, ali ako se osloniš na standardne tipove, nežeš dobiti veću tačnost od one koju oni podržavaju. Poenta je upravo u pisanju koji nemaju ograničenja za broj cifara koje se mogu dobiti.
Nije bitno koji su zaključci izvučeni, već kako se do njih došlo.
 
Odgovor na temu

[es] :: Art of Programming :: Najkraći C program za računajje broja pi
(TOP topic)
Strane: 1 2

[ Pregleda: 23269 | Odgovora: 31 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.