Skip to content

Instantly share code, notes, and snippets.

View foobic's full-sized avatar

Oleksii Horbov foobic

View GitHub Profile
@foobic
foobic / .theme
Created March 4, 2017 20:46
cmus config green.theme
# Another Green Theme for cmus
#
# Change this to a red or blue theme by doing the following in vim:
#
# :%s/lightgreen/light<color>/g
# :%s/green/<color>/g
#
# - roobert@gmail.com
# Directory colors
@foobic
foobic / task107.js
Created July 9, 2018 15:01
Задача 107: Основы графов. Дана матрица размерности NxN, ктр состоит из нулей и единиц. Необходимо определить является ли она матрицей смежности простого неориентированного графа.
// Матрица смежности неориентированного графа всегда симметрична.
// Если строка в матрице нулевая, то матрица не является матрицей смежности графа.
let sum = (a, b) => a + b
function isNotOrientedGraph(arr){
let i, j, flag;
for(i = 0; i < arr.length; i++){
if (arr[i].reduce(sum) === 0) return false // проверка суммы строки матрицы
if (arr[i][i] === 1) return false // простой граф не имеет петель
if (arr[i].length !== arr.length) return false // проверка размерности
for(j = i+1; j < arr.length; j++){
@foobic
foobic / task108.js
Created July 13, 2018 12:15
Задача 108: Теория множеств. Дано множество, состоящее из N элементов, его элементы - все числа от 1 до N включительно. Необходимо определить кол-во всевозможных подмножеств заданного множества, а также вывести все эти подмножества (пустое множество можно не выводить).
// Идея такая:
// Рекурсивно с помощью операции симметрической разницы строим из заданных элементов множества всевозможноные комбинации на основе уже имеющихся.
// Например: Дано множество [1,2,3]
// 1. [1,2,3] длина = 3
// 2. Получаем всевозможные подмножества длиной=2 с помощою результата симметрической разницы между заданным множетсвом и его элементами
// [1,2,3] - [1] = [2,3] , [1,2,3] - [2] = [1,3], [1,2,3] - [3] = [1,2]
// 3. Выполняем пункт 2 для полученных подмножеств до тех пор пока n > 1