热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

整数除法仅使用加法,乘法,减法和最大值

如何解决《整数除法仅使用加法,乘法,减法和最大值》经验,为你挑选了1个好方法。

假设我们有一种编程语言ℤ,它具有以下语法:

? := 0 | 1 | (+ ? ?) | (* ? ?) | (- ? ?) | (max ? ?)

为方便起见,我们可以使用以下语言定义新的绑定表单:

    (not x) = (- 1 x)

    (abs x) = (- (max 0 (+ x x)) x)

    (min x y) = (- 0 (max (- 0 x) (- 0 y)))

    (nil x) = (not (min 1 (abs x)))

这种语言足以表达分支和比较运算符:

    (if x y z) = (+ (* x y) (* (not x) z))

    (eq x y) = (nil (- x y))

    (ne x y) = (not (eq x y))

    (le x y) = (nil (max 0 (- x y)))

    (gt x y) = (not (le x y))

    (ge x y) = (le y x)

    (lt x y) = (not (ge x y))

现在,问题是我们是否可以定义整数除法是这种语言:

    (div x y) = ?

    (rem x y) = (- x (* y (div x y)))

我不认为可以定义(div x y)因为ℤ没有循环.但是,我不知道如何证明这一点.请注意,如果可能,那么结果(div x 0)无关紧要.因此,要么定义(div x y)要么证明不可能这样做.



1> David Eisens..:

不可能.

如果存在具有整数系数和阈值的多项式,则调用函数f : Z -> Z 最终多项式,使得对于每个我们具有.让我们分两次.最终不是多项式,因为差分序列具有无穷多个零(对于所有),而每个非常数多项式的差分序列具有有限多个.足以证明所有可实现的函数最终都是多项式的.ptx > tf(x) = p(x)d(x) = [x/2]ddf(2y) = y = f(2y+1)y

证据通过结构归纳进行.0并且1是多项式的.直接表明最终多项式函数的和,乘积和差异最终是多项式:使用两个阈值的最大值以及在这些操作下闭合多项式集合的事实.剩下的就是封闭了max.

f最终通过多项式进行多项式p,并g最终通过多项式进行多项式q.如果p = q,则显然x |-> max(f(x), g(x))最终通过相同的多项式进行多项式.否则,观察它p - q有多少真正的根源.将阈值设置为根的上限,我们观察到max函数最终是多项式的,p或者q因为max的另一种情况在此处不会触发.


推荐阅读
  • [译]技术公司十年经验的职场生涯回顾
    本文是一位在技术公司工作十年的职场人士对自己职业生涯的总结回顾。她的职业规划与众不同,令人深思又有趣。其中涉及到的内容有机器学习、创新创业以及引用了女性主义者在TED演讲中的部分讲义。文章表达了对职业生涯的愿望和希望,认为人类有能力不断改善自己。 ... [详细]
  • 本文介绍了数据库的存储结构及其重要性,强调了关系数据库范例中将逻辑存储与物理存储分开的必要性。通过逻辑结构和物理结构的分离,可以实现对物理存储的重新组织和数据库的迁移,而应用程序不会察觉到任何更改。文章还展示了Oracle数据库的逻辑结构和物理结构,并介绍了表空间的概念和作用。 ... [详细]
  • Oracle分析函数first_value()和last_value()的用法及原理
    本文介绍了Oracle分析函数first_value()和last_value()的用法和原理,以及在查询销售记录日期和部门中的应用。通过示例和解释,详细说明了first_value()和last_value()的功能和不同之处。同时,对于last_value()的结果出现不一样的情况进行了解释,并提供了理解last_value()默认统计范围的方法。该文对于使用Oracle分析函数的开发人员和数据库管理员具有参考价值。 ... [详细]
  • 解决Cydia数据库错误:could not open file /var/lib/dpkg/status 的方法
    本文介绍了解决iOS系统中Cydia数据库错误的方法。通过使用苹果电脑上的Impactor工具和NewTerm软件,以及ifunbox工具和终端命令,可以解决该问题。具体步骤包括下载所需工具、连接手机到电脑、安装NewTerm、下载ifunbox并注册Dropbox账号、下载并解压lib.zip文件、将lib文件夹拖入Books文件夹中,并将lib文件夹拷贝到/var/目录下。以上方法适用于已经越狱且出现Cydia数据库错误的iPhone手机。 ... [详细]
  • ProblemDescriptionXiaoAlivesinavillage.Lastyearfloodrainedthevillage ... [详细]
  • Imtryingtomakeawebsiteinwhichauserinputsdetailsononescreen,andtheyarepostedonto ... [详细]
  • 编程题目是:定义一个整数计算类Integer,实现短整数+,-,*,基本算术运算。要求可以进行数据范围检查(-32768~32767,或自行设定),且在数据溢出时显示错误信息并中断程序执行。 ... [详细]
  • 本文介绍了在Python3中如何使用选择文件对话框的格式打开和保存图片的方法。通过使用tkinter库中的filedialog模块的asksaveasfilename和askopenfilename函数,可以方便地选择要打开或保存的图片文件,并进行相关操作。具体的代码示例和操作步骤也被提供。 ... [详细]
  • 本文讨论了在Windows 8上安装gvim中插件时出现的错误加载问题。作者将EasyMotion插件放在了正确的位置,但加载时却出现了错误。作者提供了下载链接和之前放置插件的位置,并列出了出现的错误信息。 ... [详细]
  • CSS3选择器的使用方法详解,提高Web开发效率和精准度
    本文详细介绍了CSS3新增的选择器方法,包括属性选择器的使用。通过CSS3选择器,可以提高Web开发的效率和精准度,使得查找元素更加方便和快捷。同时,本文还对属性选择器的各种用法进行了详细解释,并给出了相应的代码示例。通过学习本文,读者可以更好地掌握CSS3选择器的使用方法,提升自己的Web开发能力。 ... [详细]
  • 给定一个二维平面上的一些点,通过计算曼哈顿距离,求连接所有点的最小总费用。只有任意两点之间有且仅有一条简单路径时,才认为所有点都已连接。给出了几个示例并给出了对应的输出。 ... [详细]
  • 本文介绍了基于c语言的mcs51单片机定时器计数器的应用教程,包括定时器的设置和计数方法,以及中断函数的使用。同时介绍了定时器应用的举例,包括定时器中断函数的编写和频率值的计算方法。主函数中设置了T0模式和T1计数的初值,并开启了T0和T1的中断,最后启动了CPU中断。 ... [详细]
  • 本文主要解析了Open judge C16H问题中涉及到的Magical Balls的快速幂和逆元算法,并给出了问题的解析和解决方法。详细介绍了问题的背景和规则,并给出了相应的算法解析和实现步骤。通过本文的解析,读者可以更好地理解和解决Open judge C16H问题中的Magical Balls部分。 ... [详细]
  • 本文讨论了使用差分约束系统求解House Man跳跃问题的思路与方法。给定一组不同高度,要求从最低点跳跃到最高点,每次跳跃的距离不超过D,并且不能改变给定的顺序。通过建立差分约束系统,将问题转化为图的建立和查询距离的问题。文章详细介绍了建立约束条件的方法,并使用SPFA算法判环并输出结果。同时还讨论了建边方向和跳跃顺序的关系。 ... [详细]
  • 如何用UE4制作2D游戏文档——计算篇
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了如何用UE4制作2D游戏文档——计算篇相关的知识,希望对你有一定的参考价值。 ... [详细]
author-avatar
归向大海_651
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有