数学中国

 找回密码
 注册
搜索
热搜: 活动 交友 discuz
查看: 6269|回复: 16

[分享]正整数与正有理数一一对应的 python 代码

[复制链接]
发表于 2012-12-31 03:26 | 显示全部楼层 |阅读模式
[这个贴子最后由elimqiu在 2013/01/01 04:46pm 第 1 次编辑]

为了跟陆老师的对应细节一致,对代码作了细微的改动。新代码如下:
def nr(n):
if n == 1:
return [1,1]
r = nr(n/2)
if n % 2 == 0:
return [r[0], r[0] + r[1]]
else:
return [r[0] + r[1], r[1]]
def rn(x, y = 1):
if isinstance(x,list):
if len(x) != 2:
return
r = x
if (isinstance(r[0],int) and isinstance(r[1],int)) != True:
return
if (r[0] == r[1] and r[0] > 1) or r[0] < 1 or r[1] < 1:
return
else:
r = [x,y]
if (isinstance(x,int) and isinstance(y,int)) != True:
retrun
if x < 1 or y < 1 or (x == y and x > 1):
return
if r[0] == r[1]: return 1
if r[0] < r[1]: return 2*rn(r[0],r[1] -r[0])
if r[0] > r[1]: return 1+ 2*rn(r[0] - r[1],r[1])

以下是原帖
对应法则参见陆老师的有关帖子,大概搜索了一下,没找到,请陆老师提供
代码如下:
def nr(n):
&#160; &#160; &#160; &#160;if n == 1:
&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160;return [1,1]
&#160; &#160; &#160; &#160;r = nr(n/2)
&#160; &#160; &#160; &#160;if n % 2 == 1:
&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160;return [r[0], r[0] + r[1]]
&#160; &#160; &#160; &#160;else:
&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160;return [r[0] + r[1], r[1]]
def rn(x, y = 1):
&#160; &#160; &#160; &#160;if isinstance(x,list):
&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160;if len(x) != 2:
&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160;return
&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160;r = x
&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160;if (isinstance(r[0],int) and isinstance(r[1],int)) != True:
&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160;return
&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160;if (r[0] == r[1] and r[0] > 1) or r[0] < 1 or r[1] < 1:
&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160;return
&#160; &#160; &#160; &#160;else:
&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160;r = [x,y]
&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160;if (isinstance(x,int) and isinstance(y,int)) != True:
&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160;retrun
&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160;if x < 1 or y < 1 or (x == y and x > 1):
&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160;return
&#160; &#160; &#160; &#160;if r[0] == r[1]: return 1
&#160; &#160; &#160; &#160;if r[0] < r[1]: return 1 + 2*rn(r[0],r[1] -r[0])
&#160; &#160; &#160; &#160;if r[0] > r[1]: return 2*rn(r[0] - r[1],r[1])
 楼主| 发表于 2012-12-31 03:29 | 显示全部楼层

[分享]正整数与正有理数一一对应的 python 代码

上贴中用 [p,q] 表示有理数 p/q, 其中 p, q 为互素的正整数。
发表于 2012-12-31 05:46 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
 楼主| 发表于 2012-12-31 05:52 | 显示全部楼层

[分享]正整数与正有理数一一对应的 python 代码

下面引用由风花飘飘2012/12/31 05:46am 发表的内容:
我的“本原直角三角与正整数一样多”的《大萝卜定理》,是否能搞个程序出来?
目标:输入某整数n,输出所对应“本原三角形的三边值”。
只要定理没问题,就能搞出程序来。我看看你的定理。
发表于 2012-12-31 06:51 | 显示全部楼层

[分享]正整数与正有理数一一对应的 python 代码

【朴朴素的思维】 正整数 与 负有理数 就不 一一对应 么?[br][br]-=-=-=-=- 以下内容由 尚九天 时添加 -=-=-=-=-


见笑,见笑,捂住嘴,别把门牙笑掉!
 楼主| 发表于 2012-12-31 08:59 | 显示全部楼层

[分享]正整数与正有理数一一对应的 python 代码

[这个贴子最后由elimqiu在 2013/01/01 05:26pm 第 1 次编辑]

程序运行截图。【ipython 是一个免费程序,需先装python 平台(免费)】
nr 是正整数入,正有理数出的函数, rn 是其反函数。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
 楼主| 发表于 2012-12-31 09:07 | 显示全部楼层

[分享]正整数与正有理数一一对应的 python 代码

下面引用由尚九天2012/12/31 06:51am 发表的内容:
【朴朴素的思维】 正整数 与 负有理数 就不 一一对应 么?
-=-=-=-=- 以下内容由 尚九天 在  时添加 -=-=-=-=-
见笑,见笑,捂住嘴,别把门牙笑掉!
跟正有理数离了,才能合法去对负有理数。呵呵颇有法制观念么。
还可以单数对正有理,偶数对负有理,等等等等。
可分享之处在于不仅定性地指出一一对应的存在,而且具体给出对应法则。
发表于 2012-12-31 09:35 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
发表于 2013-1-1 10:10 | 显示全部楼层

[分享]正整数与正有理数一一对应的 python 代码

[这个贴子最后由luyuanhong在 2013/01/01 10:16am 第 2 次编辑]

谢谢 elimqiu !
下面是我过去发表在《数学中国》论坛的帖子:

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
发表于 2013-1-1 10:21 | 显示全部楼层

[分享]正整数与正有理数一一对应的 python 代码

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

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

本版积分规则

Archiver|手机版|小黑屋|数学中国 ( 京ICP备05040119号 )

GMT+8, 2026-1-2 11:13 , Processed in 0.132794 second(s), 16 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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