ื˜ื ืึธื™ื ืื™ืŸ Go ืื•ืŸ ื–ื™ื™ืขืจ ืงื•ื•ืขืจืงืก

ืฆื™ ืื™ืจ ื˜ืจืึทื›ื˜ืŸ ื“ื™ ืฆื•ื•ื™ื™ ืึธืคึผืฆื™ืขืก ืคึฟืึทืจ ื˜ืขืกื˜ื™ื ื’ ื˜ื ืึธื™ื ืื™ืŸ ืึท ืฉืœื™ื™ืฃ ื–ืขื ืขืŸ ืขืงื•ื•ื™ื•ื•ืึทืœืขื ื˜ ืื™ืŸ ืคืึธืจืฉื˜ืขืœื•ื ื’?

		
if a > b && c*2 > d {
	....
}
// ะธ
if a <= b  { 
  continue;
}
if c*2 > d {
 ....
}


ืขืก ืึทืœืข ืื ื’ืขื”ื•ื™ื‘ืŸ ืžื™ื˜ ืึท "ืžืึทืจืš ื•ื•ืึทืจืขื-ืึทืจื•ื™ืฃ"; ืื™ืš ื”ืื˜ ืฆื• ื’ืขื‘ืŸ ืึท ื‘ื™ื™ืฉืคึผื™ืœ ืคื•ืŸ ืึทืŸ ืึธืคึผื˜ื™ืžืึทืœ ื–ื•ื›ืŸ ืคึฟืึทืจ ื“ื™ ื’ืจืขืกื˜ืข ืืคื™ืœื• ื ื•ืžืขืจ ืื™ืŸ ืึท ืžืขื ื’ืข ืคื•ืŸ โ€‹โ€‹โ€‹โ€‹ื™ื ื˜ืึทื“ื–ืฉืขืจื– [-X .... X]. ืื™ืš ืื™ื– ื’ืขื•ื•ืขืŸ ื•ื•ืึทื ื“ืขืจื™ื ื’ ื•ื•ื™ ืคื™ืœ ื‘ืขืกืขืจ ืคืึธืจืฉื˜ืขืœื•ื ื’ ื•ื•ืึธืœื˜ ื–ื™ื™ืŸ ืื•ื™ื‘ ืื™ืš ื’ืขื•ื•ื™ื™ื ื˜ ืœืึทื“ื–ืฉื™ืงืึทืœ ืงื™ื™ืคืœ ืžื™ื˜ 1 ืฆื• ืจืขื›ืขื ืขืŸ ืฆื™ ืึท ื ื•ืžืขืจ ืื™ื– ืืคื™ืœื• ืึธื“ืขืจ ื ื™ืฉื˜.


//ัƒ ั‡ะตั‚ะฝั‹ั… ั‡ะธัะตะป ะฟะพัะปะตะดะฝะธะน ะฑะธั‚ ะฒัะตะณะดะฐ ั€ะฐะฒะตะฝ 0
value & 1 == 0
//vs ะบะปะฐััะธั‡ะตัะบะธะน ะผะตั‚ะพะด
value % 2 == 0

ืžื™ื™ึทืŸ ืคึผืจืึธื’ืจืึทืžืžื™ื ื’ ื“ืขืจืคืึทืจื•ื ื’ ืื™ืŸ Go ืื™ื– ื ื™ืฉื˜ ื–ื™ื™ืขืจ ื‘ืจื™ื™ื˜, ื ืึธืจ ืื™ื‘ืขืจ ืึท ื™ืึธืจ ืื•ืŸ ืึท ื”ืึทืœื‘, ืื™ืš ื’ืขื•ื•ื™ื™ื ื˜ ืขืก, ื›ืึธื˜ืฉ ืึธืคื˜, ืึธื‘ืขืจ ืจื™ื™ืŸ ืคึฟืึทืจ ื™ื•ื˜ื™ืœืึทื˜ืขืจื™ืึทืŸ ืฆื•ื•ืขืงืŸ (ื ื•, ืืคึฟืฉืจ ืึทื—ื•ืฅ ืคึฟืึทืจ ืื™ื™ืŸ ืคึผืจื•ื™ืขืงื˜ ืฉื™ื™ึทื›ื•ืช ืฆื• ืึท ื”ื•ื™ืš-ืžืึทืกืข ื”ื˜ื˜ืคึผ ื“ื™ื ืกื˜), ืึทื–ื•ื™ ืื™ืš ืื ื’ืขื”ื•ื™ื‘ืŸ ืžื™ื˜ ืื™ื. ืขืคึฟืขื ืขืŸ GoLand ืื•ืŸ ืฉืจื™ื™ึทื‘ืŸ ืึท ืคึผืฉื•ื˜ ืคึผืจืึธื‘ืข


package main
import (
	"fmt"
	"log"
	"math"
	"math/rand"
	"time"
)
const size = 100000000 //math.MaxInt32*2
type Result struct {
	Name     string
	Duration time.Duration
	Value    int32
}

func main() {
	log.Println("initial array capacity: " + fmt.Sprint(size))
	var maxValue int32
        // ะ‘ัƒะดะตะผ ะฒะฐั€ัŒะธั€ะพะฒะฐั‚ัŒ ะดะธะฐะฟะฐะทะพะฝ ั‡ะธัะตะป ะพั‚ ะผะธะฝะธะผะฐะปัŒะฝะพะณะพ 
        // ะดะพ ะผะฐะบัะธะผะฐะปัŒะฝะพะณะพ. ะงะตะผ ะผะตะฝัŒัˆะต ะดะธะฐะฟะฐะทะพะฝ, ั‚ะตะผ ะฑะพะปัŒัˆะต 
        // ะฟั€ะพั†ะตััะพั€ะฝะพะณะพ ะฒั€ะตะผะตะฝะธ ะฑัƒะดะตั‚ ัƒั…ะพะดะธั‚ัŒ ะฝะฐ ะพะฟะตั€ะฐั†ะธัŽ 
        // ัั€ะฐะฒะฝะตะฝะธั ั‚ะตะบัƒั‰ะตะณะพ ั‡ะธัะปะฐ, ั ั€ะฐะฝะตะต ะฝะฐะนะดะตะฝะฝั‹ะผ ะธ ะฝะฐะพะฑะพั€ะพั‚
	for maxValue = 128; maxValue < math.MaxInt32/2+1; maxValue = maxValue * 2 {
		test(maxValue)
	}
}

func test(maxValue int32) {
	log.Println("max threshold: " + fmt.Sprint(maxValue))
	arr := make([]int32, size)
	for i := range arr {
		arr[i] = rand.Int31n(maxValue)
                // ะฒ ั‚ะตัั‚ะพะฒั‹ั… ะดะฐะฝะฝั‹ั… ะฝะฐะผ ะฝัƒะถะฝั‹ ะธ ะพั‚ั€ะธั†ะฐั‚ะตะปัŒะฝั‹ะต ั‡ะธัะปะฐ 
		sign := rand.Intn(2)
		if sign == 1 {
			arr[i] = -arr[i]
		}
	}

        // ะทะฐะฟัƒัะบะฐะตะผ ั‚ะตัั‚ "ะดะตะปะตะฝะธะต ั ะพัั‚ะฐั‚ะบะพะผ"
	result := maxEvenDividing("maxEvenDividing", arr)
	log.Printf(result.Name+"t result: "+fmt.Sprint(result.Value)+"ttduration %s", result.Duration)

        // ะทะฐะฟัƒัะบะฐะตะผ ั‚ะตัั‚ "ะบะพะฝัŠัŽะฝะบั†ะธะธ"
	result = maxEvenConjunction("maxEvenConjunction", arr)
	log.Printf(result.Name+"t result: "+fmt.Sprint(result.Value)+"ttduration %s", result.Duration)
}

func maxEvenDividing(name string, arr []int32) Result {
	start := time.Now()
	var current int32 = math.MinInt32
	for _, value := range arr {
		if value > current && value%2 == 0 {
			current = value
		}
	}
	duration := time.Since(start)
	result := Result{name, duration, current}
	return result
}

func maxEvenConjunction(name string, arr []int32) Result {
	start := time.Now()
	var current int32 = math.MinInt32
	for _, value := range arr {
		if value > current && value&1 == 0 {
			current = value
		}
	}
	duration := time.Since(start)
	result := Result{name, duration, current}
	return result
}

ืžื™ืจ ื‘ืึทืงื•ืžืขืŸ ืึท ืจืขื–ื•ืœื˜ืึทื˜ ื•ื•ืึธืก ื•ื•ื™ื™ื–ื˜ ืึทื– ื“ื™ ื”ืขื›ืขืจ ื“ื™ ืฉื•ื•ืขืœ, ื“ื™ ืžืขืจ ืึธืคื˜ ืคืœืึทืงื˜ืฉื•ื™ื™ืฉืึทื ื– ืื™ืŸ ืคืึธืจืฉื˜ืขืœื•ื ื’ ื“ืขืจืฉื™ื™ึทื ืขืŸ.

ืคืึทืจื’ืœื™ื™ึทื›ืŸmax threshold: 128
maxEvenDividing result: 126 duration 116.0067ms
maxEvenConjunction result: 126 duration 116.0066ms

max threshold: 16384
maxEvenDividing result: 16382 duration 115.0066ms
maxEvenConjunction result: 16382 duration 111.0064ms

......

max threshold: 8388608
maxEvenDividing result: 8388606 duration 109.0063ms
maxEvenConjunction result: 8388606 duration 109.0062ms

max threshold: 16777216
maxEvenDividing result: 16777214 duration 108.0062ms
maxEvenConjunction result: 16777214 duration 109.0062ms

max threshold: 33554432
maxEvenDividing result: 33554430 duration 114.0066ms
maxEvenConjunction result: 33554430 duration 110.0063ms

max threshold: 67108864
maxEvenDividing result: 67108860 duration 111.0064ms
maxEvenConjunction result: 67108860 duration 109.0062ms

max threshold: 134217728
maxEvenDividing result: 134217726 duration 108.0062ms
maxEvenConjunction result: 134217726 duration 109.0063ms

max threshold: 268435456
maxEvenDividing result: 268435446 duration 111.0063ms
maxEvenConjunction result: 268435446 duration 110.0063ms

ืขืก ืื™ื– ืงืœืึธืจ ืึทื– ืื™ืŸ ื“ืขื ืคืึทืœ, ืคึฟืึทืจ ืคืึทืจืฉื™ื“ืขื ืข ืฉื•ื•ืขืœืŸ ืžื™ืจ ื”ืึธื‘ืŸ ืคืึทืจืฉื™ื“ืขื ืข ืกืขืฅ ืคื•ืŸ ืคึผืจื•ื‘ื™ืจืŸ ื“ืึทื˜ืŸ, ื“ื™ ืคึผืจืึทืกืขืกืขืจ ืžืึทืกืข (ืื•ื™ืฃ ืžื™ื™ืŸ i5-2540M ืœืึทืคึผื˜ืึทืคึผ) ื•ื•ืขืจื™ื– ืึทืจื•ื 20..30%, ื“ื™ ื–ื›ึผืจื•ืŸ ืคืึทืจื ื•ืžืขืŸ ื“ื•ืจืš ื“ื™ ืึทืคึผืœืึทืงื™ื™ืฉืึทืŸ ืคืœื™ืกื ื“ื™ืง ืคึฟื•ืŸ GoLand ืื™ื– ืื™ืŸ ื“ื•ืจื›ืฉื ื™ื˜ืœืขืš. ื•ื•ืขื’ืŸ 813 ืžื‘ - ื“ืึธืก ืื™ื– ืื•ื™ืš ืึทืคืขืงืฅ ื“ื™ ืจื™ืœื™ื™ืึทื‘ื™ืœืึทื˜ื™ ืคื•ืŸ ื“ืขืจ ืจืขื–ื•ืœื˜ืึทื˜, ืื™ืจ ื“ืึทืจืคึฟืŸ ืฆื• ืจืึทื˜ืขื•ื•ืขืŸ ื˜ืขืกื˜ ืงืึทืกืขืก ืื•ื™ืฃ ื“ื™ืกืง ืื•ืŸ ืœื•ื™ืคืŸ ืึทืœืข ื˜ืขืกืฅ ืคึฟืึทืจ ื™ืขื“ืขืจ ืฉื•ื•ืขืœ ืื™ืŸ ืืคื’ืขื–ื•ื ื“ืขืจื˜ืงื™ื™ื˜ ืคื•ืŸ ื™ืขื“ืขืจ ืื ื“ืขืจืขืจ.

ืื•ืŸ ืื™ืฆื˜, ื˜ืจืื›ื˜ืŸ ื•ื•ืขื’ืŸ ื•ื•ื™ ืฆื• ื™ื ืกื˜ืจื•ืžืขื ื˜ ืึทืœืข ื“ืขื ืžื™ื˜ ืžื™ื ื™ืžืึทืœ ืงืึธืก, ืื™ืš ืื•ื™ื˜ืึธืžืึทื˜ื™ืฉ ืจื™ื›ื˜ื™ืง ื“ื™ ืฆื•ืฉื˜ืึทื ื“ ื˜ืฉืขืง

		
if value > current && value&1 == 0 {
	current = value
}

ืื•ื™ืฃ

		
if value <= current {
        continue;
}
if value&1 == 0 {
	current = value
}

ืื™ืš ืœื•ื™ืคืŸ ื“ื™ ื˜ืขืกืฅ ื•ื•ื™ื“ืขืจ ... ืื•ืŸ ืื™ืš ื”ืึทืœื˜ืŸ ืฆื• ืคึฟืึทืจืฉื˜ื™ื™ืŸ ืขืคึผืขืก :)

ื“ื™ ืฆื™ื™ื˜ ืคืืจื‘ืจืื›ื˜ ืื•ื™ืฃ ื“ื•ืจื›ืคื™ืจื•ื ื’ ื”ื™ื™ื‘ื˜ ืฆื• ื–ื™ื™ืŸ ืึทื ื“ืขืจืฉ ื ื™ื˜ ืžืขืจ ื“ื•ืจืš ืคึผืขืจืกืขื ื˜ื™ื“ื–ืฉื™ื– / ืคืจืึทืงืฉืึทื ื– ืคื•ืŸ ืึท ืคึผืจืึธืฆืขื ื˜, ืึธื‘ืขืจ ื“ื•ืจืš 10..15%. ืื™ืš ื’ืขืฉื•ื•ื™ื ื“ ืœื™ื™ื’ืŸ 2 ืžืขืจ ื˜ืขืกืฅ:

		
func maxEvenDividing2(name string, arr []int32) Result {
	start := time.Now()
	var current int32 = math.MinInt32
	for _, value := range arr {
		if value <= current {
			continue
		}

		if value%2 == 0 {
			current = value
		}
	}
	duration := time.Since(start)
	result := Result{name, duration, current}
	return result
}

func maxEvenConjunction2(name string, arr []int32) Result {
	start := time.Now()
	var current int32 = math.MinInt32
	for _, value := range arr {
		if value <= current {
			continue
		}
		if value&1 == 0 {
			current = value
		}
	}
	duration := time.Since(start)
	result := Result{name, duration, current}
	return result
}

ืื™ืš ืœื•ื™ืคืŸ ืขืก ืื•ืŸ ื‘ืึทืงื•ืžืขืŸ ื“ืขื ื‘ื™ืœื“:ืขืจืฉื˜ ืžืขื ื’ืข ืงืึทืคึผืึทืฆื™ื˜ืขื˜: 100000000

ืžืึทืงืกื™ืžื•ื ืฉื•ื•ืขืœ: 128
maxEven ื“ื™ื•ื•ื™ื“ื™ื ื’ ืจืขื–ื•ืœื˜ืึทื˜: 126 ื’ืขื“ื•ื™ืขืจ 116.0066ms
maxEvenDividing2 ืจืขื–ื•ืœื˜ืึทื˜: 126 ื’ืขื“ื•ื™ืขืจ 79.0045ms
maxEvenConjunction ืจืขื–ื•ืœื˜ืึทื˜: 126 ื’ืขื“ื•ื™ืขืจ 114.0065ms
maxEvenConjunction2 ืจืขื–ื•ืœื˜ืึทื˜: 126 ื’ืขื“ื•ื™ืขืจ 83.0048ms

ืžืึทืงืกื™ืžื•ื ืฉื•ื•ืขืœ: 256
maxEven ื“ื™ื•ื•ื™ื“ื™ื ื’ ืจืขื–ื•ืœื˜ืึทื˜: 254 ื’ืขื“ื•ื™ืขืจ 111.0063ms
maxEvenDividing2 ืจืขื–ื•ืœื˜ืึทื˜: 254 ื’ืขื“ื•ื™ืขืจ 77.0044ms
maxEvenConjunction ืจืขื–ื•ืœื˜ืึทื˜: 254 ื’ืขื“ื•ื™ืขืจ 110.0063ms
maxEvenConjunction2 ืจืขื–ื•ืœื˜ืึทื˜: 254 ื’ืขื“ื•ื™ืขืจ 80.0046ms

ืžืึทืงืกื™ืžื•ื ืฉื•ื•ืขืœ: 512
maxEven ื“ื™ื•ื•ื™ื“ื™ื ื’ ืจืขื–ื•ืœื˜ืึทื˜: 510 ื’ืขื“ื•ื™ืขืจ 114.0066ms
maxEvenDividing2 ืจืขื–ื•ืœื˜ืึทื˜: 510 ื’ืขื“ื•ื™ืขืจ 80.0045ms
maxEvenConjunction ืจืขื–ื•ืœื˜ืึทื˜: 510 ื’ืขื“ื•ื™ืขืจ 110.0063ms
maxEvenConjunction2 ืจืขื–ื•ืœื˜ืึทื˜: 510 ื’ืขื“ื•ื™ืขืจ 80.0046ms

ืžืึทืงืกื™ืžื•ื ืฉื•ื•ืขืœ: 1024
maxEven ื“ื™ื•ื•ื™ื“ื™ื ื’ ืจืขื–ื•ืœื˜ืึทื˜: 1022 ื’ืขื“ื•ื™ืขืจ 109.0063ms
maxEvenDividing2 ืจืขื–ื•ืœื˜ืึทื˜: 1022 ื’ืขื“ื•ื™ืขืจ 77.0044ms
maxEvenConjunction ืจืขื–ื•ืœื˜ืึทื˜: 1022 ื’ืขื“ื•ื™ืขืจ 111.0063ms
maxEvenConjunction2 ืจืขื–ื•ืœื˜ืึทื˜: 1022 ื’ืขื“ื•ื™ืขืจ 81.0047ms

ืžืึทืงืกื™ืžื•ื ืฉื•ื•ืขืœ: 2048
maxEven ื“ื™ื•ื•ื™ื“ื™ื ื’ ืจืขื–ื•ืœื˜ืึทื˜: 2046 ื’ืขื“ื•ื™ืขืจ 114.0065ms
maxEvenDividing2 ืจืขื–ื•ืœื˜ืึทื˜: 2046 ื’ืขื“ื•ื™ืขืจ 79.0045ms
maxEvenConjunction ืจืขื–ื•ืœื˜ืึทื˜: 2046 ื’ืขื“ื•ื™ืขืจ 113.0065ms
maxEvenConjunction2 ืจืขื–ื•ืœื˜ืึทื˜: 2046 ื’ืขื“ื•ื™ืขืจ 81.0046ms

ืžืึทืงืกื™ืžื•ื ืฉื•ื•ืขืœ: 4096
maxEven ื“ื™ื•ื•ื™ื“ื™ื ื’ ืจืขื–ื•ืœื˜ืึทื˜: 4094 ื’ืขื“ื•ื™ืขืจ 114.0065ms
maxEvenDividing2 ืจืขื–ื•ืœื˜ืึทื˜: 4094 ื’ืขื“ื•ื™ืขืจ 80.0046ms
maxEvenConjunction ืจืขื–ื•ืœื˜ืึทื˜: 4094 ื’ืขื“ื•ื™ืขืจ 111.0063ms
maxEvenConjunction2 ืจืขื–ื•ืœื˜ืึทื˜: 4094 ื’ืขื“ื•ื™ืขืจ 78.0045ms

ืžืึทืงืกื™ืžื•ื ืฉื•ื•ืขืœ: 8192
maxEven ื“ื™ื•ื•ื™ื“ื™ื ื’ ืจืขื–ื•ืœื˜ืึทื˜: 8190 ื’ืขื“ื•ื™ืขืจ 107.0062ms
maxEvenDividing2 ืจืขื–ื•ืœื˜ืึทื˜: 8190 ื’ืขื“ื•ื™ืขืจ 77.0044ms
maxEvenConjunction ืจืขื–ื•ืœื˜ืึทื˜: 8190 ื’ืขื“ื•ื™ืขืจ 111.0063ms
maxEvenConjunction2 ืจืขื–ื•ืœื˜ืึทื˜: 8190 ื’ืขื“ื•ื™ืขืจ 77.0044ms

ืžืึทืงืกื™ืžื•ื ืฉื•ื•ืขืœ: 16384
maxEven ื“ื™ื•ื•ื™ื“ื™ื ื’ ืจืขื–ื•ืœื˜ืึทื˜: 16382 ื’ืขื“ื•ื™ืขืจ 109.0063ms
maxEvenDividing2 ืจืขื–ื•ืœื˜ืึทื˜: 16382 ื’ืขื“ื•ื™ืขืจ 77.0044ms
maxEvenConjunction ืจืขื–ื•ืœื˜ืึทื˜: 16382 ื’ืขื“ื•ื™ืขืจ 108.0062ms
maxEvenConjunction2 ืจืขื–ื•ืœื˜ืึทื˜: 16382 ื’ืขื“ื•ื™ืขืจ 77.0044ms

ืžืึทืงืกื™ืžื•ื ืฉื•ื•ืขืœ: 32768
maxEven ื“ื™ื•ื•ื™ื“ื™ื ื’ ืจืขื–ื•ืœื˜ืึทื˜: 32766 ื’ืขื“ื•ื™ืขืจ 112.0064ms
maxEvenDividing2 ืจืขื–ื•ืœื˜ืึทื˜: 32766 ื’ืขื“ื•ื™ืขืจ 77.0044ms
maxEvenConjunction ืจืขื–ื•ืœื˜ืึทื˜: 32766 ื’ืขื“ื•ื™ืขืจ 109.0062ms
maxEvenConjunction2 ืจืขื–ื•ืœื˜ืึทื˜: 32766 ื’ืขื“ื•ื™ืขืจ 78.0045ms

ืžืึทืงืกื™ืžื•ื ืฉื•ื•ืขืœ: 65536
maxEven ื“ื™ื•ื•ื™ื“ื™ื ื’ ืจืขื–ื•ืœื˜ืึทื˜: 65534 ื’ืขื“ื•ื™ืขืจ 109.0062ms
maxEvenDividing2 ืจืขื–ื•ืœื˜ืึทื˜: 65534 ื’ืขื“ื•ื™ืขืจ 75.0043ms
maxEvenConjunction ืจืขื–ื•ืœื˜ืึทื˜: 65534 ื’ืขื“ื•ื™ืขืจ 109.0063ms
maxEvenConjunction2 ืจืขื–ื•ืœื˜ืึทื˜: 65534 ื’ืขื“ื•ื™ืขืจ 79.0045ms

ืžืึทืงืกื™ืžื•ื ืฉื•ื•ืขืœ: 131072
maxEven ื“ื™ื•ื•ื™ื“ื™ื ื’ ืจืขื–ื•ืœื˜ืึทื˜: 131070 ื’ืขื“ื•ื™ืขืจ 108.0061ms
maxEvenDividing2 ืจืขื–ื•ืœื˜ืึทื˜: 131070 ื’ืขื“ื•ื™ืขืจ 76.0044ms
maxEvenConjunction ืจืขื–ื•ืœื˜ืึทื˜: 131070 ื’ืขื“ื•ื™ืขืจ 110.0063ms
maxEvenConjunction2 ืจืขื–ื•ืœื˜ืึทื˜: 131070 ื’ืขื“ื•ื™ืขืจ 80.0046ms

ืžืึทืงืกื™ืžื•ื ืฉื•ื•ืขืœ: 262144
maxEven ื“ื™ื•ื•ื™ื“ื™ื ื’ ืจืขื–ื•ืœื˜ืึทื˜: 262142 ื’ืขื“ื•ื™ืขืจ 110.0063ms
maxEvenDividing2 ืจืขื–ื•ืœื˜ืึทื˜: 262142 ื’ืขื“ื•ื™ืขืจ 76.0044ms
maxEvenConjunction ืจืขื–ื•ืœื˜ืึทื˜: 262142 ื’ืขื“ื•ื™ืขืจ 107.0061ms
maxEvenConjunction2 ืจืขื–ื•ืœื˜ืึทื˜: 262142 ื’ืขื“ื•ื™ืขืจ 78.0044ms

ืžืึทืงืกื™ืžื•ื ืฉื•ื•ืขืœ: 524288
maxEven ื“ื™ื•ื•ื™ื“ื™ื ื’ ืจืขื–ื•ืœื˜ืึทื˜: 524286 ื’ืขื“ื•ื™ืขืจ 109.0062ms
maxEvenDividing2 ืจืขื–ื•ืœื˜ืึทื˜: 524286 ื’ืขื“ื•ื™ืขืจ 78.0045ms
maxEvenConjunction ืจืขื–ื•ืœื˜ืึทื˜: 524286 ื’ืขื“ื•ื™ืขืจ 109.0062ms
maxEvenConjunction2 ืจืขื–ื•ืœื˜ืึทื˜: 524286 ื’ืขื“ื•ื™ืขืจ 80.0046ms

ืžืึทืงืกื™ืžื•ื ืฉื•ื•ืขืœ: 1048576
maxEven ื“ื™ื•ื•ื™ื“ื™ื ื’ ืจืขื–ื•ืœื˜ืึทื˜: 1048574 ื’ืขื“ื•ื™ืขืจ 109.0063ms
maxEvenDividing2 ืจืขื–ื•ืœื˜ืึทื˜: 1048574 ื’ืขื“ื•ื™ืขืจ 80.0045ms
maxEvenConjunction ืจืขื–ื•ืœื˜ืึทื˜: 1048574 ื’ืขื“ื•ื™ืขืจ 114.0066ms
maxEvenConjunction2 ืจืขื–ื•ืœื˜ืึทื˜: 1048574 ื’ืขื“ื•ื™ืขืจ 78.0044ms

ืžืึทืงืกื™ืžื•ื ืฉื•ื•ืขืœ: 2097152
maxEven ื“ื™ื•ื•ื™ื“ื™ื ื’ ืจืขื–ื•ืœื˜ืึทื˜: 2097150 ื’ืขื“ื•ื™ืขืจ 111.0064ms
maxEvenDividing2 ืจืขื–ื•ืœื˜ืึทื˜: 2097150 ื’ืขื“ื•ื™ืขืจ 79.0045ms
maxEvenConjunction ืจืขื–ื•ืœื˜ืึทื˜: 2097150 ื’ืขื“ื•ื™ืขืจ 112.0064ms
maxEvenConjunction2 ืจืขื–ื•ืœื˜ืึทื˜: 2097150 ื’ืขื“ื•ื™ืขืจ 77.0044ms

ืžืึทืงืกื™ืžื•ื ืฉื•ื•ืขืœ: 4194304
maxEven ื“ื™ื•ื•ื™ื“ื™ื ื’ ืจืขื–ื•ืœื˜ืึทื˜: 4194302 ื’ืขื“ื•ื™ืขืจ 111.0063ms
maxEvenDividing2 ืจืขื–ื•ืœื˜ืึทื˜: 4194302 ื’ืขื“ื•ื™ืขืจ 78.0045ms
maxEvenConjunction ืจืขื–ื•ืœื˜ืึทื˜: 4194302 ื’ืขื“ื•ื™ืขืจ 111.0063ms
maxEvenConjunction2 ืจืขื–ื•ืœื˜ืึทื˜: 4194302 ื’ืขื“ื•ื™ืขืจ 77.0044ms

ืžืึทืงืกื™ืžื•ื ืฉื•ื•ืขืœ: 8388608
maxEven ื“ื™ื•ื•ื™ื“ื™ื ื’ ืจืขื–ื•ืœื˜ืึทื˜: 8388606 ื’ืขื“ื•ื™ืขืจ 109.0062ms
maxEvenDividing2 ืจืขื–ื•ืœื˜ืึทื˜: 8388606 ื’ืขื“ื•ื™ืขืจ 78.0045ms
maxEvenConjunction ืจืขื–ื•ืœื˜ืึทื˜: 8388606 ื’ืขื“ื•ื™ืขืจ 114.0065ms
maxEvenConjunction2 ืจืขื–ื•ืœื˜ืึทื˜: 8388606 ื’ืขื“ื•ื™ืขืจ 78.0045ms

ืžืึทืงืกื™ืžื•ื ืฉื•ื•ืขืœ: 16777216
maxEven ื“ื™ื•ื•ื™ื“ื™ื ื’ ืจืขื–ื•ืœื˜ืึทื˜: 16777214 ื’ืขื“ื•ื™ืขืจ 109.0062ms
maxEvenDividing2 ืจืขื–ื•ืœื˜ืึทื˜: 16777214 ื’ืขื“ื•ื™ืขืจ 77.0044ms
maxEvenConjunction ืจืขื–ื•ืœื˜ืึทื˜: 16777214 ื’ืขื“ื•ื™ืขืจ 109.0063ms
maxEvenConjunction2 ืจืขื–ื•ืœื˜ืึทื˜: 16777214 ื’ืขื“ื•ื™ืขืจ 77.0044ms

ืžืึทืงืกื™ืžื•ื ืฉื•ื•ืขืœ: 33554432
maxEven ื“ื™ื•ื•ื™ื“ื™ื ื’ ืจืขื–ื•ืœื˜ืึทื˜: 33554430 ื’ืขื“ื•ื™ืขืจ 113.0065ms
maxEvenDividing2 ืจืขื–ื•ืœื˜ืึทื˜: 33554430 ื’ืขื“ื•ื™ืขืจ 78.0045ms
maxEvenConjunction ืจืขื–ื•ืœื˜ืึทื˜: 33554430 ื’ืขื“ื•ื™ืขืจ 110.0063ms
maxEvenConjunction2 ืจืขื–ื•ืœื˜ืึทื˜: 33554430 ื’ืขื“ื•ื™ืขืจ 80.0045ms

ืžืึทืงืกื™ืžื•ื ืฉื•ื•ืขืœ: 67108864
maxEven ื“ื™ื•ื•ื™ื“ื™ื ื’ ืจืขื–ื•ืœื˜ืึทื˜: 67108860 ื’ืขื“ื•ื™ืขืจ 112.0064ms
maxEvenDividing2 ืจืขื–ื•ืœื˜ืึทื˜: 67108860 ื’ืขื“ื•ื™ืขืจ 77.0044ms
maxEvenConjunction ืจืขื–ื•ืœื˜ืึทื˜: 67108860 ื’ืขื“ื•ื™ืขืจ 112.0064ms
maxEvenConjunction2 ืจืขื–ื•ืœื˜ืึทื˜: 67108860 ื’ืขื“ื•ื™ืขืจ 80.0046ms

ืžืึทืงืกื™ืžื•ื ืฉื•ื•ืขืœ: 134217728
maxEven ื“ื™ื•ื•ื™ื“ื™ื ื’ ืจืขื–ื•ืœื˜ืึทื˜: 134217726 ื’ืขื“ื•ื™ืขืจ 109.0063ms
maxEvenDividing2 ืจืขื–ื•ืœื˜ืึทื˜: 134217726 ื’ืขื“ื•ื™ืขืจ 78.0044ms
maxEvenConjunction ืจืขื–ื•ืœื˜ืึทื˜: 134217726 ื’ืขื“ื•ื™ืขืจ 114.0065ms
maxEvenConjunction2 ืจืขื–ื•ืœื˜ืึทื˜: 134217726 ื’ืขื“ื•ื™ืขืจ 81.0047ms

ืžืึทืงืกื™ืžื•ื ืฉื•ื•ืขืœ: 268435456
maxEven ื“ื™ื•ื•ื™ื“ื™ื ื’ ืจืขื–ื•ืœื˜ืึทื˜: 268435446 ื’ืขื“ื•ื™ืขืจ 111.0064ms
maxEvenDividing2 ืจืขื–ื•ืœื˜ืึทื˜: 268435446 ื’ืขื“ื•ื™ืขืจ 79.0045ms
maxEvenConjunction ืจืขื–ื•ืœื˜ืึทื˜: 268435446 ื’ืขื“ื•ื™ืขืจ 114.0065ms
maxEvenConjunction2 ืจืขื–ื•ืœื˜ืึทื˜: 268435446 ื’ืขื“ื•ื™ืขืจ 79.0045ms

ืžืึทืงืกื™ืžื•ื ืฉื•ื•ืขืœ: 536870912
maxEven ื“ื™ื•ื•ื™ื“ื™ื ื’ ืจืขื–ื•ืœื˜ืึทื˜: 536870910 ื’ืขื“ื•ื™ืขืจ 107.0062ms
maxEvenDividing2 ืจืขื–ื•ืœื˜ืึทื˜: 536870910 ื’ืขื“ื•ื™ืขืจ 76.0043ms
maxEvenConjunction ืจืขื–ื•ืœื˜ืึทื˜: 536870910 ื’ืขื“ื•ื™ืขืจ 109.0062ms
maxEvenConjunction2 ืจืขื–ื•ืœื˜ืึทื˜: 536870910 ื’ืขื“ื•ื™ืขืจ 80.0046ms

ืื™ืš ืงืขืŸ ื ื™ืฉื˜ ื’ืขืคึฟื™ื ืขืŸ ืึท ืงืœืึธืจ ื“ืขืจืงืœืขืจื•ื ื’ ื•ื•ืึธืก ื“ื™ Go ืงืึทืžืคึผื™ื™ืœืขืจ ืงืขืŸ ื ื™ืฉื˜ ืึทืคึผื˜ืึทืžื™ื™ื– ื“ื™ ืงืึธื“ ืื•ืŸ ืฉื˜ืขื ื“ื™ืง ื˜ืฉืขืงืก ื“ื™ ืจื’ืข ืฆื•ืฉื˜ืึทื ื“, ืืคื™ืœื• ืื•ื™ื‘ ื“ืขืจ ืขืจืฉื˜ืขืจ ืื™ื– ืคืึทืœืฉ. ืึธื“ืขืจ ืืคึฟืฉืจ ืžื™ื™ืŸ ืื•ื™ื’ืŸ ื–ืขื ืขืŸ ื ืึธืจ ื‘ืœืขืจื™ ืื•ืŸ ืื™ืš ื˜ืึธืŸ ื ื™ื˜ ื–ืขืŸ ืงื™ื™ืŸ ืงืœืึธืจ ื•ื•ื™ ื“ืขืจ ื˜ืึธื’ ื’ืจื™ื™ึทื–? ืึธื“ืขืจ ื˜ืึธืŸ ืื™ืจ ื“ืึทืจืคึฟืŸ ืฆื• ืฆื•ืฉื˜ืขืœืŸ ืขื˜ืœืขื›ืข ืกืคึผืขืฆื™ืขืœ ื™ื ืกื˜ืจืึทืงืฉืึทื ื– ืฆื• ื“ื™ ืงืึทืžืคึผื™ื™ืœืขืจ? ืื™ืš ื•ื•ืึธืœื˜ ื–ื™ื™ืŸ ืฆื•ืคืจื™ื“ืŸ ืคึฟืึทืจ ืคื™ืœื™ืง ื‘ืึทืžืขืจืงื•ื ื’ืขืŸ.

ืคึผืก: ื™ืึธ, ื ืึธืจ ืคึฟืึทืจ ืฉืคึผืึทืก, ืื™ืš ืœื•ื™ืคืŸ ืขื ืœืขืš ื˜ืขืกืฅ ืื•ื™ืฃ Java 5 ืื•ืŸ Java 7/8 - ืึทืœืฅ ืื™ื– ืงืœืึธืจ, ื“ื™ ื“ื•ืจื›ืคื™ืจื•ื ื’ ืฆื™ื™ื˜ ืื™ื– ื“ื™ ื–ืขืœื‘ืข.

ืžืงื•ืจ: www.habr.com

ืœื™ื™ื’ืŸ ืึท ื‘ืึทืžืขืจืงื•ื ื’