博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
2^1000的各位数字和
阅读量:6231 次
发布时间:2019-06-21

本文共 563 字,大约阅读时间需要 1 分钟。

这两天在看到这样一个问题。本来这个利用MATLAB的符号计算是相当easy,一句话即可搞定:

 sum(char(sym('2^1000'))-'0') 结果是1366。但如果不用符号计算的话就需要些技巧了。

注意到大数可以用10的n次幂的多项式来表示,因此大数相乘对应的就是多项式乘积,也就是卷积。因此可以得到下面MATLAB代码:

a = num2str(2^50)-'0'; for k = 1:2 a = BigInteM(a,a); end b = a; for k = 1:2 b = BigInteM(b,b); end ab = BigInteM(a,b); sum(ab);

BigInteM的代码如下:

function c = BigInteM(a,b)%a,b为0-9整数数组c = conv(a,b);for k = length(c):-1:2        c(k-1) = c(k-1)+floor(c(k)/10);    c(k) = mod(c(k),10);endtmp = num2str(c(1))-'0';c = [tmp,c(2:end)];

 

 

转载于:https://www.cnblogs.com/rocwoods/archive/2012/02/11/2346503.html

你可能感兴趣的文章
DataAccess通用数据库访问类,简单易用,功能强悍
查看>>
启动MYSQL密码审计插件
查看>>
spring的事务操作
查看>>
Extensions for Spatial Data
查看>>
Hadoop HDFS 用户指南
查看>>
primefaces 查询 点击按钮 加载 动画 ajax loader
查看>>
Java单例模式——并非看起来那么简单
查看>>
curl库pycurl实例及参数详解
查看>>
actor中!(tell)与forward的差别
查看>>
Android - Activity定制横屏(landscape)显示
查看>>
SQL中 EXCEPT、INTERSECT用法
查看>>
基于Token的WEB后台认证机制
查看>>
[Python] Reuse Code in Multiple Projects with Python Modules
查看>>
026——VUE中事件修饰符之使用$event与$prevent修饰符操作表单
查看>>
dynamic web module讲解
查看>>
C# 过滤特殊字符,保留中文,字母,数字,和-
查看>>
Pycharm安装详细教程
查看>>
WPF自定义LED风格数字显示控件
查看>>
Linux编译步骤概述
查看>>
Ubuntu环境使用apt命令下载管理包的优势
查看>>