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