Skip to content

Instantly share code, notes, and snippets.

View stomy13's full-sized avatar

Masato Tokuse stomy13

View GitHub Profile
func Permute[T any](nums []T) [][]T {
n := factorial(len(nums))
ret := make([][]T, 0, n)
permute(nums, &ret)
return ret
}
func permute[T any](nums []T, ret *[][]T) {
*ret = append(*ret, makeCopy(nums))
func ExponentialBackoff(f func() error) {
sleep := time.Second
for {
err := f()
if err == nil {
return
}
time.Sleep(sleep)
sleep *= 2
}
package main
import (
"bytes"
"io/ioutil"
"log"
"os"
"path/filepath"
"time"
@stomy13
stomy13 / normalized_distribution.go
Created February 9, 2021 08:50
generate normalized distribution to file
package main
import (
"fmt"
"math/rand"
"os"
)
func main() {
f, err := os.OpenFile("./normalized_distribution", os.O_APPEND|os.O_WRONLY, os.ModeAppend)
@stomy13
stomy13 / subset_sum.go
Created February 1, 2021 17:19
the solution of a subset sum problem
package main
import (
"fmt"
)
func main() {
// input
var n, A int
@stomy13
stomy13 / knapsack.go
Created February 1, 2021 16:07
the solution of a knapsack problem
package main
import (
"fmt"
)
// input
var n, W int
var weight, value [110]int
@stomy13
stomy13 / salesman.go
Created January 31, 2021 03:41
巡回セールスマン問題をbit DPで解く
package main
import "fmt"
// INF is enough big value
const INF int = 100000000
// Input
var N int
var dist [21][21]int
@stomy13
stomy13 / expireDate.sh
Last active September 8, 2020 06:44
confirm ssl certificate expire date
# !/bin/bash
curl -v $1 2>&1 | grep 'expire date'
@stomy13
stomy13 / pointer_method_concurrently.go
Created August 9, 2020 12:19
Calling method concurrently via Pointer might be overwrite some fields
package main
import (
"fmt"
"time"
)
func main() {
m := &Messanger{
Message: "1",
@stomy13
stomy13 / signal.go
Last active August 8, 2020 03:48
for graceful shutdown loop programm
package main
import (
"fmt"
"os"
"os/signal"
"sync"
"syscall"
)