Rekurencja

0

Witam nie mam pomysłu jak obliczyć iloczyn kartezjański(normalnie to nie ma problemu) ale rekurencyjnie.Podsunęlibyście jakąś wskazówkę??Przyjmijmy ze funkcja obliczająca przyjmuje argumentu zbior1 i zbior2

0

Przykład jak to zrobić w języku gdzie rekurencja jest bardziej naturalna:

let rec pair = fun e z -> match z with
    | [] -> []
    | h::t -> (e,h)::pair e t;;

let rec iloczyn = fun z1 z2 -> match z1 with
    | [] -> []
    | h::t -> (pair h z2) @ (iloczyn t z2);;

Pierwsza funkcja przerabia parę
element, zbiór na listę krotek [(element,pierwszy_element_zbioru);(element,drugi_element_zbioru);...]
Druga funkcja korzystając z funkcji pierwszej generuje iloczyn kartezjański dwóch zbiorów. (dla każdego elementu zbioru pierwszego generuje listę krotek za pomocą naszej funkcji pair a potem te listy skleja).

0

mhm sęk w tym,że mam to w c++/php zrobić

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0