This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
open System | |
let s = Seq.unfold (fun (f, g) -> Some( (f, g), (f + g, f + 2 * g) ) ) (1, 1) | |
let foo n = | |
let (f_n, g_n) = s |> Seq.take n |> Seq.last | |
printfn "for n = %d the result is %d" n (f_n + 2 * g_n) | |
[<EntryPoint>] | |
let main argv = |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
1. Нет, гусь — не утка | |
2. false | |
3. true | |
4. HashCode | |
5. Параметры командной строки, с которыми была запущена программа | |
6. null | |
7. [1, 2] | |
8. [1] | |
9. Donald | |
10. class Duck implements Comparable<Duck>; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
open System | |
//Вершина хранит значение и массив номеров вершин-детей | |
//Предполагается, что во всех вершинах value >= 0. Иначе надо было бы проверять вершину при добавлении в подмножество | |
type Node = int * List<int> | |
//В дереве хранится список вершин и номер корня(обычно считаем, что 0) | |
type Tree = {nodes : List<Node>; root : int} | |
let maxSubset (tree : Tree) : int = | |
//возвращает пару (сумма макс. подмн., сумма макс. подмн. без корня) для поддерева данной вершины |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
open System | |
//Для каждого i от n до 1 добавим к каждому множеству i, добавив их в список, | |
//при этом оставив в конечном списке и множества без этого элемента. | |
//В начале есть только пустое множество, которое потом удаляется. | |
let powerset n = | |
let rec powerset' acc n = | |
match n with | |
| 0 -> acc |