当前位置: 首页 > news >正文

西安网站开发工资网站运营公司

西安网站开发工资,网站运营公司,提供网站建设公司报价,wordpress公司模板下载poj doubles我在OSU任教已近两年了#xff0c;这总是令我惊讶#xff0c;我从学生那里学到了多少。 例如#xff0c;过去#xff0c; 我让学生写一些我不理解的奇怪代码 。 在这一点上#xff0c;即使经过300多个博客文章#xff0c; 几个YouTube视频 #xff0c;甚至还… poj doubles 我在OSU任教已近两年了这总是令我惊讶我从学生那里学到了多少。 例如过去 我让学生写一些我不理解的奇怪代码 。 在这一点上即使经过300多个博客文章 几个YouTube视频 甚至还收集了100多种语言的代码段 您都认为我已经看完了。 好吧最近我看到一个学生在双打上使用余数运算符 % 从那以后我就再也没变过。 余数与模运算符 在开始讲故事之前我想先介绍一下余数运算符和模数运算符。 在Java中 没有模运算符 。 相反 %是余数运算符。 对于正数它们在功能上是等效的。 但是一旦开始使用负数我们将看到令人惊讶的差异。 我已经在有关RSA加密的文章中谈到了这种区别。 就是说我找到了另一个很棒的来源 可以比较JavaPythonPHP和C等各种语言中的“模”运算符。 总而言之余数运算符的工作原理与我们期望的正数函数完全相同。 例如如果我们采用3 % 5 那么我们将得到3因为5根本就不等于3。 如果我们开始用负数计算结果将是相似的。 例如如果我们采用3 % -5 我们仍然会得到3 % -5 因为这就是剩下的全部。 同时如果我们翻转脚本并使股息为负毕竟余数是除法的副产品我们将开始看到负余数。 例如 -3 % 5返回-3。 同样 -3 % -5返回-3。 请注意在所有这些示例中如何在符号上有所不同的情况下获得相同的结果。 换句话说对于余数运算符我们不太关心符号。 我们只想知道一个数字变成另一个数字的次数。 然后我们偷看股息以确定征兆。 另一方面取模运算符还有很多细微差别。 对于初学者右侧的操作数确定可能的返回值范围。 如果该值为正则结果将为正。 这与我们的余数运算符有点不同。 同时左操作数确定我们在可能值范围内循环的方向。 自然当两个值具有相同的符号时这与余数运算符完美匹配。 不幸的是它们在任何其他情况下都是完全不同的 表达 Java其余 PythonMOD 3 % 5 3 3 3 % -5 3 -2 -3 % 5 -3 2 -3 % -5 -3 -3 如果您有兴趣学习有关模块化算术的更多信息另一位学生启发我写了一篇有关使用模块化算术的Rock Paper Scissors游戏的文章 。 双打余数运算符 当我们考虑余数运算符时通常会假设它仅与整数一起使用-至少直到最近这才是我的理解。 事实证明余数运算符实际上对浮点数起作用这是有道理的。 灵感 本月初我正在与一个学生一起在实验室里工作该实验室要求他们编写一个硬币兑换程序。 具体来说该程序应该接受用户的许多美分并以美国货币例如美元半美元四分之一角钱镍币和便士输出面额。 如果您正在考虑如何解决此问题我会给您一个提示您可以采用贪婪的方法。 换句话说首先选择最大的硬币然后计算将其中多少分成您当前的美分。 如果做对了您甚至不需要控制流程。 但是您可以使用数组和循环稍微清理一下代码。 由于我懒得用Java编写解决方案因此这是在Python中的样子 3 % 5 无论如何我有一个学生将美分解释为美元和美分。 换句话说他们让用户输入1.5美元而不是150美分等美元金额。 公平地说这不是什么大问题。 我们要做的就是将美元金额乘以100然后将剩余的美分相加得到一个整数。 但是那不是那个学生所做的。 取而代之的是他们将每个面额都视为双倍即实数。 然后他们继续使用剩下的运算符而没有任何后果。 简而言之我傻眼了。 毕竟那怎么可能呢 您只计算长除法的余数对吗 否则您将只剩下一个小数什么也没剩下。 使用双打 如果要使用美元和美分重写上面的程序则可能会出现以下内容 3 % 5 而且如果运行此命令我们将获得与以前完全相同的结果一美元和一半美元。 那怎么可能 事实证明使用小数来计算余数是完全有效的。 我们需要做的就是计算将除数完全除数的次数。 例如 .77 % .25会“理想地”产生.02因为这与我们不经过而达到.77的程度非常接近。 注意事项 在发现可以使用小数点后的余数之后我立即想知道为什么我不早知道它。 当然快速的Google搜索会向您显示可能出现的各种错误行为。 例如在前面的示例中我声称.02将是.77和.25的余数并且有点。 请参阅在大多数编程语言中默认浮点值具有一定的精度该精度由基础二进制体系结构决定。 换句话说有些十进制数字不能用二进制表示。 这些数字之一恰好是上述表达式的结果 3 % 5 在处理实数时我们始终会遇到此类问题。 毕竟有令人惊讶的十进制值数量无法用二进制表示。 结果我们最终遇到了舍入错误可能导致更改算法失败的情况。 为了证明这一点我重写了上面的解决方案以计算前200美分的变化 3 % 5 为了您的理智我不会转储结果但是在该算法失败的地方我将分享一些金额 $ 0.06计算镍时失败 .06 % .05 $ 0.08计算便士时失败 .03 % .01 $ 0.09计算镍价时失败 .09 % .05 $ 0.11计算点数时失败 .11 % .1 $ 0.12计算点数时失败 .12 % .1 $ 0.13与$ 0.08相同 $ 0.15计算点数时失败 .15 % .1 $ 0.16与$ 0.06相同 我们已经开始看到这些计算中令人震惊的部分成为四舍五入错误的牺牲品。 仅在最初的16美分中我们就无法在50的时间内产生准确的变化忽略0。 那不是很好 另外许多错误开始重演。 换句话说我怀疑随着更多的美分这个问题会变得更糟因为在此过程中有更多的机会舍入错误。 当然我继续并再次修改了程序以实际测量错误率 3 % 5 现在我应该以这个代码段为前缀使用比较实数这通常被认为是不好的做法。 结果有可能我们认为一些“正确”的解决方案是错误的。 就是说我认为目前这是一个足够好的估计。 当我运行它时我发现所有更改计算中的53.850699999999996不正确。 具有讽刺意味的是即使是我的错误计算也存在一个舍入问题。 您是否应该在双打中使用余数运算符 在这一点上我们不得不怀疑在Java中对double使用剩余运算符是否有意义。 毕竟如果舍入错误是一个问题谁能相信结果呢 就我个人而言我的直觉会说不惜一切代价避免这种操作。 就是说我做了一些挖掘并且有几种方法可以解决此问题。 例如我们可以尝试使用一个将浮点值表示为整数字符串的类例如Python中的Decimal类或Java中的BigDecimal类在另一个基础上执行算术。 当然这些类型的类都有其自身的性能问题并且无法摆脱以10为底的舍入错误。毕竟以10为底的值不能代表三分之一。 也就是说使用余数运算符将获得更多成功。 但是归根结底我个人还没有遇到这种情况并且我怀疑您是否也会这样做。 当然如果您在这里很可能是因为遇到了这个确切的问题。 不幸的是我没有为您提供很多解决方案。 无论如何谢谢您的光临。 如果您发现本文有趣请考虑分享。 翻译自: https://www.javacodegeeks.com/2020/02/the-remainder-operator-works-on-doubles-in-java.htmlpoj doubles
http://www.zqtcl.cn/news/574537/

相关文章:

  • 企业网站建设规划书阿里云虚拟机怎么做多个网站
  • 营销平台网站建设做视频怎么做
  • 吉林房地产网站开发icp网站授权函
  • 深圳公司网站建设哪家好郑州短视频培训机构
  • 网络培训班答案百度seo收录软件
  • 中核工建设集团有限公司网站网站建设管理中se是什么意思
  • 网站如何做关键词引流网站怎么快速做收录
  • 网站建设文案网站设计要学哪些
  • 品牌网站建设gs平台搭建工具
  • 怎么把自己做的网站弄到域名上柳州游戏网站建设
  • 做衣服类网站策划书高端建设网站企业
  • 珠海网站建设公司有哪些代替做网站推广
  • 泰安的网站建设公司旅游网站建设规划报告怎么写
  • 如何建设淘宝客网站什么是网络营销常用的网络营销方法有哪些
  • 大连华南网站建设深圳网站建设公司的外文名是
  • 做招投标网站云南昆明网站建设价格
  • 越秀区网站建设公司微网站菜单
  • vs2017网站开发广州网站建设易得
  • 长沙企业网站建设价格陕西省门户网站建设政策
  • 龙华营销型网站制作wordpress最近评论
  • 嘉兴微信网站做一个招聘信息的网站_用什么做网站的软件
  • 各种购物网站大全上海市建设工程检测网
  • 网站推广沈阳php网站开发接口开发
  • 莱芜 做网站 公司官网开发
  • tomcat做网站做自媒体查找素材的网站
  • 信阳建设企业网站公司软件开发平台公司
  • 营销型网站建设营销型设计家官网视频
  • 部门网站建设目的加猛挣钱免费做网站软件
  • 洛阳制作网站哪家好wordpress是英文
  • dw里面怎么做网站轮播图网站建设分为多少模块