Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
|
|
@ -0,0 +1,89 @@
|
|||
package main
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"sort"
|
||||
"strconv"
|
||||
)
|
||||
|
||||
type wheel struct {
|
||||
next int
|
||||
values []string
|
||||
}
|
||||
|
||||
type wheelMap = map[string]wheel
|
||||
|
||||
func generate(wheels wheelMap, start string, maxCount int) {
|
||||
count := 0
|
||||
w := wheels[start]
|
||||
for {
|
||||
s := w.values[w.next]
|
||||
v, err := strconv.Atoi(s)
|
||||
w.next = (w.next + 1) % len(w.values)
|
||||
wheels[start] = w
|
||||
if err == nil {
|
||||
fmt.Printf("%d ", v)
|
||||
count++
|
||||
if count == maxCount {
|
||||
fmt.Println("...\n")
|
||||
return
|
||||
}
|
||||
} else {
|
||||
for {
|
||||
w2 := wheels[s]
|
||||
ss := s
|
||||
s = w2.values[w2.next]
|
||||
w2.next = (w2.next + 1) % len(w2.values)
|
||||
wheels[ss] = w2
|
||||
v, err = strconv.Atoi(s)
|
||||
if err == nil {
|
||||
fmt.Printf("%d ", v)
|
||||
count++
|
||||
if count == maxCount {
|
||||
fmt.Println("...\n")
|
||||
return
|
||||
}
|
||||
break
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func printWheels(wheels wheelMap) {
|
||||
var names []string
|
||||
for name := range wheels {
|
||||
names = append(names, name)
|
||||
}
|
||||
sort.Strings(names)
|
||||
fmt.Println("Intersecting Number Wheel group:")
|
||||
for _, name := range names {
|
||||
fmt.Printf(" %s: %v\n", name, wheels[name].values)
|
||||
}
|
||||
fmt.Print(" Generates:\n ")
|
||||
}
|
||||
|
||||
func main() {
|
||||
wheelMaps := []wheelMap{
|
||||
{
|
||||
"A": {0, []string{"1", "2", "3"}},
|
||||
},
|
||||
{
|
||||
"A": {0, []string{"1", "B", "2"}},
|
||||
"B": {0, []string{"3", "4"}},
|
||||
},
|
||||
{
|
||||
"A": {0, []string{"1", "D", "D"}},
|
||||
"D": {0, []string{"6", "7", "8"}},
|
||||
},
|
||||
{
|
||||
"A": {0, []string{"1", "B", "C"}},
|
||||
"B": {0, []string{"3", "4"}},
|
||||
"C": {0, []string{"5", "B"}},
|
||||
},
|
||||
}
|
||||
for _, wheels := range wheelMaps {
|
||||
printWheels(wheels)
|
||||
generate(wheels, "A", 20)
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue