#include #define divisor 32767

/************************************************

和斐波那契数列一样,我们只需要将递推矩阵计算k-2次方即可

好吧,我们遇到了一个很尴尬的问题,就是在这个矩阵中a11的增长比

2的k-2次方还快一点,如果用置的数据类型,对于k>64的情况就没办法计算了

所以我们还要考虑这样一个问题:

a(n)=x*2+y

x=m*32767+a

y=n*32767+b

a(n)%32767=(2*a+b)%32767 所以为了防止矩阵越界,每次计算矩阵都只保留模32767的值

*************************************************/

int n,k;

struct matrix

{

long long a11,a12,a21,a22;

};

typedef struct matrix matrix;

long long sum;

matrix origin;

/***********************************************

**函数名:slove

**输入:n-需要将origin矩阵乘方的次数

**输出:origin n次方后的矩阵

**功能:计算origin的n次方

**作者:OrdinaryCrazy

**日期:20170804

**版本:1.0

************************************************/

matrix slove(int n)

{

if(n==1)

return origin;

matrix a,result;

if(n % 2)

{

a=slove(n - 1);

result.a11 = (a.a11 * origin.a11 + a.a12 * origin.a21) % divisor;

result.a12 = (a.a11 * origin.a12 + a.a12 * origin.a22) % divisor;

result.a21 = (a.a21 * origin.a11 + a.a22 * origin.a21) % divisor;

result.a22 = (a.a21 * origin.a12 + a.a22 * origin.a22) % divisor;

}

else

{

a=slove(n / 2);

result.a11 = (a.a11 * a.a11 + a.a12 * a.a21) % divisor;

result.a12 = (a.a11 * a.a12 + a.a12 * a.a22) % divisor;

result.a21 = (a.a21 * a.a11 + a.a22 * a.a21) % divisor;

result.a22 = (a.a21 * a.a12 + a.a22 * a.a22) % divisor;

}

return result;

}

int main()

{

origin.a11=2;

origin.a12=origin.a21=1;

origin.a22=0;

scanf("%d",&n);

while(n--)

{

scanf("%d",&k);

if(k>2)

{

matrix result;

result = slove(k - 2);

sum = 2*result.a11 + result.a12;

printf("%d\n",sum % 32767);

}

else

k==1 ? printf("1\n") : printf("2\n");

}

return 0;

}

c语言实现6乘6的的方阵,百炼2786-Pell数列-C语言-矩阵乘法-同余类相关推荐

  1. ebnf描述c语言语句结构,EBNF与操作语义 请用扩展的 BNF 描述 javascript语言里语句的结构;并用操作语义的方法描述对应的语义规则...

    Presentation on theme: "EBNF与操作语义 请用扩展的 BNF 描述 javascript语言里语句的结构:并用操作语义的方法描述对应的语义规则"- Pre ...

  2. R语言使用upper.tri函数、lower.tri函数、diag函数改变matrix矩阵上三角形、下三角形、对角线的数值

    R语言使用upper.tri函数.lower.tri函数.diag函数改变matrix矩阵上三角形.下三角形.对角线的数值 目录

  3. 2017电大c语言形考册,(2017年电大)中央广播电视大学c语言程序设计形成性考核册及答案.doc...

    (2017年电大)中央广播电视大学c语言程序设计形成性考核册及答案 C语言程序设计形成性作业一 一.选择题 1.在每个C语言程序中都必须包含有这样一个函数,该函数的函数名为(A). A.main B. ...

  4. ubuntu16.04在英文状态下安装中文语言包的过程(法一:图形界面的方式) 以及 安装中文语言包后无法选择汉语问题的解决

    ubuntu16.04在英文状态下安装中文语言包的过程(法一:图形界面的方式) 以及 安装中文语言包后无法选择汉语问题的解决 参考文章: (1)ubuntu16.04在英文状态下安装中文语言包的过程( ...

  5. python是用什么语言开发的-专为人工智能和数据科学而生的Go语言,或将取代Python...

    时间回到30年前,Python 首次亮相.花了20年时间,Python才获得开发者的认可.来到 2019 年,Python已经成为开发人员第二喜欢的语言. 在过去的5年时间里,Python 成为了机器 ...

  6. python是什么语言开发的-专为人工智能和数据科学而生的Go语言,或将取代Python...

    时间回到30年前,Python 首次亮相.花了20年时间,Python才获得开发者的认可.来到 2019 年,Python已经成为开发人员第二喜欢的语言. 在过去的5年时间里,Python 成为了机器 ...

  7. python语言编程入门先学什么-自学编程入门,先学什么语言好?

    强烈推荐Python.其实这个问题在入门阶段一直是争议十分大的问题,n多语言,n多推荐,到最后搞到新手一会听说这种语言适合新手,于是学习这种语言,一会又有人说xx语言是垃圾.弱爆了,学了也没用,之类的 ...

  8. Algorithm:C++语言实现之概率算法相关问题(计算机中的概率事件、C语言中的随机事件、产生二维随机数、圆内均匀取点)

    Algorithm:C++语言实现之概率算法相关问题(计算机中的概率事件.C语言中的随机事件.产生二维随机数.圆内均匀取点) 目录 一.概率 1.计算机中的概率事件 1.1.C语言中的随机事件 1.2 ...

  9. 是c语言自带的数据类型吗_计协带你了解C语言程序

    点击蓝字关注我们 你知道c语言吗?你对它又了解多少呢?C语言编译链接出来的程序就是软件.硬件是基础,软件是灵魂.硬件功能需要软件操作来体现. c语言是什么意思 C语言是一门面向过程.抽象化的通用程序设 ...

最新文章

  1. Rendering Problems Exception raised during rendering:
  2. java查询mysql装载bean_jsp与javabean链接mysql数据库并查询数据表的简单实例源码
  3. python内置函数sorted(x)的作用是_Python内置filter与sorted函数
  4. MCtalk教育快报 | 0816
  5. php 打印变量内存地址_Python合集之Python变量
  6. 关于MYsql 多字段排序
  7. php 文件写入磁盘错误,Linux磁盘读写故障的通常处理流程
  8. ubuntu查看node的安装目录_ubuntu安装nfs服务实现共享目录
  9. Linux 文件与目录管理、ls、cd、pwd、mkdir、rmdir、cp、 rm
  10. redis java 发布订阅_Redis之发布订阅(Java)
  11. 本机不装Oracle,使用plsql连接远程Oracle的方法
  12. 关于现代计算机的知识,从资本经济到知识经济:现代计算机的知识革命
  13. 谢惠民,恽自求,易法槐,钱定边编数学分析习题课讲义习题参考解答
  14. acer clear 工具_创作与电竞的全新体验 2019台北电脑展Acer派对开启
  15. 六、Oracle学习笔记:字符串函数
  16. 如何使用 Secret?- 每天5分钟玩转 Docker 容器技术(108)
  17. pdf文档有时打开乱码的解决方案
  18. Spring源码下载编译全过程!超详细的步骤!!!
  19. redis操作之迭代器 hscan
  20. 微信小程序 三角形实现 (评论三角形)

热门文章

  1. 使用VBA快速制作工资条
  2. 双录系统服务器地址怎么登陆,双录系统服务器地址怎么登陆
  3. 业务流程管理(BPM)
  4. 微信小程序+mysql实现增删改查
  5. 计算机科学与技术学费贵吗,在职计算机科学与技术研究生学费贵吗?
  6. oracle 与indexc函数,oracle索引知识小结
  7. web沙箱支付宝功能(详细)非maven版
  8. 浅析RocketMQ-CommitLog异步刷盘
  9. Python练习题答案: 海盗!是大炮准备好了!?【难度:0级】--景越Python编程实例训练营,1000道上机题等你来挑战
  10. html5 flash 游戏,使用Flash CC的HTML5 Canvas游戏中的HitTest