Skip to content

Instantly share code, notes, and snippets.

@ilvokhin
ilvokhin / stat.c
Last active October 3, 2025 14:21
Reporoducer for Linux Kernel accounting bug for mlocked folios
#include <stdio.h>
#include <stdlib.h>
#include <sys/mman.h>
#include <sys/stat.h>
#include <fcntl.h>
int main()
{
/* head -c 8G </dev/urandom > /tmp/random.bin */
@ilvokhin
ilvokhin / device_random_generator.cu
Created February 15, 2015 19:09
Generate random numbers on GPU
#include <thrust/iterator/counting_iterator.h>
#include <thrust/device_vector.h>
#include <thrust/transform.h>
#include <thrust/random.h>
#include <iostream>
template <typename T, typename D, typename E = thrust::default_random_engine>
struct device_random_generator
{
@ilvokhin
ilvokhin / simplex.py
Last active August 29, 2015 14:01
[Draft] Simplex algorithm
#! /usr/bin/env python
# -*- coding: utf-8 -*
# Simplex algorithm
# Generate simplex tables
# [Draft]
# TODO:
# 1. Make some tests
# 2. Format output
@ilvokhin
ilvokhin / nf.tex
Created December 20, 2013 09:39
Нормальные формы (БД)
%pdflatex nf.tex
\documentclass[12pt]{article}
\usepackage{fullpage}
\usepackage{multicol,multirow}
\usepackage{tabularx}
\usepackage{ulem}
\usepackage{amssymb}
\usepackage[utf8]{inputenc}
\usepackage[russian]{babel}
#! /usr/bin/env python
import numpy as np
import matplotlib.pyplot as plt
sz = int(raw_input())
a = np.random.normal(size = sz)
b = np.random.normal(size = sz)
x_n = list(np.cumsum([ x / y for x, y in zip(a, b) ]))
@ilvokhin
ilvokhin / AhoCor.cpp
Created August 3, 2013 11:40
Aho–Corasick string matching algorithm implementation
#include <algorithm>
#include <iterator>
#include <iostream>
#include <cstdio>
#include <string>
#include <vector>
#include <queue>
#include <map>
/* Aho–Corasick string matching algorithm implementation */
@ilvokhin
ilvokhin / hdmi.sh
Created June 1, 2013 15:06
Quick multi monitor setup with bumblebee
#! /usr/bin/env bash
# This works for me with Ubuntu 12.04, Samsung 27A950 and NVIDIA GeForse GT 520M:
#~$ uname -a
#Linux ubuntu 3.2.0-45-generic #70-Ubuntu SMP Wed May 29 20:12:06 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux
#~$ optirun --version
#optirun (Bumblebee) 3.2.1
# How to use algorithm:
# Start HDMI output:
@ilvokhin
ilvokhin / README
Last active December 17, 2015 05:09
Дискретный анализ, лабораторная работа №8
Лабораторная работа №8. Жадные алгоритмы
Вариант: Выбор отрезков
На координатной прямой даны несколько отрезков с координатами [Li, Ri ]. Необходимо выбрать минимальное количество отрезков, которые бы полностью покрыли интервал [0, M ].
Входные данные: на первой строчке располагается число N, за которым следует N строк на каждой из которой находится пара чисел Li, Ri ; последняя строка содержит в себе число M .
Выходные данные: на первой строке число K выбранных отрезков, за которым следует K строк, содержащих в себе выбранные отрезки в том же порядке, в котом они встретились во входных данных. Если покрыть интервал невозможно, нужно распечатать число 0.
@ilvokhin
ilvokhin / README
Created May 10, 2013 14:39
Дискретный анализ, лабораторная работа №7
Лабораторная работа №7. Динамическое программирование
Вариант: Хитрый рюкзак
У вас есть рюкзак, вместимостью m, а так же n предметов, у каждого из которых есть вес wi и стоимость ci. Необходимо выбрать такое подмножество I из них, чтобы:
* Σi∈Iwi ≤ m
* (Σi∈Ici)*|I| является максимальной из всех возможных.
|I| – мощность множества I.
Входные данные: в первой строке заданы 1 ≤ n ≤ 100 и 1 ≤ m ≤ 5000. В последующих n строках через пробел заданы параметры предеметов: wi и ci.
Выходные данные: в первой строке необходимо вывести одно число – максимальное значение (Σi∈Ici)*|I|, а на второй – индексы предметов, входящих в ответ.
@ilvokhin
ilvokhin / BigInt.cpp
Created April 5, 2013 15:04
Дискретный анализ, лабораторная работа №6
#include <algorithm>
#include <stdexcept>
#include <iostream>
#include <iomanip>
#include <sstream>
#include <limits>
#include <string>
#include <vector>
/* Based on http://cppalgo.blogspot.co.uk/2010/05/blog-post.html */