相关疑难解决方法(0)

JavaScript中多个数组的笛卡尔积

您将如何在JavaScript中实现多个数组的笛卡尔积?

举个例子,

cartesian([1, 2], [10, 20], [100, 200, 300]) 
Run Code Online (Sandbox Code Playgroud)

javascript algorithm functional-programming

92
推荐指数
14
解决办法
3万
查看次数

有没有一个很好的LINQ方式来做笛卡尔积?

我有这样的类结构:

Person
Dogs (dog 1, dog 2, etc)
Puppies (puppy A, puppy B, etc)
Run Code Online (Sandbox Code Playgroud)

有一个人.他有1只狗.每只狗有1只小狗.

我想列出所有可能的小狗组合,从每只狗中取一只小狗.例如:

狗1小狗A,狗2小狗狗1小狗A,狗2小狗B狗1小狗B,狗2小狗狗1小狗B,小狗2小狗B

如果它是在sql表中,我会做类似以下的事情来"乘以"表:

select * from puppies a, puppies b where a.parent='dog1' and b.parent='dog2'
Run Code Online (Sandbox Code Playgroud)

是否有一些linq-ish方式来做这种事情???

非常感谢

c# sql linq asp.net cartesian-product

56
推荐指数
3
解决办法
2万
查看次数

布置笛卡尔点的算法

我有几个形式的笛卡尔点:(x,y)
其中x和y都是非负整数.

例如
(0,0),(1,1),(0,1)

我需要一种算法来安排上述点
,以便从一个点到另一个点将
x或y改变1.

换句话说,我想避免
对角线移动.

因此,上述点将被安排为:
(0,0),(0,1),(1,1).

类似地,对于(0,0),(1,1),(0,2)
,不存在这样的布置.

我不知道该怎么称呼,
但我称之为曼哈顿订购.

有人可以帮忙吗?

algorithm points cartesian

19
推荐指数
1
解决办法
638
查看次数

Linq从两个列表返回所有元素对?

给定列表l1 = {1, 2},l2 = {4, 5, 6 }我想获得一个包含元素的新列表:

rez = { {1, 4}, {1, 5}, {1, 6}, {2, 4}, {2, 5}, {2, 6} }
Run Code Online (Sandbox Code Playgroud)

建议?

.net c# linq

16
推荐指数
1
解决办法
6313
查看次数

多序列的懒惰笛卡尔积(序列序列)

你能建议更简单,更清晰的方式来编写这个函数吗?

let cartesian_product sequences = 
    let step acc sequence = seq { 
        for x in acc do 
        for y in sequence do 
        yield Seq.append x [y] }
    Seq.fold step (Seq.singleton Seq.empty) sequences 
Run Code Online (Sandbox Code Playgroud)

f# sequences

8
推荐指数
1
解决办法
532
查看次数

如何从迭代方法转向递归方法

我有一个迭代的C#循环,它填充了最多5列的棋盘格式.

这些值是成对的,它始终是每个列的标题和多个值,并且它将值组合为非重复组合.

从我能想象到的最简单的解决方案开始,在看了之后,我认为必须通过递归方式更好地解决这个问题.

下面是我到目前为止尝试过的一个例子:

 List<EtOfferVariant> variants = new List<EtOfferVariant>();

 _containers[0].Variant.ForEach(first =>
 {
     if (_containers.Count > 1)
     {
         _containers[1].Variant.ForEach(second =>
         {
             if (_containers.Count > 2)
             {
                 _containers[2].Variant.ForEach(third =>
                     {
                         EtOfferVariant va = new EtOfferVariant();
                         va.OfferVariant1Type = _containers[0].VariantKey;
                         va.OfferVariant1 = first;
                         va.OfferVariant2Type = _containers[1].VariantKey;
                         va.OfferVariant2 = second;
                         va.OfferVariant3Type = third;
                         va.OfferVariant3 = _containers[3].VariantKey;
                         variants.Add(va);
                     });
             }
             else
             {
                 EtOfferVariant va = new EtOfferVariant();
                 va.OfferVariant1Type = _containers[0].VariantKey;
                 va.OfferVariant1 = first;
                 va.OfferVariant2Type = second;
                 va.OfferVariant2 = _containers[1].VariantKey;
                 variants.Add(va);
             }
         });
     }
     else
     {
         EtOfferVariant …
Run Code Online (Sandbox Code Playgroud)

c# iteration recursion combinatorics

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

笛卡尔积+ N x M动态阵列

我已经看了几个小时的解决方案,没有任何成功.希望有人可以帮助我.

我有M个原始邮政编码的动态N个项目数组.

例如:

项目1:11001,54010,60621项目2:11001,60621项目3:60621

我想创建一个如下所示的新数组:

路线1:11001,11001,60621路线2:11001,60621,60621路线3:54010,11001,60621

等 - 直到6号公路.

建议?

----------------------有没有办法在不使用Linq的情况下完成此任务?VB.net和Linq不一起:)

c# arrays cartesian-product

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

使用LINQ迭代组合

可能重复:
生成所有可能的组合
是否有一个很好的LINQ方式来做笛卡尔积?
如何在没有显式嵌套循环的情况下生成N个元素的组合,每个元素的供应量为2

我有一个列表列表,我想迭代所有可能的组合,我从每个内部列表中选择一个元素.如果我在编译时知道有多少列表,这是非常简单的,但是如果我事先知道会有多少列表,我怎么能这样做呢?

如果我有三个列表(如果我知道,在编译时,将会有三个列表),并且我想要从三个列表中的每个列表中选择一个元素的所有组合,我可以轻松地使用LINQ查询:

var list1 = new[] { 1, 2 };
var list2 = new[] { 3, 4 };
var list3 = new[] { 5, 6 };
var combinations = from item1 in list1
                   from item2 in list2
                   from item3 in list3
                   select new[] { item1, item2, item3 };
// Results:
// {1, 3, 5}
// {1, 3, 6}
// {1, 4, 5}
// {1, 4, 6}
// {2, 3, 5}
// {2, 3, 6} …
Run Code Online (Sandbox Code Playgroud)

linq combinations

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

LINQ声明中的N-Enumerables?

可能重复:
生成所有可能的组合

我不确定如何说出这个问题; 但我正在研究一个愚蠢的逻辑谜题,我能够使用LINQ语句解决.相关代码如下所示:

(from myA in Enumerable.Range(1, 40)
 from myB in Enumerable.Range(1, 40)
 from myC in Enumerable.Range(1, 40)
 from myD in Enumerable.Range(1, 40)
 where myA + myB + myC + myD == 40
    && myA <= myB
    && myB <= myC
    && myC <= myD
 select new[] {myA, myB, myC, myD})
Run Code Online (Sandbox Code Playgroud)

所以它基本上生成满足Where子句中标准的A,B,CD的所有组合.

我现在要做的就是概括这一点,所以我可以用N值而不是四个来做同样的事情.例如,使用3个值 - 等效代码将是:

(from myA in Enumerable.Range(1, 40)
 from myB in Enumerable.Range(1, 40)
 from myC in Enumerable.Range(1, 40)
 where myA + myB + myC == 40
    && …
Run Code Online (Sandbox Code Playgroud)

c# linq combinations

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

Sql Server Service Broker - 外部激活的控制台应用程序的全面,正在使用的示例

我需要部署使用Sql Server Service Broker外部激活机制(通过Feature Pack中的Service Broker外部激活器)的现实生产应用程序的任何人的一些指导.

目前的心态:

我的规格相当简单(或者至少我是这么认为的),所以我想到了以下基本流程:

  1. 类似订单的实体被插入到状态为"已确认" 的Table_Orders中

  2. SP_BeginOrder被执行并执行以下操作:

    • 开始交易
    • Service_HandleOrderState启动DIALOG 到Service_PreprocessOrder
    • 将对话句柄(从现在开始在PreprocessingHandle中)存储在Orders表 的特定列中
    • 使用PreprocessingHandle发送包含订单ID的Message_PreprocessOrder类型的MESSAGE
    • 结束TRANSACTION

    请注意,我不是在结束谈话,我不想要"永远不要忘记"

  3. Queue_PreprocessOrder上的事件通知激活PreprocessOrder.exe实例(最大并发1),执行以下操作:

    • 开始一个SqlTransaction
    • Queue_PreprocessOrder接收前1个MESSAGE
    • 如果消息类型是Message_PreprocessOrder(格式XML):
      • 使用消息正文中的订单ID 将订单状态设置为Table_Orders中的"预处理"
      • 加载n个数据集合,用于计算n-ary Carthesian产品(通过Linq,AFAIK,这在T-SQL中是不可能的)来确定订单项集合
      • 将订单商品行插入Table_OrderItems
      • 使用PreprocessingHandle发送包含相同订单ID的Message_PreprocessingDone类型的MESSAGE
      • 结束与PreprocessingHandle有关的对话
    • 提交SqlTransaction
    • 退出环境.退出(0)
  4. Queue_HandleOrderState上的内部激活执行SP(最大并发1):
    • 开始交易
    • Queue_InitiatePreprocessOrder接收前1个MESSAGE
    • 如果消息类型是Message_PreprocessingDone:
      • 使用消息正文中的订单ID 将订单状态设置为Table_Orders中的"processing"
      • 从 …

sql-server activation sample service-broker

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