Skip to content

Instantly share code, notes, and snippets.

View vkryukov's full-sized avatar

Victor vkryukov

  • Mountain View, CA
View GitHub Profile
@vkryukov
vkryukov / digits.py
Last active October 13, 2019 18:37
Arithmetic puzzle solver
"""
Arithmetic puzzle solver. You are given a sequence of four digits, say 1,2,3,4,
and your job is to combine them with ordinary arithmetic operations (+, -, ×, and ÷)
in any order to make a target number. E.g. 24 = 1 * 2 * 3 * 4 or 24 = (1 + 2 + 3) * 4.
Some 'hard' problems from https://blog.plover.com/math/17-puzzle.html:
1. Given 6, 6, 5, 2, get 17.
2. Given 3, 3, 8, 8, get 24.
"""
@vkryukov
vkryukov / digits2.go
Created December 4, 2014 20:25
1989 solution - version #2
package main
import (
"fmt"
"log"
"math"
"os"
"sort"
"strconv"
"strings"
@vkryukov
vkryukov / dep5.txt
Created December 2, 2014 22:20
1989 problem - up to depth 5
-990 [2] = -(1 + (989))
-989 [2] = -((1) * (989))
-988 [1] = 1 - (989)
-976 [5] = -((1 - (sqrt(9))) ^ (8) + (((sqrt(9))!)!))
-960 [4] = (1 - (9)) * ((8 - (sqrt(9)))!)
-918 [4] = -(198) - (((sqrt(9))!)!)
-912 [5] = ((1 + (sqrt(9)))!) * (-(8)) - (((sqrt(9))!)!)
-900 [5] = (sqrt(sqrt((1 + (9)) ^ (8)))) * (-(9))
-891 [2] = (1 + (98)) * (-(9))
-890 [2] = (1 + (9)) * (-(89))
@vkryukov
vkryukov / digits.go
Last active August 29, 2015 14:10
Go program to solve 1989 problem, http://gaz-v-pol.livejournal.com/146153.html
package main
import (
"fmt"
"math"
"os"
"strconv"
)
type Op int64 // Operators
@vkryukov
vkryukov / dep5.txt
Created December 2, 2014 07:05
Formulas for 1989 problem - level 5
-988 = 1 - (989)
-960 = (1 - (9)) * ((8 - (sqrt(9)))!)
-881 = 1 - ((98) * (9))
-873 = (1 - (98)) * (9)
-839 = 1 - (((sqrt(9))!)! + (8 - (sqrt(9)))!)
-817 = 1 - (98) - (((sqrt(9))!)!)
-808 = 1 - (((sqrt(9))!)! + 89)
-800 = 1 - (sqrt(sqrt((9) ^ (8))) + ((sqrt(9))!)!)
-791 = 1 - ((9) * (8)) - (((sqrt(9))!)!)
-784 = (1 - (9)) * (8) - (((sqrt(9))!)!)
@vkryukov
vkryukov / dep4.txt
Created December 2, 2014 07:04
Formulas for 1989 problem - level 4
-988 = 1 - (989)
-960 = (1 - (9)) * ((8 - (sqrt(9)))!)
-881 = 1 - ((98) * (9))
-873 = (1 - (98)) * (9)
-817 = 1 - (98) - (((sqrt(9))!)!)
-800 = 1 - ((9) * (89))
-791 = 1 - ((9) * (8)) - (((sqrt(9))!)!)
-784 = (1 - (9)) * (8) - (((sqrt(9))!)!)
-743 = 1 - ((sqrt(9)) * (8)) - (((sqrt(9))!)!)
-736 = 1 - (9 + 8) - (((sqrt(9))!)!)
@vkryukov
vkryukov / remove_html_attribute.go
Last active August 29, 2015 14:05
Remove HTML attribute from a string.
package main
import (
"bytes"
"fmt"
"strings"
"code.google.com/p/go.net/html"
"code.google.com/p/go.net/html/atom"
)
@vkryukov
vkryukov / gist:4d53f84080bf088f087b
Created June 30, 2014 20:27
go.enmime library example
package main
import (
"bytes"
"fmt"
"log"
"net/mail"
enmime "github.com/jhillyerd/go.enmime"
)
@vkryukov
vkryukov / display_board.m
Created April 23, 2014 02:29
Display boards filled with black and white stone in Mathematica
randomPoints[n_] := RandomSample[Block[{nn = Ceiling[Sqrt[n]]},
Flatten[Table[{i, j}, {i, 1, nn}, {j, 1, nn}], 1]], n];
(* n is number of moves = 2 * number of points *)
randomBoard[n_] := Module[
{points = randomPoints[2 n]},
Join[
Take[points, n] /. {x_, y_} -> black[x, y],
Take[points, -n] /. {x_, y_} -> white[x, y]
]]
@vkryukov
vkryukov / database_table_sizes.R
Created March 24, 2014 19:02
Calculate MS SQL database table sizes in R
tables <- SQLQuery("
select TABLE_NAME as table_name
from cs_reporting.information_schema.tables
where table_type = 'BASE TABLE'")
sizes <- rbindlist(lapply(tables$table_name, function(x) SQLQuery(paste0("sp_spaceused [", x, "]"))))
StripKB <- function(x) as.integer(str_replace_all(x, ' KB', ''))
sizes[, reserved := StripKB(reserved)]