c - 一组数字的最高模数

标签 c permutation modulo

我编写了一些代码,用于遍历给定数字的所有排列并返回具有最高模 8 的数字。

我现在想知道的是,是否有一种算法/规则集可以自动排除模数不能高于当前数字的 8 排列?

我一直在考虑,但无法弄清楚,但我确信可以采取一些措施来优化检查的排列数量。

模块化算术并不是我的强项。

如果您有任何想法,请提前致谢!

最佳答案

没有更快的方法。

如果数字不是 2 的幂,速度会很慢,但编译器知道如何处理这个问题,因为 y = x % 8;y 相同= x & 0x7;。因此它只需要两个操作即可完成这项工作:首先提取 3 个 LSbit,然后进行比较。

这里不可能进行微优化。

关于c - 一组数字的最高模数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56258266/

相关文章:

jquery 幻灯片放映 - 为什么这段代码有效?

在 C 中创建一个 sin 公式

c - 实现重定向。 Unix 外壳。

c - 在 C 中,如何在 Linux 中获得完整的时间戳(甚至在几秒钟之后)?

c - 将标准输入重定向到标准输出

c# - C# 中的置换算法

Java:生成幂集

math - 找到两个整数的最大同余模?

c++ - 置换 vector

c - for 循环和模运算符