You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			| 
				
					
						 | 
			7 months ago | |
|---|---|---|
| .. | ||
| obj | 7 months ago | |
| Dockerfile | 7 months ago | |
| Individual Task 1.fsproj | 7 months ago | |
| Program.fs | 7 months ago | |
| README.md | 7 months ago | |
| sets.txt | 7 months ago | |
		
			
				
				README.md
			
		
		
	
	Project Euler 105 — Special Sum Sets
Условие задачи
Пусть S(A) — сумма элементов множества A. Множество A называется special sum set, если для любых двух непустых непересекающихся подмножеств B и C выполняются:
S(B) \ne S(C)(суммы не равны)- Если 
|B| > |C|, тоS(B) > S(C) 
Дан файл sets.txt с 100 наборами по 7–12 чисел. Найти сумму S(A) по всем special sum set.
Требования к решению
- Функциональный стиль (F#)
 - Обязательно использовать хвостовую рекурсию хотя бы раз
 - Использовать методы работы с коллекциями (
List.map,List.filter, и т.д.) - Запрещены циклы
 - Решение должно быть разбито на несколько осмысленных коммитов, разнесённых по времени
 
Теория и критерии
- Префикс-суффикс неравенства: для отсортированного 
A:
Это гарантирует правило (2).\sum_{i=1}^{k+1} a_i > \sum_{i=0}^{k-1} a_{n-i}, \quad k=1,\dots,\left\lfloor\frac n2\right\rfloor - Уникальность всех сумм: все суммы непустых подмножеств должны быть различны.
 
Алгоритм (F#)
- Прочитать файл, преобразовать строки в списки чисел
 - Для каждого множества:
- Проверить префикс-суффикс неравенство (хвостовая рекурсия)
 - Проверить уникальность всех сумм подмножеств (методы коллекций)
 
 - Просуммировать суммы подходящих множеств
 
Проверка
- Зарегистрироваться на projecteuler.net
 - Проверить ответ (для задачи 105 — 73702)