Make pythag really slow

This commit is contained in:
Ian Gulliver
2021-11-24 20:46:48 -08:00
parent 0bccd0c94b
commit 4eb2ff6188
3 changed files with 109 additions and 22 deletions

View File

@@ -10,14 +10,14 @@ var opCodes = []vm.OpCodeType{
vm.OpMov,
vm.OpAdd,
// vm.OpSub,
vm.OpSub,
vm.OpMul,
// vm.OpDivU,
// vm.OpDivS,
vm.OpDivU,
vm.OpDivS,
// vm.OpNot,
// vm.OpAnd,
// vm.OpOr,
vm.OpNot,
vm.OpAnd,
vm.OpOr,
vm.OpXor,
// vm.OpShR,

View File

@@ -98,7 +98,7 @@ func (def *Definition) Grow(statusChan chan<- Status) (*vm.Program, error) {
statusChan <- status
}
if status.BestScores[0].Current == status.BestScores[0].Total {
if def.scoreIsPerfect(status.BestScores) {
return prog, nil
}
}
@@ -225,6 +225,16 @@ func (def *Definition) scoreIsBetter(old, new []*Score) bool {
return false
}
func (def *Definition) scoreIsPerfect(scores []*Score) bool {
for _, score := range scores {
if score.Current < score.Total {
return false
}
}
return true
}
func (def *Definition) minifyProgram(prog *vm.Program) error {
for f := 0; f < len(prog.Functions); f++ {
err := def.minifyFunction(prog, f)

View File

@@ -10,18 +10,95 @@ return_to_best_period_mean: 10000
samples:
- in: [3, 4]
out: [5]
- in: [5, 12]
out: [13]
- in: [8, 15]
out: [17]
- in: [7, 24]
out: [25]
- in: [88, 105]
out: [137]
- in: [140, 171]
out: [221]
- in: [105, 208]
out: [233]
- in: [161, 240]
out: [289]
- in: [20, 21]
out: [29]
- in: [12, 35]
out: [37]
- in: [9, 40]
out: [41]
- in: [28, 45]
out: [53]
- in: [11, 60]
out: [61]
- in: [16, 63]
out: [65]
- in: [33, 56]
out: [65]
- in: [48, 55]
out: [73]
- in: [13, 84]
out: [85]
- in: [36, 77]
out: [85]
#- in: [39, 80]
# out: [89]
#- in: [65, 72]
# out: [97]
#- in: [20, 99]
# out: [101]
#- in: [60, 91]
# out: [109]
#- in: [15, 112]
# out: [113]
#- in: [44, 117]
# out: [125]
#- in: [88, 105]
# out: [137]
#- in: [17, 144]
# out: [145]
#- in: [24, 143]
# out: [145]
#- in: [51, 140]
# out: [149]
#- in: [85, 132]
# out: [157]
#- in: [119, 120]
# out: [169]
#- in: [52, 165]
# out: [173]
#- in: [19, 180]
# out: [181]
#- in: [57, 176]
# out: [185]
#- in: [104, 153]
# out: [185]
#- in: [95, 168]
# out: [193]
#- in: [28, 195]
# out: [197]
#- in: [84, 187]
# out: [205]
#- in: [133, 156]
# out: [205]
#- in: [21, 220]
# out: [221]
#- in: [140, 171]
# out: [221]
#- in: [60, 221]
# out: [229]
#- in: [105, 208]
# out: [233]
#- in: [120, 209]
# out: [241]
#- in: [32, 255]
# out: [257]
#- in: [23, 264]
# out: [265]
#- in: [96, 247]
# out: [265]
#- in: [69, 260]
# out: [269]
#- in: [115, 252]
# out: [277]
#- in: [160, 231]
# out: [281]
#- in: [161, 240]
# out: [289]
#- in: [68, 285]
# out: [293]