Skip to content

Instantly share code, notes, and snippets.

@mzdravkov
mzdravkov / schedule2.jl
Created June 15, 2015 10:56
schedule problem 3
function pickrand(col)
index = rand(1:length(col))
col[index]
end
function isbusy(intern, busy, day_hours, day, hour)
for i = 1:length(busy[intern])
if busy[intern][i][1] == day && (busy[intern][i][2]-day_hours) <= hour < (busy[intern][i][3]-day_hours)
return true
end
@mzdravkov
mzdravkov / schedule3.jl
Created June 21, 2015 14:14
schedule problem 4
# our schedule is 3D array with (5 workdays, W workhours, P positions) for dimensions
day_start = 9
day_end = 17
day_hours = day_end - day_start
positions = 4
people = 8
position_hours = 8
work_hours = 20
new_schedule() = fill(0, 5, day_hours, positions)
@mzdravkov
mzdravkov / schedule3.jl
Created June 21, 2015 15:08
schedule problem 5
# our schedule is 3D array with (5 workdays, W workhours, P positions) for dimensions
day_start = 7
day_end = 19
positions = 4
people = 8
position_hours = 8
work_hours = 20
# generate random schedule of each intern's busy times
busy = ntuple(people, i -> fill((0,0,0), rand(0:7)))
quicksort :: (Ord a) => [a] -> [a]
quicksort [] = []
quicksort (x:xs) =
let smallerSorted = quicksort [a | a <- xs, a <= x]
biggerSorted = quicksort [a | a <- xs, a > x]
in smallerSorted ++ [x] ++ biggerSorted
@mzdravkov
mzdravkov / schedule.php
Last active August 29, 2015 14:24
scheduling problem in php
<?php
$day_start = 7;
$day_end = 19;
$positions = 4;
$people = 8;
$position_hours = 8;
$work_hours = 20;
$busy = [[[3,16,19]],
(defn tree
[arr]
(if (empty? arr)
[]
[[(tree (rest arr))]
[(tree (reverse
(rest
(reverse arr))))]]))
@mzdravkov
mzdravkov / generate.php
Created July 9, 2015 12:27
Basic web interface for the scheduling problem.
<?php
include 'schedule.php';
$day_start = (int)$_POST['day_start'];
$day_end = (int)$_POST['day_end'];
$positions = (int)$_POST['positions'];
$people = (int)$_POST['people'];
$position_hours = (int)$_POST['position_hours'];
$work_hours = (int)$_POST['work_hours'];
if ($day_start >= $day_end ||
(defmacro pattern
[n predecessor]
(vec
(concat (repeat n '_)
predecessor
'(& r))))
(defmacro my-match
[state predecessor]
(let [diff (- (count state)
package main
import (
"fmt"
"time"
)
func main() {
ch := make(chan int)
for i := 0; i < 100; i++ {
@mzdravkov
mzdravkov / ecs2.go
Created May 24, 2016 11:29
test ecs idea
package main
import (
"math"
"sync"
)
type Component interface {
Name() string
}