小编Bre*_*ett的帖子

如何迭代总和为0的一组数字的所有子集

现在,我已经没有将自己应用于函数式编程了,近20年,当我们没有比写因子和文本更进一步时,所以我真的很想吸引社区寻求解决方案.

我的问题是:

"鉴于一组交易对象,我想找到所有交易的组合,净值为零+/-一些容差."

我十岁的首发是:

let NettedOutTrades trades tolerance = ...
Run Code Online (Sandbox Code Playgroud)

让我们假设我的起点是先前构造的元组数组(交易,价值).我想要的是一个数组(或列表,无论如何)的交易数组.从而:

let result = NettedOutTrades [| (t1, -10); (t2, 6); (t3, 6); (t4; 5) |] 1
Run Code Online (Sandbox Code Playgroud)

会导致:

   [| 
     [| t1; t2; t4 |]
     [| t1; t3; t4 |]
   |]
Run Code Online (Sandbox Code Playgroud)

我认为这可以通过尾递归构造实现,使用两个累加器 - 一个用于结果,一个用于交易值的总和.但是如何把它们放在一起......?

我确信我可以使用c#删除一些程序性的东西,但它只是感觉不适合这项工作的工具 - 我相信使用功能范例会有一个优雅,简洁,高效的解决方案......我目前还没有很好地练习识别它!

math optimization f# functional-programming

9
推荐指数
2
解决办法
1167
查看次数

从c ++接收char*到c#,然后再将其传回

我有第三方c ++ dll的内存泄漏问题.对于某些调用,dll为字符串分配内存,将其作为char*传递出去,然后期望接收该指针,以便它可以取消分配内存.

以下是头文件中的一些注释,几个返回char*的示例,以及"Release"方法的签名.

(这个dll被称为SW_API,它来自一个贸易交易所 - 如果有人已经包裹了这个,我很乐意和他们交谈!).

   /* Strings returned by the API are similarly normal nul-terminated C strings.
   * The user should not attempt to change any of the bytes or read past the
   * terminating nul of any returned string. All returned strings must be
   * released using SW_ReleaseString() once the user is finished with the
   * result. Failure to do this will result in memory leaks.
   */

    /**
     * @typedef const char* SW_XML
     * @brief A string …
Run Code Online (Sandbox Code Playgroud)

c# c++ marshalling char

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

标签 统计

c# ×1

c++ ×1

char ×1

f# ×1

functional-programming ×1

marshalling ×1

math ×1

optimization ×1