标签: implementation

如何有效地实现二元决策图(BDD)?

关于二元决策图的背景可以在维基百科上找到BDD.

最简单的方法是构建BDT(二进制决策树),然后根据两个规则减少它:
- 合并任何同构子图.
- 消除两个孩子同构的任何节点.
但是与BDD相比,BDT存在一个主要问题.有没有办法在不首先构建BDT的情况下构建BDD?

algorithm implementation boolean-logic data-structures binary-decision-diagram

5
推荐指数
1
解决办法
6317
查看次数

floor()/ int()函数实现

有没有人有一个想法如何在方法/功能Int()floor()实施?我正在寻找各自的实现,因为以下是abs()功能.

Int Abs (float x){
  if x > 0 
      return x;
   else
      return -x
}
Run Code Online (Sandbox Code Playgroud)

我正在努力为它找到一个解决方案而不使用模数运算符.

implementation function

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

如何避免在实现中重复类名和模板调用?

我发现下面的代码非常难以阅读,我写了它!有没有

  1. 避免为每个实现的成员函数调用模板
  2. 避免ClassName::member_function_name为每个实现的成员函数?我在这方面找到了Java DRYer.你不要到处重复类名.

谢谢!

template <class KeyType, class ObjectType>
class Vertex
{
private:
    KeyType key;
    const ObjectType* object;
public:
    Vertex(const KeyType& key, const ObjectType& object);
    const KeyType getKey();
};

template <class KeyType, class ObjectType> 
class Graph
{
private:
    map<KeyType, Vertex<KeyType, ObjectType> > vertexes;
public:
    const Vertex<KeyType, ObjectType>& createVertex(const KeyType& key, const ObjectType& object);
};

template <class KeyType, class ObjectType>
Vertex<KeyType, ObjectType>::Vertex(const KeyType& objectKey, const ObjectType& newObject)
{
    key = objectKey;
    object = &newObject;
};

template <class KeyType, …
Run Code Online (Sandbox Code Playgroud)

c++ implementation templates

5
推荐指数
1
解决办法
985
查看次数

Java算法是用C还是用java实现的?

我知道python的排序实现(timsort)是用C实现的,以获得更好的性能.这也是java实现的情况,还是在java中实现的所有java算法?

java algorithm performance implementation

5
推荐指数
2
解决办法
661
查看次数

使用线性规划(LP)的广义负载平衡(GLB)

在我的一个项目中 - 我有一个场景,我需要实现一个能够进行负载平衡的算法.现在,与CS理论中存在的一般负载平衡问题(NP难度)不同 - 其中任务是在N个服务器(M >> N)中分配M个负载,使得任何一个服务器中的最大负载最小化,我正在处理的案例更为通用.在我的情况下,负载平衡问题在某种意义上更通用 - 它在形式上有更多的约束 - 这样的工作只能分配给这样一个这样的服务器(比方说工作M_ {i}有一些特殊的安全要求因此只能在安全服务器N_ {j}上分配/执行.

现在我查看了Kleinberg/Tardos的书,我发现了一个关于更通用的负载平衡问题(带有约束的负载平衡)的部分(11.7),我发现这个问题与我所处的情况完全匹配.通用负载平衡问题已经从IP转换为LP,利用LP可以导致将作业分数分配给机器的事实,这些机器随后被舍入为过程添加额外的O(MN)时间.然后,该近似解决方案显示在可能的最小值的2倍之内.

有人能指出我已经实现了这个算法的一些C/Java/Python/MATLAB代码吗?由于KL书几乎没有提供任何示例或样本伪/实际代码,因此有时难以完全内化算法.对于问题的线性规划部分 - 什么样的实现适合它 - Simplex/Interior Point?当这个LP部分的复杂性被添加到问题中时(对于分数重新赋值部分),它会产生多大的差异?不幸的是,KL书籍在这些方面并不十分彻底.

一些示例C/Java/Python/MATLAB代码(或指向代码的指针)显示了这个完整算法的一些实际实现将非常有帮助.

编辑:原始论文是"David B. Shmoys,ÉvaTardos:广义指派问题的近似算法.数学计划.62:461-474(1993)"

java algorithm implementation load-balancing

5
推荐指数
1
解决办法
1291
查看次数

投票/排名排名对方法

目前我尝试了解Ranked Pairs方法.从维基百科条目我不知道如何创建成对比较矩阵.这个解释帮助我理解了比较两对的一种方法 - 但是,我不确定这是否与wiki中说的完全相同.第一个问题是,对在比较是否2根据是有效的1

我设法将2中的解释改编为R代码:

在下面的(不切实际的)例子中,候选人(行)比选民(列)更多,但所有选民都给每个候选人排名(完整排名)

# some random example
random.example <- matrix(rnorm(50), ncol = 5, 
                         dimnames = list(candidates = paste("c", 1:10, sep=""), 
                                         voters = paste("v", 1:5, sep="")))
rmat <- apply(random.example, MARGIN = 2, rank, ties.method = "f")
Run Code Online (Sandbox Code Playgroud)

然后使用Ranked Pairs方法对秩矩阵进行排序

pm <- apply(rmat , MARGIN=1, function(x) {
  return(apply(rmat , MARGIN=1, function(y) {
    return(sum(x > y) - sum(x < y))
  }))
})

sorted <- apply(pm , MARGIN=1, function(x, numberOfVoters) {
  return(c(like …
Run Code Online (Sandbox Code Playgroud)

implementation r ranking voting-system

5
推荐指数
0
解决办法
680
查看次数

C++在普通C中实现

我已经多次读过早期的C++编译器在编译之前将第一个C++代码翻译成普通的C(或者可能需要第三方C编译器).

使用语法/语言/编译字段,我很想知道C++是如何在普通C中实现的,尤其是可以实现类继承和[虚拟]方法调用的一种方法.

你能指点我现在仍然可用的编译器吗?

我知道可以使用结构和函数指针在纯C中模拟/模拟OO代码,但我希望在C中看到C++语言的实际实现.

c c++ compiler-construction implementation

5
推荐指数
1
解决办法
682
查看次数

ios以任何角度向任何方向实施UISwipeGestureRecogniser

我试图在左下位置(左右之间的平均值)滑动东西.但UISwipeGesture仅识别左,右,下和上.

我想在我的整个屏幕视图上添加手势.然后,每当用户在屏幕上滑动时,我想知道滑动的起始和终止坐标.滑动可以是任何角度和任何位置.有没有办法在iOS中获得滑动的起点和终点坐标

请帮我.我被困住了.Thanx提前.

implementation direction gesture uigesturerecognizer ios

5
推荐指数
1
解决办法
814
查看次数

为什么Java String实现中存在偏移量?

我一直在看实现,我不明白为什么有偏移.我认为这很重要.

我正在参加Sedgewick教授的算法课程,现在我们正在讨论Strings.在演讲中他简要讨论了字符串的实现,但他没有说明为何有偏移(注意,如果讲座不在线,我肯定会问).

似乎当一个人在实现中创建一个String时,它会被赋予一个偏移量,而我似乎无法理解为什么需要一个.即使是子字符串的目的,我也不太理解为什么你会有一个偏移量.例如,显然如果你创建一个字符串"David",它实际上['X', 'X', 'D', 'a', 'v', 'i', 'd', 'X']或者是那种性质的东西,它被'X's 所抵消.为什么是这样?

java string implementation

5
推荐指数
1
解决办法
254
查看次数

如何更改“ compileSdkVersion”以使其与新的“实现” API兼容?

我在build.gradle(模块:应用程序)中将所有“编译”替换为“实现”,但是我不知道如何在“ compileSdkVersion”中将“编译”更改为“实现”以解决此错误消息(或查看屏幕快照)下面):

配置“编译”已过时,已被“实现”和“ api”替换。它将在2018年底删除。有关更多信息,请参见:http : //d.android.com/r/tools/update-dependency-configurations.html

屏幕截图

我需要你的帮助。谢谢!

implementation compilation android-studio

5
推荐指数
0
解决办法
591
查看次数