Make pythag really slow
This commit is contained in:
@@ -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,
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -8,20 +8,97 @@ instructions_per_function_std_dev: 3
|
||||
return_to_best_period_mean: 10000
|
||||
|
||||
samples:
|
||||
- in: [3,4]
|
||||
- in: [3, 4]
|
||||
out: [5]
|
||||
|
||||
- in: [7,24]
|
||||
- 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]
|
||||
|
||||
Reference in New Issue
Block a user