数学研发论坛

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

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

[复制链接]
发表于 2011-1-11 09:56:28 | 显示全部楼层
39# G-Spider
跟你的一样,还是那个问题,mpz_out_str 运行时错误.

不过,我还是传一下文件, GMP5.0.1.rar (225.09 KB, 下载次数: 18)
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 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.           
  8.            mpz_t n,m,c,r;
  9.            char qq[100]; //或用malloc分配空间,并初始化为0
  10.            mpf_t pi,e,xx,yy;//**********
  11.            mpq_t x,y,z;
  12.           
  13.            for(i=0;i<100;i++)
  14.           qq[i]='\0';
  15.                mpz_init_set_str (n, "13703703579", 10);
  16.            mpz_init_set_str (m, "29012345415", 10);          
  17.            mpz_inits(c,r,'\0');
  18.            mpz_gcd(c,n,m);
  19.            mpz_fac_ui(r,num);            
  20.    
  21.            gmp_printf ("gcd(%Zd,%Zd) = %Zd\n\n%d! =%Zd:\n in base 36:\t",n,m,c,num,r);
  22. //***************************
  23.            //替换mpz_out_str(stdout,36,r);
  24.            //替换mpz_out_str(f,36,r);
  25.            mpz_get_str(qq,36,r);//The base may vary from 2 to 36
  26.                  printf("%s",qq);//console显示输出
  27.             i=0;
  28.           while(qq[i]!=0)
  29.             fputc(qq[i++],f);//写入文件
  30.        fclose(f);
  31. //***************************

  32.            mpz_fib_ui(r,num);
  33.            gmp_printf("\n\nthe %dth fibonacci number is:\n %Zd\n",num,r);
  34.            mpz_bin_ui(c,n,num);
  35.            gmp_printf("\nBinomial number C(%Zd,%d) is:\n%Zd\n",n,num,c);
  36.            mpz_pow_ui(c,n,num);
  37.            gmp_printf("\n%Zd^%d =:\n%Zd\n",n,num,c);
  38.           
  39.            mpf_set_default_prec(500);
  40.           
  41.            mpf_init_set_str(pi,"3.14159265358979323846264338327950288419716939937510582097494459230781",10);
  42.            mpf_init_set_str(e ,"2.71828182845904523536028747135266249775724709369995957496696762772407",10);
  43.            mpf_inits(xx,yy,'\0');
  44.            mpf_pow_ui(xx,pi,4);mpf_pow_ui(yy,pi,5);
  45.            mpf_add(xx,xx,yy);
  46.            mpf_pow_ui(yy,e,6);
  47.            gmp_printf("\npi^4+pi^5=%.50Ff\ne^6\t =%.50Ff\n\ninput a number to compute its next prime,",xx,yy);
  48.            gmp_printf("arbitraryly large:\n");
  49.            gmp_scanf("%Zd",c);
  50.            mpz_nextprime(r,c);
  51.            gmp_printf("after %Zd,closely followed a prime:\n%Zd\n\n",c,r);
  52.                         
  53.           
  54.            mpq_inits(x,y,z,'\0');
  55.            gmp_printf("you input two fractions with a plus sign(2/4+1/3),I compute their sum:\n");
  56.            gmp_scanf ("%Qd + %Qd",x,y);
  57.            mpq_canonicalize(x);
  58.            mpq_canonicalize(y);
  59.            mpq_add(z,x,y);
  60.            gmp_printf("\nactually,after reduction,your equation is:\n%Qd+%Qd = %Qd\nGoodbye!\n",x,y,z);
  61.              
  62.            mpz_clears(m,n,c,r,'\0');
  63.            mpq_clears(x,y,z,'\0');
  64.            mpf_clears(xx,yy,'\0');

  65.        return 0;
  66.      }
复制代码
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, 2019-8-21 12:36 , Processed in 0.055373 second(s), 17 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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