encik pot pet 0 Report post Posted October 8, 2007 Sebenarnya ni bukan programming sangat sebab kalau setakat nak kira hasil tambah 1+2+3+4+....+1000000 senang jer pakai komputer.contoh kalau sampai 100;int sum = 0; int i = 1; for (i = 1; i <= 100; i++) sum +=i;Kalau korang duk zaman tahun 1600(masa tu takde lagi komputer), agak2nya camner nak mengira hasil tambah dari 1 hingga 1M or 1B dengan cepat?Soalannya; sila terbitkan satu formula/algo utk mengira hasil tambah 1 hingga 1M.chow Quote Share this post Link to post Share on other sites
fl1pfl0p 0 Report post Posted October 9, 2007 sy cuba ye..formulanye --> N + N/2 + ((N/2)-1)N .ringkaskan ---> 3N/2 + (N^2-2N)/2di mana N adalah nombor gandaan 10. betul tak? Quote Share this post Link to post Share on other sites
encik pot pet 0 Report post Posted October 9, 2007 formula awak tu, kalau letak N = 100, keluar tak jumlah 5050? Quote Share this post Link to post Share on other sites
fl1pfl0p 0 Report post Posted October 9, 2007 mmg dapat 5050.saya dah test dah guna formula saya dan compare dengan jawapan dari code c yg encik pot pet bagi tu .jawapan saya betul dari 10,100,dan 1000.Sampai 10000 je,pastu jawapan dari code dah lain dari formula saya.Saya rasa mungkin sebab int tak boleh tampung jawapan tu sbb besar sangat ,so saya try guna unsigned int baru dapat jawapan betul dgn formula saya iaitu 50005000.Tapi utk 100000 tak dapat lagi kalau guna code.Kalau boleh encik pot pet boleh tak tunjukkan code yg boleh kirakan hasil tambah 1-100000 dan gandaan sepuluh lagi besar.Saya baru lagi dalam c ni.. Quote Share this post Link to post Share on other sites
encik pot pet 0 Report post Posted October 9, 2007 (edited) kalau guna computer x86 ni, int size dia cuma 32 bit jer, 0xFFFFFFFF bersamaan dgn 4 billion lebih. kalau nak kira nilai lagi besar kena code bignum library sendiri atau guna org lain punya seperti http://gmplib.org/btw, saya punya algo valid utk 1 -> infinity, will u derive it?hint: http://www-groups.dcs.st-and.ac.uk/~histor...hies/Gauss.html edit: aku biasanya pakai MIRACL http://www.shamus.ie/index.php?page=home Edited October 9, 2007 by encik pot pet Quote Share this post Link to post Share on other sites
Stranger 0 Report post Posted October 9, 2007 Bukan ke ade Janjang Arimetik?Sn = n/2 (a + l)@Sn = n/2 (2a + (n-1)d)max size bagi int data type = –2,147,483,648 to 2,147,483,647unsigned int seperti en zeph ckp = 0xFFFFFFFF (0 to 4,294,967,295)lagi satu ade __int64__int64 = –9,223,372,036,854,775,808 to 9,223,372,036,854,775,807unsigned __int64 = 0xFFFFFFFFFFFFFFFF (0 to 18,446,744,073,709,551,615) Quote Share this post Link to post Share on other sites
Paralys3r 0 Report post Posted October 13, 2007 [quoue]Kalau korang duk zaman tahun 1600(masa tu takde lagi komputer), agak2nya camner nak mengira hasil tambah dari 1 hingga 1M or 1B dengan cepat? Quote Share this post Link to post Share on other sites
Paralys3r 0 Report post Posted October 16, 2007 sementara duk sorang2 ari raya ni terlebih cuti.. saya ambil kesempatan untuk buat simple program berdasarkan formula arithmetic series yang rasanya ramai orang tau kan?? (lihat post Stranger).. tapi setakat ni gunakan gmp library sebagai contoh..#ifdef HAVE_CONFIG_H #include <config.h> #endif #include <stdio.h> #include <stdlib.h> #include <gmp.h> int main(int argc, char *argv[]) { mpz_t total, temp, n; if (argc != 2) { printf("Usage : sum n\n\tn can be integer of any size\n\n"); return EXIT_SUCCESS; } if (mpz_init_set_str(n, argv[1], 10)) { printf("n must be a valid integer value!\n"); return EXIT_FAILURE; } mpz_init(total); mpz_add_ui(total, n, 1); mpz_mul(total, total, n); mpz_tdiv_q_ui(total, total, 2); gmp_printf("sum[1,%Zd] = %Zd\n", n, total); return EXIT_SUCCESS; } Quote Share this post Link to post Share on other sites
SHiDi 0 Report post Posted October 18, 2007 sementara duk sorang2 ari raya ni terlebih cuti.. saya ambil kesempatan untuk buat simple program berdasarkan formula arithmetic series yang rasanya ramai orang tau kan?? (lihat post Stranger).. tapi setakat ni gunakan gmp library sebagai contoh..#ifdef HAVE_CONFIG_H #include <config.h> #endif #include <stdio.h> #include <stdlib.h> #include <gmp.h> int main(int argc, char *argv[]) { mpz_t total, temp, n; if (argc != 2) { printf("Usage : sum n\n\tn can be integer of any size\n\n"); return EXIT_SUCCESS; } if (mpz_init_set_str(n, argv[1], 10)) { printf("n must be a valid integer value!\n"); return EXIT_FAILURE; } mpz_init(total); mpz_add_ui(total, n, 1); mpz_mul(total, total, n); mpz_tdiv_q_ui(total, total, 2); gmp_printf("sum[1,%Zd] = %Zd\n", n, total); return EXIT_SUCCESS; }Jujur katakan, aku memang tak mahir dengan C. So, just curious, apa dia punya running time eh? Quote Share this post Link to post Share on other sites
Paralys3r 0 Report post Posted October 27, 2007 running time? measure sendiri laa .. lekat time kat depan, e.g #time sum 28471289641782647152641725412471254751274125686591274912749712894719279748921784612dalam machine saya, tak kira berapa besar nombor (limited by console buffer) output keluar immediately. Quote Share this post Link to post Share on other sites
dukun 0 Report post Posted November 26, 2007 (edited) #ifdef HAVE_CONFIG_H #include <config.h> #endif #include <stdio.h> #include <stdlib.h> #include <gmp.h>benda nie aper yer? kena tulis ker setiap kali buat program?? kalau x masukkan, boleh ker/?? Edited November 26, 2007 by dukun Quote Share this post Link to post Share on other sites
MysticEd 0 Report post Posted December 2, 2007 #ifdef HAVE_CONFIG_H #include <config.h> #endif #include <stdio.h> #include <stdlib.h> #include <gmp.h>benda nie aper yer? kena tulis ker setiap kali buat program?? kalau x masukkan, boleh ker/??kengkadang kalau tak letak mende tu, pastu kompile, dier akan kluar msg error..so pastikan tak tertinggal fungsi2 tersebut. Quote Share this post Link to post Share on other sites
Paralys3r 0 Report post Posted December 8, 2007 ni yang kita panggil sebagai preprocessor directives. Contohnya #include directive membolehkan awak masukkan (gunakan) source file lain pada line tersebut. So bila awak buat "#include <stdio.h> misalnya, awak basically masukkan isi fail stdio.h (lokasinya bergantung kepada bagaimana pengkompil awak dipasang) menggantikan line #include tu.. Ni membolehkan kita seperate source files, so benda2 macam symbolic constants kita bleh masukkan dalam header files (*.h) dan boleh di"#include" oleh mana2 source file yang memerlukan definisinya. Dalam contoh kod di atas, ia membolehkan kita gunakan simbol EXIT_SUCCESS, fungsi mpz_init dan sebagainya.. sebab headers yang kita masukkan dalam source kita dah define/declare untuk kita. Quote Share this post Link to post Share on other sites
hairulfadly 27 Report post Posted December 8, 2007 Kita panggil sebagai preprocessor directives. Contohnya #include directive membolehkan awak masukkan (gunakan) source file lain pada line tersebut. So, bila awak buat "#include <stdio.h> misalnya, awak basically masukkan isi kandungan fail stdio.h (lokasinya bergantung kepada bagaimana pengkompil awak dipasang) menggantikan line #include tu.. Ini membolehkan kita seperate source files, so benda-benda seperti symbolic constants kita boleh masukkan dalam header files (*.h) dan boleh di"#include" oleh mana2 source file yang memerlukan definisinya. Dalam contoh kod di atas, ia membolehkan kita gunakan simbol EXIT_SUCCESS, fungsi mpz_init dan sebagainya.. sebab headers yang kita masukkan dalam source kita dah define/declare untuk kita.Credit : Paralys3r Quote Share this post Link to post Share on other sites
slash_emc2 0 Report post Posted February 18, 2008 http://www-groups.dcs.st-and.ac.uk/~histor...hies/Gauss.htmlEncik Gaus yg terkenal...bukan setakat matematik jer,Fizik pun mamat nie ada terbit rumus.... Quote Share this post Link to post Share on other sites