Tag: 笛卡尔积

Haskell中的2个列表的笛卡尔积

我希望在Haskell中生成2个列表的笛卡尔积,但是我不知道如何去做。 笛卡尔产品给出了列表元素的所有组合: xs = [1,2,3] ys = [4,5,6] cartProd :: [a] -> [b] -> [(a,b)] cartProd xs ys ==> [(1,4),(1,5),(1,6),(2,4),(2,5),(2,6),(3,4),(3,5),(3,6)] 这不是一个真正的家庭作业问题,并不涉及任何这样的问题,但解决这个问题的方式可能有助于一个我坚持。

有没有一个很好的LINQ方法来做笛卡尔产品?

我有一个像这样的类结构: Person Dogs (dog 1, dog 2, etc) Puppies (puppy A, puppy B, etc) 有一个人 他有1..n条狗。 每只狗有1..n只小狗。 我想要一个所有可能的小狗组合的列表,每只狗取一只小狗。 例如: 狗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' 有没有一些linq-ish的方式来做这种事情? 非常感谢

如何在NHibernate中加载关联而不重复?

我需要加载一个非常大的对象列表,有很多孩子和孩子的孩子。 最好的方法是什么? 我正在使用Oracle 11g数据库,并且已经编写了下面的方法,但是却导致了笛卡尔积(重复结果): public IList<ARNomination> GetByEventId(long eventId) { var session = this._sessionFactory.Session; var nominationQuery = session.Query<ARNomination>().Where(n => n.Event.Id == eventId); using (var trans = session.Transaction) { trans.Begin(); // this will load the Contacts in one statement nominationQuery .FetchMany(n => n.Contacts) .ToFuture(); // this will load the CustomAttributes in one statement nominationQuery .FetchMany(n => n.CustomAttributes) […]

生成所有可能的组合

给定2个数组Array1 = {a,b,c…n}和Array2 = {10,20,15….x}如何生成所有可能的组合作为stringa(i)b(j)c k)n(p)其中 1 <= i <= 10, 1 <= j <= 20 , 1 <= k <= 15, …. 1 <= p <= x 如: a1 b1 c1 …. n1 a1 b1 c1….. n2 …… …… a10 b20 c15 nx (last combination) 所以在所有组合的总数中= array2 = (10 X 20 X 15 X […]