c++ - 在 C++ 中快速计算最小项的总和?
问题描述
假设我们有一个字节代表一个最小项 sum,其中每个位代表 A、B、C 的一个特定最小项。例如,ms=0x12 应该代表
F(a, b, c) = (A & (~B) & (~C)) | ((~A) & B & (~C))
在这里你可以看到两项的总和
bit 2 is (~A) & B & (~C)
bit 4 is A & (~B) & (~C)
但是,当我们对某些项求和时,最终的方程可能会被简化,例如,0xF0 表示 4 项的和
F(a, b, c) = (A & B & C) | (A & B & (~C)) | (A & (~B) & C) | (A & (~B) & (~C))
然后完美地简化为F(a, b, c) = A
我正在寻找的是一种 C++ 方法,它可以快速计算MintermSum(A, B, C, minterm)
A、B、C 是字节值的位置,并且minterm
是一个表示为字节的最小术语集。
在内部这个函数可能看起来像
int MintermSum(int a, int b, int c, byte minterm)
{
switch(minterm) {
case 0:
return 0;
case 1:
return (~a) & (~b) & (~c);
case 2:
return (~a) & (~b) & c;
//.....
case 0x12:
return (a & (~b) & (~c)) | ((~a) & b & (~c));
//..... lots of case's
case 0xf0:
return a; // Simplified calculation
//....
case 0xff:
return 1;
}
}
我希望有人已经写过这个函数,但我找不到。请你帮忙好吗?
解决方案
谢谢朋友们,根据您的建议和链接,我自己实现了 minterm sum 函数,希望对其他人有用。
推荐阅读
- python-3.x - 设置硬 Val acc 限制在 Keras 中保存哪些模型?
- keras - 平均平均精度 (mAP) 度量 keras
- javascript - 进行异步调用以从量角器内的 REST 端点获取测试数据的正确方法?
- java - 访问 Thingworx Persistence Provider 的 JDBC URL
- flutter - Flutter:为什么 Image.network 无法加载图像
- sparql - 可以使用 SPARQL 从本体中查询以下内容吗?
- r - 带条件的动态 Cumsum
- laravel - 有没有办法使用实时事件处理,比如本地网络的推送器?
- angular - Is it possible to toggle( show/hide ) column menu in Ag Grid
- go - 如何解决“使用 go-build-race 工具检查竞争条件的一个问题”?