Tag: math

arrays保持不变的概率是多less?

这个问题已经在微软采访中被问到。 非常好奇,为什么这些人会问这样奇怪的概率? 给定一个rand(N),一个产生从0到N-1的随机数的随机生成器。 int A[N]; // An array of size N for(i = 0; i < N; i++) { int m = rand(N); int n = rand(N); swap(A[m],A[n]); } 编辑:请注意种子不固定。 数组A保持不变的概率是多less? 假定数组包含唯一的元素。

为什么Math.floor返回一个double?

官方javadoc 说 ,Math.floor返回一个“等于一个math整数”的double,但是为什么它不能返回一个int?

你怎么能确定一个点是在一个线段上的另外两个点之间?

假设你有一个二维平面,其上有2个点(称为a和b),每个点用一个x整数和一个整数表示。 如何确定另一个点c是否位于由a和b定义的线段上? 我使用python最多,但任何语言的例子将是有益的。

为什么Math.Floor(Double)返回Doubletypes的值?

我需要从十进制或双精度获得左侧的整数值。 例如:我需要从4.6中获得值4。 我尝试使用Math.Floor函数,但它返回一个双精度值,例如:它从4.6返回4.0。 MSDN文档说,它返回一个整数值。 我在这里错过了什么? 或者有什么不同的方式来实现我在找什么? 谢谢。

JavaScript指数

你如何做JavaScript的指数? 比如你会怎么做12 ^ 2?

任意有理数的“猜数”游戏?

我曾经有过面试的问题: 我正在考虑一个正整数n。 提出一个可以在O(lg n)查询中猜测的algorithm。 每个查询都是您select的数字,我会回答“低”,“高”或“正确”。 这个问题可以通过一个修改的二进制search来解决,在这个search中列出两个幂,直到find一个超过n的值,然后在该范围内运行一个标准的二进制search。 我认为对此非常酷的是,你可以search一个特定的数字无限的空间比蛮力更快。 但是,我有这个问题的一个小的修改。 假设我select了一个0到1之间的任意有理数 ,而不是select一个正整数。 我的问题是:什么algorithm可以用来最有效地确定我select了哪个有理数? 现在,我所拥有的最好的解决scheme可以通过隐式地步行斯特恩 – 布罗科特树 ( Stern-Brocot tree )来find最多O(q)时间的p / q,二叉search树覆盖所有的合理性。 然而,我希望得到一个更接近运行时的运行时,我们得到的整数情况下,可能是像O(lg(p + q))或O(lg pq)。 有谁知道一种方法来获得这种types的运行时间? 我最初考虑使用区间[0,1]的标准二进制search,但是这只能find有重复二进制表示的有理数,这几乎是所有的有理数。 我也想过用一些其他的方法来列举理性,但是我似乎无法find一种比较大/相等/较less比较的方法来search这个空间。

为什么Decimal.Divide(int,int)工作,但不是(int / int)?

如何将两个32位整数作为(int / int)返回给我0 ,但如果我使用Decimal.Divide()我得到正确的答案? 我绝不是一个交stream的人。

评估一串简单的mathexpression式

挑战 这是挑战(我自己的发明,尽pipe如果以前在网上其他地方出现过,我不会感到惊讶)。 编写一个函数,该函数接受一个简单的mathexpression式的string表示forms的单个参数,并将其评估为浮点值。 “简单expression式”可以包括以下任何一项:正数或负数小数, + , – , * , / , ( , ) 。 expression式使用(正常)中缀表示法 。 运营商应该按照它们出现的顺序进行评估,也就是说, 不应该像BODMAS那样进行评估 ,当然,应该正确观察括号。 该函数应该返回此表单的任何可能expression式的正确结果。 但是,该函数不必处理格式错误的expression式(即语法错误的expression式)。 expression式的例子: 1 + 3 / -8 = -0.5 (No BODMAS) 2*3*4*5+99 = 219 4 * (9 – 4) / (2 * 6 – 2) + 8 = 10 1 + ((123 * […]

错误的math与Python?

刚开始用Python,所以这可能是我的错误,但… 我正在尝试Python。 我喜欢用它作为计算器,而且我正在通过一些教程慢慢地工作。 我今天遇到了一些奇怪的事情。 我想找出2013 * 2013年,但是我写错了东西,写了2013 * 013,得到这个: >>> 2013*013 22143 我查了我的计算器,22143是错误的答案! 2013 * 13应该是26169。 为什么Python给了我一个错误的答案? 我的旧卡西欧计算器不这样做…

将浮点数舍入到2位小数的最佳做法是什么?

我正在使用eclipse + Android SDK。 我需要将浮点值舍入为2位小数。 我通常使用math库的下一个“技巧”。 float accelerometerX = accelerometerX * 100; accelerometerX = round(accelerometerX); Log.d("Test","" + accelerometerX/100); 但我觉得这不是最好的办法。 有没有图书馆做这些types的操作? 提前致谢。