hrefspace

 找回密码
 立即注册
搜索
热搜: PHP PS 程序设计
查看: 1113|回复: 2

连分式因子分解程序,如何修改

[复制链接]

523

主题

523

帖子

1599

积分

大司空

Rank: 5Rank: 5

积分
1599
发表于 2023-10-3 09:00:55 | 显示全部楼层 |阅读模式
  1. d = 1241445153765162090376032461564730757085137334450817128010073; \pell = -1; P[0] = 0; Q[0] = 1;t[0] = (P[0] + Sqrt[d])/Q[0]a[0] = IntegerPart[t[0]];i = 0; While[ i <= 100 && (t[i] != 1/(t[0] - a[0]) && P[i] != pell) || i == 1, P[i + 1] = Q[i] a[i] - P[i]; Q[i + 1] = (d - P[i + 1]^2)/Q[i]; t[i + 1] = (P[i + 1] + Sqrt[d])/Q[i + 1]; a[i + 1] = Floor[t[i + 1]]; p[-1] = 0; p[0] = 1; p[i + 1] = a[i] p[i] + p[i - 1]; q[-1] = 1; q[0] = 0; q[i + 1] = a[i] q[i] + q[i - 1]; If[Q[i + 1] == Q[i] || P[i + 1] == P[i] ||    FractionalPart[Sqrt[Q[i + 1]]] == 0, Break[]]; Print[{i, Q[i], P[i], a[i]}] i++];{i, Q[i], P[i], a[i]}{i + 1, Q[i + 1], P[i + 1], a[i + 1]}GCD[Q[0] p[i + 1] - P[0] q[i + 1] + Sqrt[Q[i + 1] Q[0]], d]
复制代码

怎样将以上代码修改为动态计算,即不保存中间的运算过程,直接输出最后计算结果
回复

使用道具 举报

0

主题

180

帖子

2

积分

新手上路

Rank: 1

积分
2
发表于 2023-10-3 09:01:25 | 显示全部楼层
参考代码
  1. Clear[test, x, a, f, t]d = 4993; pell = 65; p = 1; q = 2;x[p_, q_] := (p + Sqrt[d])/q;a[p_, q_] := IntegerPart[x[p, q]];t = 1/(x[p, q] - a[p, q]);f[{_, {i_, p_, q_}}] := {{i, p, q}, {i + 1, q a[p, q] - p, (d - (q a[p, q] - p)^2)/q}}test[{_, {i_, p_, q_}}] := (x[p, q] != t && p != pell) || i == 1First@NestWhile[f, {Null, {0, p, q}}, test] // AbsoluteTiming
复制代码
回复

使用道具 举报

0

主题

202

帖子

2

积分

新手上路

Rank: 1

积分
2
发表于 2023-10-3 09:01:37 | 显示全部楼层
wayne帮帮我吧
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|hrefspace

GMT+8, 2024-11-22 09:58 , Processed in 0.059687 second(s), 21 queries .

Powered by hrefspace X3.4 Licensed

Copyright © 2022, hrefspace.

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