(IT 1) feat: add subset generation with tail recursion

main
Artem-Darius Weber 3 weeks ago
parent bb0178f467
commit ba4c5edaa3

@ -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
[<EntryPoint>]

Loading…
Cancel
Save