Removed the program used to find the cases for TestQueueMain_Sequence.
This commit is contained in:
parent
b20bf2d1c9
commit
10ab539ff0
|
@ -1,90 +0,0 @@
|
|||
// 28 april 2019
|
||||
package main
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
)
|
||||
|
||||
func main() { main2(7,2,3,8) }
|
||||
|
||||
type op interface {
|
||||
do(x uint32) uint32
|
||||
write() string
|
||||
}
|
||||
|
||||
type sub uint32
|
||||
func (b sub) do(x uint32) uint32 { return x - uint32(b) }
|
||||
func (b sub) write() string { return fmt.Sprintf("- %d", b) }
|
||||
|
||||
type div uint32
|
||||
func (c div) do(x uint32) uint32 { return x / uint32(c) }
|
||||
func (c div) write() string { return fmt.Sprintf("/ %d", c) }
|
||||
|
||||
type mul uint32
|
||||
func (d mul) do(x uint32) uint32 { return x * uint32(d) }
|
||||
func (d mul) write() string { return fmt.Sprintf("* %d", d) }
|
||||
|
||||
func dowrite(a uint32, b, c, d op) (uint32, string) {
|
||||
val := d.do(c.do(b.do(a)))
|
||||
|
||||
str := fmt.Sprintf("%d %s", a, b.write())
|
||||
str = fmt.Sprintf("(%s) %s", str, c.write())
|
||||
str = fmt.Sprintf("(%s) %s", str, d.write())
|
||||
|
||||
return val, str
|
||||
}
|
||||
|
||||
func main2(aa, bb, cc, dd uint32) {
|
||||
a, b, c, d := uint32(aa), sub(bb), div(cc), mul(dd)
|
||||
fmt.Println(dowrite(a, b, c, d))
|
||||
fmt.Println(dowrite(a, b, d, c))
|
||||
fmt.Println(dowrite(a, c, b, d))
|
||||
fmt.Println(dowrite(a, c, d, b))
|
||||
fmt.Println(dowrite(a, d, b, c))
|
||||
fmt.Println(dowrite(a, d, c, b))
|
||||
}
|
||||
|
||||
func try(a, b, c, d uint32) bool {
|
||||
m := make(map[uint32]uint32)
|
||||
m[a]++;m[b]++;m[c]++;m[d]++
|
||||
if len(m)!=4{return false}
|
||||
|
||||
add := func(x uint32) uint32 { return x - b }
|
||||
mul := func(x uint32) uint32 { return x / c }
|
||||
sub := func(x uint32) uint32 { return x * d }
|
||||
m = make(map[uint32]uint32)
|
||||
m[add(mul(sub(a)))]++
|
||||
m[add(sub(mul(a)))]++
|
||||
m[mul(add(sub(a)))]++
|
||||
m[mul(sub(add(a)))]++
|
||||
m[sub(add(mul(a)))]++
|
||||
m[sub(mul(add(a)))]++
|
||||
if len(m) != 6 {
|
||||
return false
|
||||
}
|
||||
for k, v := range m {
|
||||
if int32(k) < 0 {
|
||||
return false
|
||||
}
|
||||
if v != 1 {
|
||||
return false
|
||||
}
|
||||
}
|
||||
return true
|
||||
}
|
||||
|
||||
func main1() {
|
||||
min := uint32(2)
|
||||
max := uint32(10)
|
||||
for a := min; a <= max; a++ {
|
||||
for b := min; b <= max; b++ {
|
||||
for c := min; c <= max; c++ {
|
||||
for d := min; d <= max; d++ {
|
||||
if try(a, b, c, d) {
|
||||
fmt.Println(a, b, c, d)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue