草庐IT

floor_divide

全部标签

ruby - 为什么 Math.sqrt(i*i).floor == i?

我想知道这是不是真的:当我对一个平方整数求平方根时,就像在f=Math.sqrt(123*123)我将得到一个非常接近123的float。由于浮点表示精度,这可能类似于122.99999999999999999999或123.000000000000000000001。因为floor(122.999999999999999999)是122,我应该得到122而不是123。所以我希望floor(sqrt(i*i))==i-1在大约50%的情况下。奇怪的是,对于我测试过的所有数字,floor(sqrt(i*i)==i。这是一个用于测试前1亿个数字的小ruby​​脚本:100_000_000.

Ruby .ceil 和 .floor

我是Ruby的新手,我正在尝试弄清楚ceil和floor是如何工作的,因为当使用小数或小数时我会得到不同的答案(相似的值(value))。以下是我尝试过的:puts8/3.ceil==2#=>trueputs8/3.floor==2#=>trueputs2.67.ceil==2#=>falseputs2.67.floor==2#=>true根据我的理解,ceil应该返回一个更高的数字,而floor应该返回一个更低的数字。希望有人能启发我。谢谢!:) 最佳答案 一切都正确返回。puts8/3.ceil==2#=>true,becaus

javascript - Math.floor(Math.random() * 5 + 1)的概念,真实范围是多少,为什么?

通过将随机数(介于0和1之间)乘以5,我们使其成为介于0和5之间的随机数(例如,3.1841)。Math.floor()将该数字向下舍入为整数,并在末尾添加1将范围从0到4更改为1到5(最多并包括5)。上面的解释让我很困惑……我的解释如下:--加上5得到5个数字的范围--但它以0开头(像数组?)--所以它在技术上是0-4--加上一个,就变成了1-5我是JS的新手,甚至不知道这种问题在这里是否合适,但这个网站到目前为止一直很棒。感谢您的帮助! 最佳答案 来自MozillaDeveloperNetworks'documentation在

javascript - Math.floor(Math.random()) +1 实际上做了什么?

当你有Math.floor(Math.random()*10)+1时,它应该根据我的理解选择1-10之间的随机数。但是,当我将+1更改为高于或低于1的任何数字时,我得到相同的结果。为什么是这样?+1到底是什么意思? 最佳答案 随机数生成器产生的值在0.0+1偏移量的数字。通常你可以使用:Math.floor(Math.random()*N)+M这将生成M和M+N-1之间的值。demoFiddle 关于javascript-Math.floor(Math.random())+1实际上做了什

javascript - 解释 Math.floor(Math.random())

我看到很多地方都在使用Math.floor()和Math.random()喜欢下面$('a.random-color').hover(function(){//mouseovervarcol='rgb('+(Math.floor(Math.random()*256))+','+(Math.floor(Math.random()*256))+','+(Math.floor(Math.random()*256))+')';$(this).animate({'color':col,'paddingLeft':'20px'},1000);},function(){//mouseout$(thi

javascript - 随机数和 floor vs round 函数

为什么如果我使用随机数生成器和范围0-9我得不到与floor函数组合时相同的均匀分布? 最佳答案 Math.floor(Math.random()*10)给出了相当均匀的分布,而Math.round(Math.random()*10)则没有.Math.floor()对范围[0,1)中的任何值返回0(不包括1),对范围[1,2)中的任何值返回1,等等。因此,如果我们有均等的机会获得这些范围之一的数字,我们将得到均等分布的0和1。但是,Math.round()对小于0.5的值返回0,对小于1.5的值返回1,等等。所以我们实际上有一半的机

javascript - 为什么当我们将 Math.floor 写入 HTML angular 时,Math.floor 什么都不返回?

这是我的HTML:floor1:{{Math.floor(value)}}floor2:{{value}}floor3:{{value|number:0}}floor1fromcontroller:{{newValue}}Controllerapp.controller('myCntrl',function($scope){$scope.value=1233.8435;$scope.newValue=Math.floor(1233.8435);});输出:floor1:floor2:1233.8435floor3:1,234floor1fromcontroller:1233通常我正在寻

特定数字范围之间的 Javascript Math.floor 问题

在以下情况下,我遇到了javascript的Math.floor函数问题:1)从8192到10484之间的值,ifItype8192.8->TheMath.floorconvertsitinto8192.79ifItype8192.88->TheMath.floorconvertsitinto8192.87ifItype8192.3->TheMath.floorconvertsitinto8192.29奇怪的是,除了上面给出的范围之外,该函数工作正常。HTML:Javascript:varViewModel=function(){var_self=this;_self.userInpu

javascript - 为什么 :Math. floor(2e+21) != ~~(2e+21)

我不是按位运算符的专家,但我经常在比赛中看到程序员使用256k演示的模式。不是使用Math.floor()函数,而是使用双按位NOT运算符~~(可能更快?)。像这样:Math.floor(2.1);//2~~2.1//2搜索发现还有更多使用相同方式的模式:2.1|0//22.1>>0//2在开发控制台中玩这个时,我注意到一个我不确定我是否完全理解的行为。Math.floor(2e+21);//2e+21~~2e+21;//-11198791682e+21|0;//-1119879168引擎盖下发生了什么? 最佳答案 正如FelixK

javascript - 为什么我可以将函数传递给提升的 R.divide?

鉴于以下情况:varaverage=R.lift(R.divide)(R.sum,R.length)这是如何作为average的无点实现的?我不明白为什么我可以传递R.sum和R.length当它们是函数时,因此,我无法映射提升的R.divide函数R.sum和R.length与以下示例不同:varsum3=R.curry(function(a,b,c){returna+b+c;});R.lift(sum3)(xs)(ys)(zs)在上述情况下,xs、ys和zs中的值在非确定性上下文中求和,在这种情况下,提升函数应用于给定计算上下文中的值。进一步阐述,我理解应用提升函数就像对每个参数连