标签: division

哈斯克尔分部

我在Haskell中创建了一个函数,它只将列表中的evens减半,我遇到了问题.当我运行编译器时,它抱怨你不能执行int的划分,并且我需要一个小数int类型声明.我已经尝试将类型声明更改为float,但这只是生成了另一个错误.我已经在下面包含了该函数的代码,并希望获得任何形式的帮助.

halfEvens :: [Int] -> [Int]
halfEvens [] = []
halfEvens (x:xs) | odd x = halfEvens xs
                 | otherwise = x/2:halfEvens xs
Run Code Online (Sandbox Code Playgroud)

谢谢你的阅读.

haskell division

27
推荐指数
1
解决办法
6万
查看次数

获取 rust 的商和余数 (DIVMOD) 的函数是什么?

x86 和可能的其他体系结构提供了一种在单个操作 ( DIV)中获取商和余数的方法。因此,许多语言都有 DIVMOD 组合操作(例如DIVREMC#DIVMODPythonC 中的divanddiv_t)。我如何在 Rust 中做到这一点?

有没有一种优化方法可以同时执行这两种操作

let res = (a / b, a % b);
Run Code Online (Sandbox Code Playgroud)

division modulo rust

27
推荐指数
1
解决办法
1万
查看次数

对于浮点数和双精度,快速乘法/除2(C/C++)

在我正在编写的软件中,我正在进行数百万乘法或除以2(或2的幂)的值.我真的希望这些值int能够访问bitshift运算符

int a = 1;
int b = a<<24
Run Code Online (Sandbox Code Playgroud)

但是,我不能,而且我必须坚持双打.

我的问题是:由于存在双精度(符号,指数,尾数)的标准表示,是否有一种方法可以与指数一起使用以2的幂来获得快速乘法/除法

我甚至可以假设位数将被修复(该软件将在总是具有64位长的双倍的机器上工作)

PS:是的,该算法主要只执行这些操作.这是瓶颈(它已经是多线程的).

编辑:或者我完全错了,聪明的编译器已经为我优化了一些东西?


临时结果(用Qt测量时间,矫枉过正,但我​​不在乎):

#include <QtCore/QCoreApplication>
#include <QtCore/QElapsedTimer>
#include <QtCore/QDebug>

#include <iostream>
#include <math.h>

using namespace std;

int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);

while(true)
{
    QElapsedTimer timer;
    timer.start();

    int n=100000000;
    volatile double d=12.4;
    volatile double D;
    for(unsigned int i=0; i<n; ++i)
    {
        //D = d*32;      // 200 ms
        //D = d*(1<<5);  // 200 ms
        D = ldexp (d,5); // 6000 ms
    } …
Run Code Online (Sandbox Code Playgroud)

c c++ optimization multiplication division

25
推荐指数
4
解决办法
2万
查看次数

如何检查数字是否可以被某个数字整除?

我正在使用AndEngine向屏幕添加精灵,并使用movemodifier方法.

我有两个整数MaxDuration和MinDuration;

我想要做的是当用户获得某个增量的分数时.

例如..当用户达到40(整数变化)时用户达到20(整数变化).所以基本上按20计算,每次得分满足一个可被20整数变化整数的数字.我希望这是有道理的.

有没有什么方法或方法可以做到这一点?我有一个UpdateTime处理程序,几乎每秒都可以检查得分.

有任何想法吗?

java division

25
推荐指数
2
解决办法
12万
查看次数

Python:删除除法小数

我已经制作了一个程序来划分数字,然后返回数字,但问题是,当它返回数字时,它有一个像这样的小数:

2.0
Run Code Online (Sandbox Code Playgroud)

但我希望它能给我:

2
Run Code Online (Sandbox Code Playgroud)

所以我还能这样做吗?

提前致谢!

python decimal division

25
推荐指数
2
解决办法
10万
查看次数

divmod()比使用%和//运算符更快吗?

我从汇编中记得整数除法指令同时产生商和余数.因此,在python中,内置的divmod()函数比使用%和//运算符更好地表现性能(假设当然需要商和余数)?

q, r = divmod(n, d)
q, r = (n // d, n % d)
Run Code Online (Sandbox Code Playgroud)

python performance division modulus divmod

25
推荐指数
2
解决办法
7942
查看次数

有效地将无符号值除以2的幂,四舍五入

我想实现的无符号整数除法通过两个任意功率,围捕,高效.所以我想要的,数学上是ceiling(p/q)0.在C中,不利用受限域的strawman实现q可能类似于以下函数1:

/** q must be a power of 2, although this version works for any q */
uint64_t divide(uint64_t p, uint64_t q) {
  uint64_t res = p / q;
  return p % q == 0 ? res : res + 1;
} 
Run Code Online (Sandbox Code Playgroud)

...当然,我实际上并不想在机器级别使用除法或mod,因为即使在现代硬件上也需要很多周期.我正在寻找使用轮班和/或其他一些廉价操作的力量减少 - 利用q2的力量这一事实.

You can assume we have an efficient lg(unsigned int x) function, which returns the base-2 log of x …

c optimization x86 bit-manipulation division

25
推荐指数
7
解决办法
1033
查看次数

INT_MIN%-1是否会产生未定义的行为?

gcc SIGFPE为以下代码生成浮动代码:

#include <limits.h>
int x = -1;
int main()
{
    return INT_MIN % x;
}
Run Code Online (Sandbox Code Playgroud)

但是,我在标准中找不到此代码调用未定义或实现定义的行为的语句.据我所知,它需要返回0.这是gcc中的错误还是我错过了标准的一些特殊例外?

c gcc overflow division modulo

24
推荐指数
3
解决办法
1499
查看次数

在Haskell中除以零

我发现div和之间存在一种非常奇怪的不一致/.

*ghci> :t 1 `div` 0
1 `div` 0 :: Integral a => a
*ghci> :t 1 / 0
1 / 0 :: Fractional a => a
*ghci> 1 / 0
Infinity
*ghci> 1 `div` 0
*** Exception: divide by zero
Run Code Online (Sandbox Code Playgroud)

我很惊讶地注意到零除以零导致Infinity,而div正确导致异常.A NaN也可以接受/,但为什么Infinity呢?这样的结果没有数学上的理由.你知道原因吗?

math haskell division divide-by-zero

24
推荐指数
3
解决办法
5372
查看次数

在Python中用我的类的实例划分数字

我有一个叫做的类Time,我需要实现一个Frequency类.如何通过实例来实现划分ints或floats Time来获取实例Frequency

我已经知道__div__,__truediv__,__floordiv__和其他的Python特殊方法,我已经使用他们在我的代码用数字或其他类的实例来划分的类的实例,但我不能找到一种方法,通过我的类的实例来划分的数字.

是否可以通过Python中的类实例来划分数字?

python math division

24
推荐指数
2
解决办法
2780
查看次数