[Programming] Kiểm chứng kết quả của 1000! ? |
04/06/2009 13:19:15 (+0700) | #1 | 182757 |
mR.Bi
Member
|
0 |
|
|
Joined: 22/03/2006 13:17:49
Messages: 812
Offline
|
|
Như tiêu đề bài viết, mình muốn biết làm sao để biết được kết quả của 1000! hay 2000! hoặc lớn hơn là đúng hay sai? Kết quả tất nhiên rất lớn, không thể nào tính bằng tay rồi so được .
Có cách nào nhanh, gọn một tí không? |
|
All of my life I have lived by a code and the code is simple: "honour your parent, love your woman and defend your children" |
|
|
|
[Programming] Kiểm chứng kết quả của 1000! ? |
04/06/2009 14:05:55 (+0700) | #2 | 182761 |
StarGhost
Elite Member
|
0 |
|
|
Joined: 29/03/2005 20:34:22
Messages: 662
Location: The Queen
Offline
|
|
Đây là kết quả của 1000!, còn nếu cần 2000! thì cứ pm mình. Đảm bảo nhanh gọn. Tính giai thừa vài nghìn thì đâu có lâu gì đâu.
4023872600770937735437024339230039857193748642107146325437999104299385\
1239862902059204420848696940480047998861019719605863166687299480855890\
1323829669944590997424504087073759918823627727188732519779505950995276\
1208749754624970436014182780946464962910563938874378864873371191810458\
2578364784997701247663288983595573543251318532395846307555740911426241\
7474349347553428646576611667797396668820291207379143853719588249808126\
8678383745597317461360853795345242215865932019280908782973084313928444\
0328123155861103697680135730421616874760967587134831202547858932076716\
9132448426236131412508780208000261683151027341827977704784635868170164\
3650241536913982812648102130927612448963599287051149649754199093422215\
6683257208082133318611681155361583654698404670897560290095053761647584\
7728421889679646244945160765353408198901385442487984959953319101723355\
5566021394503997362807501378376153071277619268490343526252000158885351\
4733161170210396817592151090778801939317811419454525722386554146106289\
2187960223838971476088506276862967146674697562911234082439208160153780\
8898939645182632436716167621791689097799119037540312746222899880051954\
4441428201218736174599264295658174662830295557029902432415318161721046\
5832036786906117260158783520751516284225540265170483304226143974286933\
0616908979684825901254583271682264580665267699586526822728070757813918\
5817888965220816434834482599326604336766017699961283186078838615027946\
5955131156552036093988180612138558600301435694527224206344631797460594\
6825731037900840244324384656572450144028218852524709351906209290231364\
9327349756551395872055965422874977401141334696271542284586237738753823\
0483865688976461927383814900140767310446640259899490222221765904339901\
8860185665264850617997023561938970178600408118897299183110211712298459\
0164192106888438712185564612496079872290851929681937238864261483965738\
2291123125024186649353143970137428531926649875337218940694281434118520\
1580141233448280150513996942901534830776445690990731524332782882698646\
0278986432113908350621709500259738986355427719674282224875758676575234\
4220207573630569498825087968928162753848863396909959826280956121450994\
8717012445164612603790293091208890869420285106401821543994571568059418\
7274899809425474217358240106367740459574178516082923013535808184009699\
6372524230560855903700624271243416909004153690105933983835777939410970\
0277534720000000000000000000000000000000000000000000000000000000000000\
0000000000000000000000000000000000000000000000000000000000000000000000\
0000000000000000000000000000000000000000000000000000000000000000000000\
000000000000000000000000000000000000000000000000 |
|
Mind your thought. |
|
|
|
[Programming] Kiểm chứng kết quả của 1000! ? |
04/06/2009 14:16:29 (+0700) | #3 | 182763 |
mR.Bi
Member
|
0 |
|
|
Joined: 22/03/2006 13:17:49
Messages: 812
Offline
|
|
Kết quả thì giống, vấn đề là kiểm chứng xem nó có đúng không? 1000 2000 hay 20000 thì chỉ là vấn đề mình nhập n bằng nhiêu thôi.
Em đâu có nói tính lâu đâu anh, em nói tính bằng tay lâu mà . |
|
All of my life I have lived by a code and the code is simple: "honour your parent, love your woman and defend your children" |
|
|
|
[Programming] Kiểm chứng kết quả của 1000! ? |
04/06/2009 14:21:47 (+0700) | #4 | 182764 |
StarGhost
Elite Member
|
0 |
|
|
Joined: 29/03/2005 20:34:22
Messages: 662
Location: The Queen
Offline
|
|
Ồ, nếu tính bằng tay thì không có cách nào bạn ạ. Cách duy nhất là thử lại, và bằng tay thì cũng làm được nhưng... lâu. Một trong những cách test là đem so sánh kết quả của mình với kết quả từ một state-of-the-art program. Mình recommend Mathematica, một symbolic computing software chưa bao giờ tính sai. |
|
Mind your thought. |
|
|
|
[Programming] Kiểm chứng kết quả của 1000! ? |
04/06/2009 14:27:44 (+0700) | #5 | 182765 |
|
xnohat
Moderator
|
Joined: 30/01/2005 13:59:19
Messages: 1210
Location: /dev/null
Offline
|
|
Kiểm chứng à ?
Tham khảo qua vài links sau nhé:
http://justinwhite.com/big-calc/1000.html
http://www.associatedcontent.com/article/590789/the_number_of_zeros_at_the_end_of_1000.html
http://discuss.joelonsoftware.com/default.asp?interview.11.323075.8
Một phép toán số học phức tạp nếu cần kiểm chứng độ chính xác của kết quả mà một máy tính điện tử đưa ra, người ta thường so sánh kết quả sinh ra trên nhiều hệ thống máy tính điện tử khác nhau về mặt phần cứng xử lý, tập lệnh Vi xử lý, khác nhau về phần mềm toán học thực thi phép tính đó. Qua đó xác nhận độ chính xác của kết quả được sinh ra với kết quả tính toán "tự nhiên" nhờ tỉ lệ "giống nhau" giữa các kết quả được tạo ra bởi các hệ thống máy tính điện tử "khác nhau".
|
|
iJust clear, "What I need to do and how to do it"/i
br
brBox tán gẫu dời về: http://www.facebook.com/hvaonline |
|
|
|
[Programming] Kiểm chứng kết quả của 1000! ? |
05/06/2009 01:16:48 (+0700) | #6 | 182789 |
mR.Bi
Member
|
0 |
|
|
Joined: 22/03/2006 13:17:49
Messages: 812
Offline
|
|
Cám ơn 2 anh nhé, có lẽ Mathematica đúng là cái em cần, 1000! chỉ là ví dụ thôi, em muốn kiểm chứng kq của những phép toán rất rất lớn.
Nhưng Mathematica có phí. |
|
All of my life I have lived by a code and the code is simple: "honour your parent, love your woman and defend your children" |
|
|
|
[Programming] Kiểm chứng kết quả của 1000! ? |
05/06/2009 03:35:06 (+0700) | #7 | 182792 |
|
gamma95
Researcher
|
Joined: 20/05/2003 07:15:41
Messages: 1377
Location: aaa">
Offline
|
|
Cám ơn 2 anh nhé, có lẽ Mathematica đúng là cái em cần, 1000! chỉ là ví dụ thôi, em muốn kiểm chứng kq của những phép toán rất rất lớn.
Nhưng Mathematica có phí.
Thử cái miễn phí này coi ...
->
Code:
#!/usr/bin/env python
_sum = 1
for line in range(1, 1000):
_sum = _sum * line
print _sum
|
|
Cánh chym không mỏi
lol |
|
|
|
[Programming] Kiểm chứng kết quả của 1000! ? |
05/06/2009 03:58:12 (+0700) | #8 | 182794 |
lamer
Elite Member
|
0 |
|
|
Joined: 26/02/2008 13:28:49
Messages: 215
Offline
|
|
hahaha :-D. hay, nhưng mà dùng xrange tốt hơn dùng range. |
|
|
|
|
[Programming] Kiểm chứng kết quả của 1000! ? |
07/02/2012 01:27:32 (+0700) | #9 | 253217 |
|
bolzano_1989
Journalist
|
0 |
|
|
Joined: 30/01/2007 12:49:15
Messages: 1406
Offline
|
|
gamma95 wrote:
Cám ơn 2 anh nhé, có lẽ Mathematica đúng là cái em cần, 1000! chỉ là ví dụ thôi, em muốn kiểm chứng kq của những phép toán rất rất lớn.
Nhưng Mathematica có phí.
Thử cái miễn phí này coi ...
->
Code:
#!/usr/bin/env python
_sum = 1
for line in range(1, 1000):
_sum = _sum * line
print _sum
Chắc anh gamma95 đẹp trai làm nhanh quá nên có lỗi cần sửa, nếu không kết quả sẽ thiếu 3 chữ số 0 ở cuối :
Code:
#!/usr/bin/env python
_sum = 1
for line in range(1, 1001):
_sum = _sum * line
print _sum
|
|
Kiểm tra các file bạn nghi ngờ có virus:
http://goo.gl/m3Fb6C
http://goo.gl/EqaZt
http://goo.gl/gEF8e
Nhận mẫu virus qua FB: http://goo.gl/70Xo23
HVA Malware Response Team: kiemtravirus@gmail.com
Trợ giúp diệt virus: http://goo.gl/2bqxY |
|
|
|
[Programming] Kiểm chứng kết quả của 1000! ? |
07/02/2012 10:31:39 (+0700) | #10 | 253233 |
|
computerline
Member
|
0 |
|
|
Joined: 30/03/2007 13:46:50
Messages: 144
Offline
|
|
Cái này hồi trước có viết, tính 100000! cũng được !
Code:
#include <conio.h>
#include <stdio.h>
#include <stdlib.h>
#include <windows.h>
#define NMAX 4000000
unsigned int result[NMAX];
unsigned int n;
void ReadFile()
{
FILE * f = fopen("GIAITHUA.INP", "rt");
if (f != NULL)
fscanf(f, "%d", &n);
fclose(f);
}
void WriteFile()
{
FILE * f = fopen("GIAITHUA.OUT", "wt");
if (f != NULL)
{
int count = 1;
for (unsigned int i = result[0]; i >= 1; --i)
{
if (count % 80 == 0)
fprintf(f, "\n");
fprintf(f, "%d", result[i]);
count++;
}
}
fclose(f);
}
void Solve(unsigned int result[], unsigned int n) {
unsigned int remainder;
result[0] = 1;
result[1] = 1;
for (unsigned int i = 2; i <= n; ++i)
{
remainder = 0;
for (unsigned int j = 1; j <= result[0]; ++j)
{
result[j] = result[j] * i + remainder;
remainder = result[j] / 10;
result[j] = result[j] % 10;
}
while (remainder > 0)
{
++result[0];
result[result[0]] = remainder % 10;
remainder /= 10;
}
}
}
int main() {
wchar_t buff[100];
ReadFile();
DWORD dwStart = GetTickCount();
Solve(result, n);
WriteFile();
DWORD dwInterval = GetTickCount() - dwStart;
printf("The program pass %d times to complete", dwInterval);
return 0;
}
|
|
Không có nghề gì trong xã hội là thấp hèn cả - chỉ có nhân cách mới phân biệt thấp cao |
|
|
|
|