diff --git a/Individual Task 1/Program.fs b/Individual Task 1/Program.fs index ce8a39b..daea313 100644 --- a/Individual Task 1/Program.fs +++ b/Individual Task 1/Program.fs @@ -9,10 +9,26 @@ module EulerProblem105 = |> Array.map int |> Array.toList) |> Array.toList + + let generateAllSubsets set = + let rec generateSubsetsAux acc remaining = + match remaining with + | [] -> acc + | x::xs -> + let newSubsets = List.map (fun subset -> x::subset) acc + generateSubsetsAux (acc @ newSubsets) xs + + let allSubsets = generateSubsetsAux [[]] set + List.filter (fun subset -> not (List.isEmpty subset)) allSubsets let run filePath = let sets = parseInput filePath printfn "Загружено %d множеств" (List.length sets) + + let testSet = List.head sets + let subsets = generateAllSubsets testSet + printfn "Для первого множества сгенерировано %d непустых подмножеств" (List.length subsets) + 0 []