找回密码
 欢迎注册
楼主: 〇〇

[讨论] mathe能否提供更新的windows版gmp库

[复制链接]
发表于 2011-1-11 09:56:28 | 显示全部楼层
39# G-Spider 跟你的一样,还是那个问题,mpz_out_str 运行时错误. 不过,我还是传一下文件, GMP5.0.1.rar (225.09 KB, 下载次数: 18) 里面包含.h , .def , .exp ,.lib ,dll 文件 。
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2011-1-11 10:01:10 | 显示全部楼层
40# 无心人 我也好像记得你说过. 大概我当时的折腾 就是看了你的帖子吧, 只恨 没成功, 当时我还不知道C++ 的dll跟C产生的dll 不一样呢
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2011-1-11 10:19:22 | 显示全部楼层
40# 无心人 嗯,很简单的, 才两步,本来就不复杂, 是我们前面的讨论过于冗长, G-Spider 贴的代码也过于冗长罢了,给无心大人造成了错觉,罪过罪过 , 我建议郭大大把 [code] 的控件换成有滑动块的那种,一旦代码贴得过多,我们可以在局限的区域滑动小滑块 ,不至于在整个页面拖动滑块,那样会很累的. =========================== G-Spider , ,要不,你前面那些长帖我给你编辑一下? 或者你编辑也行,就是弄成附件的形式
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2011-1-11 10:43:27 | 显示全部楼层
43# wayne 我改不了了。直接删掉,不可造成错觉,罪过罪过 , ,不过有点好处,百度gmp函数时很可能别人就检索到这帖。
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2011-1-11 11:53:46 | 显示全部楼层
41# wayne mpz_out_str有点问题,就用mpz_get_str吧。 //*************************** //替换mpz_out_str(stdout,36,r); //替换mpz_out_str(f,36,r); mpz_get_str(qq,36,r);//The base may vary from 2 to 36 printf("%s",qq);//console显示输出 i=0; while(qq[ i ]!=0) fputc(qq[i++],f);//写入文件 fclose(f); //*************************** 还原你的测试:
  1. #include <stdio.h>
  2. #include "gmp.h"
  3. #pragma comment(lib,"libgmp.lib")
  4. int main (void)
  5. { FILE *f=fopen("a.txt","w");
  6. int num=50,i;
  7. mpz_t n,m,c,r;
  8. char qq[100]; //或用malloc分配空间,并初始化为0
  9. mpf_t pi,e,xx,yy;//**********
  10. mpq_t x,y,z;
  11. for(i=0;i<100;i++)
  12. qq[i]='\0';
  13. mpz_init_set_str (n, "13703703579", 10);
  14. mpz_init_set_str (m, "29012345415", 10);
  15. mpz_inits(c,r,'\0');
  16. mpz_gcd(c,n,m);
  17. mpz_fac_ui(r,num);
  18. gmp_printf ("gcd(%Zd,%Zd) = %Zd\n\n%d! =%Zd:\n in base 36:\t",n,m,c,num,r);
  19. //***************************
  20. //替换mpz_out_str(stdout,36,r);
  21. //替换mpz_out_str(f,36,r);
  22. mpz_get_str(qq,36,r);//The base may vary from 2 to 36
  23. printf("%s",qq);//console显示输出
  24. i=0;
  25. while(qq[i]!=0)
  26. fputc(qq[i++],f);//写入文件
  27. fclose(f);
  28. //***************************
  29. mpz_fib_ui(r,num);
  30. gmp_printf("\n\nthe %dth fibonacci number is:\n %Zd\n",num,r);
  31. mpz_bin_ui(c,n,num);
  32. gmp_printf("\nBinomial number C(%Zd,%d) is:\n%Zd\n",n,num,c);
  33. mpz_pow_ui(c,n,num);
  34. gmp_printf("\n%Zd^%d =:\n%Zd\n",n,num,c);
  35. mpf_set_default_prec(500);
  36. mpf_init_set_str(pi,"3.14159265358979323846264338327950288419716939937510582097494459230781",10);
  37. mpf_init_set_str(e ,"2.71828182845904523536028747135266249775724709369995957496696762772407",10);
  38. mpf_inits(xx,yy,'\0');
  39. mpf_pow_ui(xx,pi,4);mpf_pow_ui(yy,pi,5);
  40. mpf_add(xx,xx,yy);
  41. mpf_pow_ui(yy,e,6);
  42. gmp_printf("\npi^4+pi^5=%.50Ff\ne^6\t =%.50Ff\n\ninput a number to compute its next prime,",xx,yy);
  43. gmp_printf("arbitraryly large:\n");
  44. gmp_scanf("%Zd",c);
  45. mpz_nextprime(r,c);
  46. gmp_printf("after %Zd,closely followed a prime:\n%Zd\n\n",c,r);
  47. mpq_inits(x,y,z,'\0');
  48. gmp_printf("you input two fractions with a plus sign(2/4+1/3),I compute their sum:\n");
  49. gmp_scanf ("%Qd + %Qd",x,y);
  50. mpq_canonicalize(x);
  51. mpq_canonicalize(y);
  52. mpq_add(z,x,y);
  53. gmp_printf("\nactually,after reduction,your equation is:\n%Qd+%Qd = %Qd\nGoodbye!\n",x,y,z);
  54. mpz_clears(m,n,c,r,'\0');
  55. mpq_clears(x,y,z,'\0');
  56. mpf_clears(xx,yy,'\0');
  57. return 0;
  58. }
复制代码
test.jpg
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2011-1-11 14:11:33 | 显示全部楼层
45# G-Spider 这代码怎么那么熟悉,............... 我好像没上传吧
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2011-2-26 00:08:04 | 显示全部楼层
41# wayne
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2011-2-26 00:11:24 | 显示全部楼层
41# wayne 有没有未编译的VS下的源码?我是新手,才到。多多关照。谢谢!
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2011-2-26 08:40:53 | 显示全部楼层
49# lnszyd 呵呵,avatar是 牛顿啊,欢迎加入我们论坛。 我想问问,你要未编译的VS下的源码,想接着干嘛?
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2011-6-13 15:01:19 | 显示全部楼层
wayne有没有条件编译一下windows版本的GMP 5.0.2
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
您需要登录后才可以回帖 登录 | 欢迎注册

本版积分规则

小黑屋|手机版|数学研发网 ( 苏ICP备07505100号 )

GMT+8, 2024-12-27 07:12 , Processed in 0.032445 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表