나는 C로 정적 배열 수의 직교 곱을 얻을 수있다. 그러나 코드를 동적으로 입력 배열 수를 취하고 싶다. 이것을 할 수있는 방법이있다. "배열 만 사용하십시오."배열을 사용할 수 없다면 다른 솔루션을 제안하십시오. 감사합니다. 내 배열은 3 배열의 데카르트 곱에 대한 아래 코드입니다. #include<stdio.h>
int main(void)
{
항목이있는 입력 목록이 있습니다. 이제 원본 inputLists에있는 항목의 모든 조합을 포함하는 resultLists (길이 n)를 계산하려고합니다 (각 inputList의 한 항목 가져옴). 나는 내가 여기 예를 제공해야한다고 생각 (N = 3) : inputList1: [item1, item2, item3]
inputList2: [item4]
in
문자열을 예로 들어 List 목록을 제공한다고 가정 해 봅시다. list 1: "a", "b", "c"
list 2: "d", "e", "f"
list 3: "1", "2", "3"
results: (a, d, 1), (a, d, 2), ... (c, f, 3)
내가 할 수있는 재귀 적 방법을 썼다 , (실제 사용 사례, 이것은 단지 모의
이의 나는 다음과 같은 데이터가 있다고 가정 해 보자는 : Product
IdPk | Name
-------------
guid1 | Printer
guid2 | Oil
guid3 | Etc.
guid4 | Etc..
ProductPart
PartIdPk| ItemId | PartName
-------------------------
g
다음과 같이 데카르트 제품을 사용하여 2 개의 테이블을 결합합니다. select p.type, i.amount
FROM products p, invoice i
where (p.account = i.id); -- column headers cant be changed despite having same info
물론이 두 열에는 각각의 값이 표시됩니다
나는 일부 테이블이 있습니다 나를 비난하지 마십시오
Employee: id, name, id_suc, id dep, id_sec
Suc : id_suc, name
Dep : id_dep, id_suc, name
Sec : id_sec, id_dep, id_suc, name
을, 이것은 내가 데이터베이스를 작성하지 않았고 있기 때문에 구조를
나는 느슨하게이 solution을 기반으로하는 n 차원 카티 전 곱 클래스 집합에서 작업하고 있습니다. 동일한 기본 알고리즘 세트에 대해 여러 가지 데이터 유형이 있으며 "아하! 템플릿을 사용하여 전반적인 작업을 줄입니다!"라고 생각했습니다. 그리고, 지금까지, 그것은 굉장히 일하고있었습니다. Boost의 iterator_facade를 사용하고 있습니다.
내가 아주 알고리즘의 이러한 유형 (즉,이 구글하는 방법), 난 그냥 내가 무엇을 찾고 설명하겠다의 언어를 모르는 이후 : 나는 (소스 배열이 동일하지 않은 길이입니다) 세 배열을 가지고 : 각 소스 배열에서 더 이상 이상의 요소가 촬영 : 이 $array1 = array('A', 'B', 'C', 'D');
$array2 = array('x', 'y',
저는 방금 Factor으로 시작합니다. 나는 cartesian-product 단어를 사용하는 경우 { { 1 8 } { 1 9 } { 2 8 } { 2 9 } { 3 8 } { 3 9 } }
, 나는 일련의 순서를 얻을 : { 1 2 3 }
{ 8 9 }
내가보고 싶은 것은 시퀀스의 순서는 다음과 같습니다 나는 두 시퀀스의 직교 제품을 계산하려면
한 행의 표를 만들지 만 동일한 행이없는 데카르트 곱을 수행해야합니다. 지금 가지고 있습니다 : select *
From T_Car C1
Join T_Car C2 On C1.CarID <> C2.CarID
그러나 1300 개의 행이있는 T_Car 테이블의 경우 거의 2 분이 걸립니다. OPTION (HASH JOIN) 및 OPTION (MERGE J