golang 麻将胡牌快速算法,非常快
package main
import (
"fmt"
"io/ioutil"
"math"
"sort"
"time"
"github.com/yangtizi/go/sysutils"
)
var mp map[int]bool
func main() {
mp = make(map[int]bool)
dt := time.Now()
for i := 1; i <= 9; i++ {
jiangtou([]int{i, i})
}
nLen := 0
sortList := []int{}
for k, v := range mp {
if v {
sortList = append(sortList, k)
nLen++
}
}
sort.Ints(sortList)
strSave := ""
for _, v := range sortList {
strSave += sysutils.IntToStr(v) + "\n"
}
ioutil.WriteFile("out.txt", []byte(strSave), 0666)
fmt.Println(nLen)
fmt.Println(time.Since(dt))
}
func calcValue(arr []int) int {
key := 0
nLen := len(arr)
for k, v := range arr {
key += int(math.Pow10(nLen-k-1)) * v
}
return key
}
func checkFour(arr []int) bool {
for i := 0; i < len(arr)-4; i++ {
if arr[i]