เจ—เฉ‹ เจตเจฟเฉฑเจš เจธเจผเจฐเจคเจพเจ‚ เจ…เจคเฉ‡ เจ‰เจนเจจเจพเจ‚ เจฆเฉ‡ เจ—เฉเจฃ

เจ•เฉ€ เจคเฉเจนเจพเจจเฉ‚เฉฐ เจฒเจ—เจฆเจพ เจนเฉˆ เจ•เจฟ เจฒเฉ‚เจช เจฆเฉ‡ เจ…เฉฐเจฆเจฐ เจชเจฐเฉ€เจ–เจฃ เจฆเฉ€เจ†เจ‚ เจธเจฅเจฟเจคเฉ€เจ†เจ‚ เจฒเจˆ เจ‡เจน เจฆเฉ‹ เจตเจฟเจ•เจฒเจช เจชเฉเจฐเจฆเจฐเจธเจผเจจ เจฆเฉ‡ เจฌเจฐเจพเจฌเจฐ เจนเจจ?

		
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

เจ—เฉ‹ เจตเจฟเฉฑเจš เจฎเฉ‡เจฐเจพ เจชเฉเจฐเฉ‹เจ—เจฐเจพเจฎเจฟเฉฐเจ— เจคเจœเจฐเจฌเจพ เจฌเจนเฉเจค เจตเจฟเจ†เจชเจ• เจจเจนเฉ€เจ‚ เจนเฉˆ, เจธเจฟเจฐเจซ เจกเฉ‡เจข เจธเจพเจฒ เจคเฉ‹เจ‚ เจตเฉฑเจง, เจฎเฉˆเจ‚ เจ‡เจธเจจเฉ‚เฉฐ เจตเจฐเจคเจฟเจ†, เจนเจพเจฒเจพเจ‚เจ•เจฟ เจ…เจ•เจธเจฐ, เจชเจฐ เจชเฉ‚เจฐเฉ€ เจคเจฐเฉเจนเจพเจ‚ เจ‰เจชเจฏเฉ‹เจ—เฉ€ เจ‰เจฆเฉ‡เจธเจผเจพเจ‚ เจฒเจˆ (เจ เฉ€เจ• เจนเฉˆ, เจธเจผเจพเจ‡เจฆ เจ‡เฉฑเจ• เจ‰เฉฑเจš-เจฒเฉ‹เจก http เจธเฉ‡เจตเจพ เจจเจพเจฒ เจธเจฌเฉฐเจงเจค เจ‡เฉฑเจ• เจชเฉเจฐเฉ‹เจœเฉˆเจ•เจŸ เจจเฉ‚เฉฐ เจ›เฉฑเจก เจ•เฉ‡), เจ‡เจธ เจฒเจˆ เจฎเฉˆเจ‚ เจ‡เจธ เจฆเฉ‡ เจจเจพเจฒ เจธเจผเฉเจฐเฉ‚ เจ•เฉ€เจคเจพ. 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 เจคเฉ‹เจ‚ เจšเฉฑเจฒ เจฐเจนเฉ€ เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจ เจฆเฉเจ†เจฐเจพ เจนเจพเจธเจฒ เจ•เฉ€เจคเฉ€ เจฎเฉˆเจฎเฉ‹เจฐเฉ€ เจ”เจธเจคเจจ เจนเฉˆ เจฒเจ—เจญเจ— 813MB - เจ‡เจน เจจเจคเฉ€เจœเฉ‡ เจฆเฉ€ เจญเจฐเฉ‹เจธเฉ‡เจฏเฉ‹เจ—เจคเจพ เจจเฉ‚เฉฐ เจตเฉ€ เจชเฉเจฐเจญเจพเจตเจฟเจค เจ•เจฐเจฆเจพ เจนเฉˆ, เจคเฉเจนเจพเจจเฉ‚เฉฐ เจกเจฟเจธเจ• 'เจคเฉ‡ เจŸเฉˆเจธเจŸ เจ•เฉ‡เจธเจพเจ‚ เจจเฉ‚เฉฐ เจธเฉเจฐเฉฑเจ–เจฟเจ…เจค เจ•เจฐเจจ เจ…เจคเฉ‡ เจนเจฐเฉ‡เจ• เจฅเฉเจฐเฉˆเจธเจผเจนเฉ‹เจฒเจก เจฒเจˆ เจธเจพเจฐเฉ‡ เจŸเฉˆเจธเจŸเจพเจ‚ เจจเฉ‚เฉฐ เจ‡เฉฑเจ• เจฆเฉ‚เจœเฉ‡ เจคเฉ‹เจ‚ เจ…เจฒเฉฑเจ— เจ•เจฐเจจ เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉเฉฐเจฆเฉ€ เจนเฉˆเฅค

เจ…เจคเฉ‡ เจนเฉเจฃ, เจ‡เจธ เจฌเจพเจฐเฉ‡ เจธเฉ‹เจšเจฃเจพ เจ•เจฟ เจ‡เจน เจธเจญ เจ•เฉเจ เจ˜เฉฑเจŸเฉ‹-เจ˜เฉฑเจŸ เจฒเจพเจ—เจคเจพเจ‚ เจจเจพเจฒ เจ•เจฟเจตเฉ‡เจ‚ เจฒเจพเจ—เฉ‚ เจ•เจฐเจจเจพ เจนเฉˆ, เจฎเฉˆเจ‚ เจ†เจชเจฃเฉ‡ เจ†เจช เจนเฉ€ เจธเจฅเจฟเจคเฉ€ เจฆเฉ€ เจœเจพเจ‚เจš เจจเฉ‚เฉฐ เจ เฉ€เจ• เจ•เจฐเจฆเจพ เจนเจพเจ‚

		
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
maxEvenDivding เจจเจคเฉ€เจœเจพ: 126 เจฎเจฟเจ†เจฆ 116.0066ms
maxEvenDiving2 เจจเจคเฉ€เจœเจพ: 126 เจฎเจฟเจ†เจฆ 79.0045ms
maxEvenConjunction เจจเจคเฉ€เจœเจพ: 126 เจฎเจฟเจ†เจฆ 114.0065ms
maxEvenConjunction2 เจจเจคเฉ€เจœเจพ: 126 เจฎเจฟเจ†เจฆ 83.0048ms

เจ…เจงเจฟเจ•เจคเจฎ เจฅเฉเจฐเฉˆเจธเจผเจนเฉ‹เจฒเจก: 256
maxEvenDivding เจจเจคเฉ€เจœเจพ: 254 เจฎเจฟเจ†เจฆ 111.0063ms
maxEvenDiving2 เจจเจคเฉ€เจœเจพ: 254 เจฎเจฟเจ†เจฆ 77.0044ms
maxEvenConjunction เจจเจคเฉ€เจœเจพ: 254 เจฎเจฟเจ†เจฆ 110.0063ms
maxEvenConjunction2 เจจเจคเฉ€เจœเจพ: 254 เจฎเจฟเจ†เจฆ 80.0046ms

เจ…เจงเจฟเจ•เจคเจฎ เจฅเฉเจฐเฉˆเจธเจผเจนเฉ‹เจฒเจก: 512
maxEvenDivding เจจเจคเฉ€เจœเจพ: 510 เจฎเจฟเจ†เจฆ 114.0066ms
maxEvenDiving2 เจจเจคเฉ€เจœเจพ: 510 เจฎเจฟเจ†เจฆ 80.0045ms
maxEvenConjunction เจจเจคเฉ€เจœเจพ: 510 เจฎเจฟเจ†เจฆ 110.0063ms
maxEvenConjunction2 เจจเจคเฉ€เจœเจพ: 510 เจฎเจฟเจ†เจฆ 80.0046ms

เจ…เจงเจฟเจ•เจคเจฎ เจฅเฉเจฐเฉˆเจธเจผเจนเฉ‹เจฒเจก: 1024
maxEvenDivding เจจเจคเฉ€เจœเจพ: 1022 เจฎเจฟเจ†เจฆ 109.0063ms
maxEvenDiving2 เจจเจคเฉ€เจœเจพ: 1022 เจฎเจฟเจ†เจฆ 77.0044ms
maxEvenConjunction เจจเจคเฉ€เจœเจพ: 1022 เจฎเจฟเจ†เจฆ 111.0063ms
maxEvenConjunction2 เจจเจคเฉ€เจœเจพ: 1022 เจฎเจฟเจ†เจฆ 81.0047ms

เจ…เจงเจฟเจ•เจคเจฎ เจฅเฉเจฐเฉˆเจธเจผเจนเฉ‹เจฒเจก: 2048
maxEvenDivding เจจเจคเฉ€เจœเจพ: 2046 เจฎเจฟเจ†เจฆ 114.0065ms
maxEvenDiving2 เจจเจคเฉ€เจœเจพ: 2046 เจฎเจฟเจ†เจฆ 79.0045ms
maxEvenConjunction เจจเจคเฉ€เจœเจพ: 2046 เจฎเจฟเจ†เจฆ 113.0065ms
maxEvenConjunction2 เจจเจคเฉ€เจœเจพ: 2046 เจฎเจฟเจ†เจฆ 81.0046ms

เจ…เจงเจฟเจ•เจคเจฎ เจฅเฉเจฐเฉˆเจธเจผเจนเฉ‹เจฒเจก: 4096
maxEvenDivding เจจเจคเฉ€เจœเจพ: 4094 เจฎเจฟเจ†เจฆ 114.0065ms
maxEvenDiving2 เจจเจคเฉ€เจœเจพ: 4094 เจฎเจฟเจ†เจฆ 80.0046ms
maxEvenConjunction เจจเจคเฉ€เจœเจพ: 4094 เจฎเจฟเจ†เจฆ 111.0063ms
maxEvenConjunction2 เจจเจคเฉ€เจœเจพ: 4094 เจฎเจฟเจ†เจฆ 78.0045ms

เจ…เจงเจฟเจ•เจคเจฎ เจฅเฉเจฐเฉˆเจธเจผเจนเฉ‹เจฒเจก: 8192
maxEvenDivding เจจเจคเฉ€เจœเจพ: 8190 เจฎเจฟเจ†เจฆ 107.0062ms
maxEvenDiving2 เจจเจคเฉ€เจœเจพ: 8190 เจฎเจฟเจ†เจฆ 77.0044ms
maxEvenConjunction เจจเจคเฉ€เจœเจพ: 8190 เจฎเจฟเจ†เจฆ 111.0063ms
maxEvenConjunction2 เจจเจคเฉ€เจœเจพ: 8190 เจฎเจฟเจ†เจฆ 77.0044ms

เจ…เจงเจฟเจ•เจคเจฎ เจฅเฉเจฐเฉˆเจธเจผเจนเฉ‹เจฒเจก: 16384
maxEvenDivding เจจเจคเฉ€เจœเจพ: 16382 เจฎเจฟเจ†เจฆ 109.0063ms
maxEvenDiving2 เจจเจคเฉ€เจœเจพ: 16382 เจฎเจฟเจ†เจฆ 77.0044ms
maxEvenConjunction เจจเจคเฉ€เจœเจพ: 16382 เจฎเจฟเจ†เจฆ 108.0062ms
maxEvenConjunction2 เจจเจคเฉ€เจœเจพ: 16382 เจฎเจฟเจ†เจฆ 77.0044ms

เจ…เจงเจฟเจ•เจคเจฎ เจฅเฉเจฐเฉˆเจธเจผเจนเฉ‹เจฒเจก: 32768
maxEvenDivding เจจเจคเฉ€เจœเจพ: 32766 เจฎเจฟเจ†เจฆ 112.0064ms
maxEvenDiving2 เจจเจคเฉ€เจœเจพ: 32766 เจฎเจฟเจ†เจฆ 77.0044ms
maxEvenConjunction เจจเจคเฉ€เจœเจพ: 32766 เจฎเจฟเจ†เจฆ 109.0062ms
maxEvenConjunction2 เจจเจคเฉ€เจœเจพ: 32766 เจฎเจฟเจ†เจฆ 78.0045ms

เจ…เจงเจฟเจ•เจคเจฎ เจฅเฉเจฐเฉˆเจธเจผเจนเฉ‹เจฒเจก: 65536
maxEvenDivding เจจเจคเฉ€เจœเจพ: 65534 เจฎเจฟเจ†เจฆ 109.0062ms
maxEvenDiving2 เจจเจคเฉ€เจœเจพ: 65534 เจฎเจฟเจ†เจฆ 75.0043ms
maxEvenConjunction เจจเจคเฉ€เจœเจพ: 65534 เจฎเจฟเจ†เจฆ 109.0063ms
maxEvenConjunction2 เจจเจคเฉ€เจœเจพ: 65534 เจฎเจฟเจ†เจฆ 79.0045ms

เจ…เจงเจฟเจ•เจคเจฎ เจฅเฉเจฐเฉˆเจธเจผเจนเฉ‹เจฒเจก: 131072
maxEvenDivding เจจเจคเฉ€เจœเจพ: 131070 เจฎเจฟเจ†เจฆ 108.0061ms
maxEvenDiving2 เจจเจคเฉ€เจœเจพ: 131070 เจฎเจฟเจ†เจฆ 76.0044ms
maxEvenConjunction เจจเจคเฉ€เจœเจพ: 131070 เจฎเจฟเจ†เจฆ 110.0063ms
maxEvenConjunction2 เจจเจคเฉ€เจœเจพ: 131070 เจฎเจฟเจ†เจฆ 80.0046ms

เจ…เจงเจฟเจ•เจคเจฎ เจฅเฉเจฐเฉˆเจธเจผเจนเฉ‹เจฒเจก: 262144
maxEvenDivding เจจเจคเฉ€เจœเจพ: 262142 เจฎเจฟเจ†เจฆ 110.0063ms
maxEvenDiving2 เจจเจคเฉ€เจœเจพ: 262142 เจฎเจฟเจ†เจฆ 76.0044ms
maxEvenConjunction เจจเจคเฉ€เจœเจพ: 262142 เจฎเจฟเจ†เจฆ 107.0061ms
maxEvenConjunction2 เจจเจคเฉ€เจœเจพ: 262142 เจฎเจฟเจ†เจฆ 78.0044ms

เจ…เจงเจฟเจ•เจคเจฎ เจฅเฉเจฐเฉˆเจธเจผเจนเฉ‹เจฒเจก: 524288
maxEvenDivding เจจเจคเฉ€เจœเจพ: 524286 เจฎเจฟเจ†เจฆ 109.0062ms
maxEvenDiving2 เจจเจคเฉ€เจœเจพ: 524286 เจฎเจฟเจ†เจฆ 78.0045ms
maxEvenConjunction เจจเจคเฉ€เจœเจพ: 524286 เจฎเจฟเจ†เจฆ 109.0062ms
maxEvenConjunction2 เจจเจคเฉ€เจœเจพ: 524286 เจฎเจฟเจ†เจฆ 80.0046ms

เจ…เจงเจฟเจ•เจคเจฎ เจฅเฉเจฐเฉˆเจธเจผเจนเฉ‹เจฒเจก: 1048576
maxEvenDivding เจจเจคเฉ€เจœเจพ: 1048574 เจฎเจฟเจ†เจฆ 109.0063ms
maxEvenDiving2 เจจเจคเฉ€เจœเจพ: 1048574 เจฎเจฟเจ†เจฆ 80.0045ms
maxEvenConjunction เจจเจคเฉ€เจœเจพ: 1048574 เจฎเจฟเจ†เจฆ 114.0066ms
maxEvenConjunction2 เจจเจคเฉ€เจœเจพ: 1048574 เจฎเจฟเจ†เจฆ 78.0044ms

เจ…เจงเจฟเจ•เจคเจฎ เจฅเฉเจฐเฉˆเจธเจผเจนเฉ‹เจฒเจก: 2097152
maxEvenDivding เจจเจคเฉ€เจœเจพ: 2097150 เจฎเจฟเจ†เจฆ 111.0064ms
maxEvenDiving2 เจจเจคเฉ€เจœเจพ: 2097150 เจฎเจฟเจ†เจฆ 79.0045ms
maxEvenConjunction เจจเจคเฉ€เจœเจพ: 2097150 เจฎเจฟเจ†เจฆ 112.0064ms
maxEvenConjunction2 เจจเจคเฉ€เจœเจพ: 2097150 เจฎเจฟเจ†เจฆ 77.0044ms

เจ…เจงเจฟเจ•เจคเจฎ เจฅเฉเจฐเฉˆเจธเจผเจนเฉ‹เจฒเจก: 4194304
maxEvenDivding เจจเจคเฉ€เจœเจพ: 4194302 เจฎเจฟเจ†เจฆ 111.0063ms
maxEvenDiving2 เจจเจคเฉ€เจœเจพ: 4194302 เจฎเจฟเจ†เจฆ 78.0045ms
maxEvenConjunction เจจเจคเฉ€เจœเจพ: 4194302 เจฎเจฟเจ†เจฆ 111.0063ms
maxEvenConjunction2 เจจเจคเฉ€เจœเจพ: 4194302 เจฎเจฟเจ†เจฆ 77.0044ms

เจ…เจงเจฟเจ•เจคเจฎ เจฅเฉเจฐเฉˆเจธเจผเจนเฉ‹เจฒเจก: 8388608
maxEvenDivding เจจเจคเฉ€เจœเจพ: 8388606 เจฎเจฟเจ†เจฆ 109.0062ms
maxEvenDiving2 เจจเจคเฉ€เจœเจพ: 8388606 เจฎเจฟเจ†เจฆ 78.0045ms
maxEvenConjunction เจจเจคเฉ€เจœเจพ: 8388606 เจฎเจฟเจ†เจฆ 114.0065ms
maxEvenConjunction2 เจจเจคเฉ€เจœเจพ: 8388606 เจฎเจฟเจ†เจฆ 78.0045ms

เจ…เจงเจฟเจ•เจคเจฎ เจฅเฉเจฐเฉˆเจธเจผเจนเฉ‹เจฒเจก: 16777216
maxEvenDivding เจจเจคเฉ€เจœเจพ: 16777214 เจฎเจฟเจ†เจฆ 109.0062ms
maxEvenDiving2 เจจเจคเฉ€เจœเจพ: 16777214 เจฎเจฟเจ†เจฆ 77.0044ms
maxEvenConjunction เจจเจคเฉ€เจœเจพ: 16777214 เจฎเจฟเจ†เจฆ 109.0063ms
maxEvenConjunction2 เจจเจคเฉ€เจœเจพ: 16777214 เจฎเจฟเจ†เจฆ 77.0044ms

เจ…เจงเจฟเจ•เจคเจฎ เจฅเฉเจฐเฉˆเจธเจผเจนเฉ‹เจฒเจก: 33554432
maxEvenDivding เจจเจคเฉ€เจœเจพ: 33554430 เจฎเจฟเจ†เจฆ 113.0065ms
maxEvenDiving2 เจจเจคเฉ€เจœเจพ: 33554430 เจฎเจฟเจ†เจฆ 78.0045ms
maxEvenConjunction เจจเจคเฉ€เจœเจพ: 33554430 เจฎเจฟเจ†เจฆ 110.0063ms
maxEvenConjunction2 เจจเจคเฉ€เจœเจพ: 33554430 เจฎเจฟเจ†เจฆ 80.0045ms

เจ…เจงเจฟเจ•เจคเจฎ เจฅเฉเจฐเฉˆเจธเจผเจนเฉ‹เจฒเจก: 67108864
maxEvenDivding เจจเจคเฉ€เจœเจพ: 67108860 เจฎเจฟเจ†เจฆ 112.0064ms
maxEvenDiving2 เจจเจคเฉ€เจœเจพ: 67108860 เจฎเจฟเจ†เจฆ 77.0044ms
maxEvenConjunction เจจเจคเฉ€เจœเจพ: 67108860 เจฎเจฟเจ†เจฆ 112.0064ms
maxEvenConjunction2 เจจเจคเฉ€เจœเจพ: 67108860 เจฎเจฟเจ†เจฆ 80.0046ms

เจ…เจงเจฟเจ•เจคเจฎ เจฅเฉเจฐเฉˆเจธเจผเจนเฉ‹เจฒเจก: 134217728
maxEvenDivding เจจเจคเฉ€เจœเจพ: 134217726 เจฎเจฟเจ†เจฆ 109.0063ms
maxEvenDiving2 เจจเจคเฉ€เจœเจพ: 134217726 เจฎเจฟเจ†เจฆ 78.0044ms
maxEvenConjunction เจจเจคเฉ€เจœเจพ: 134217726 เจฎเจฟเจ†เจฆ 114.0065ms
maxEvenConjunction2 เจจเจคเฉ€เจœเจพ: 134217726 เจฎเจฟเจ†เจฆ 81.0047ms

เจ…เจงเจฟเจ•เจคเจฎ เจฅเฉเจฐเฉˆเจธเจผเจนเฉ‹เจฒเจก: 268435456
maxEvenDivding เจจเจคเฉ€เจœเจพ: 268435446 เจฎเจฟเจ†เจฆ 111.0064ms
maxEvenDiving2 เจจเจคเฉ€เจœเจพ: 268435446 เจฎเจฟเจ†เจฆ 79.0045ms
maxEvenConjunction เจจเจคเฉ€เจœเจพ: 268435446 เจฎเจฟเจ†เจฆ 114.0065ms
maxEvenConjunction2 เจจเจคเฉ€เจœเจพ: 268435446 เจฎเจฟเจ†เจฆ 79.0045ms

เจ…เจงเจฟเจ•เจคเจฎ เจฅเฉเจฐเฉˆเจธเจผเจนเฉ‹เจฒเจก: 536870912
maxEvenDivding เจจเจคเฉ€เจœเจพ: 536870910 เจฎเจฟเจ†เจฆ 107.0062ms
maxEvenDiving2 เจจเจคเฉ€เจœเจพ: 536870910 เจฎเจฟเจ†เจฆ 76.0043ms
maxEvenConjunction เจจเจคเฉ€เจœเจพ: 536870910 เจฎเจฟเจ†เจฆ 109.0062ms
maxEvenConjunction2 เจจเจคเฉ€เจœเจพ: 536870910 เจฎเจฟเจ†เจฆ 80.0046ms

เจฎเฉˆเจจเฉ‚เฉฐ เจธเจชเฉฑเจธเจผเจŸ เจตเจฟเจ†เจ–เจฟเจ† เจจเจนเฉ€เจ‚ เจฎเจฟเจฒเฉ€ เจ•เจฟ เจ—เฉ‹ เจ•เฉฐเจชเจพเจˆเจฒเจฐ เจ•เฉ‹เจก เจจเฉ‚เฉฐ เจ…เจจเฉเจ•เฉ‚เจฒ เจ•เจฟเจ‰เจ‚ เจจเจนเฉ€เจ‚ เจ•เจฐเจฆเจพ เจนเฉˆ เจ…เจคเฉ‡ เจนเจฎเฉ‡เจธเจผเจพเจ‚ เจฆเฉ‚เจœเฉ€ เจธเจผเจฐเจค เจฆเฉ€ เจœเจพเจ‚เจš เจ•เจฐเจฆเจพ เจนเฉˆ, เจญเจพเจตเฉ‡เจ‚ เจชเจนเจฟเจฒเฉ€ เจ—เจฒเจค เจนเฉˆ. เจœเจพเจ‚ เจนเฉ‹ เจธเจ•เจฆเจพ เจนเฉˆ เจ•เจฟ เจฎเฉ‡เจฐเฉ€เจ†เจ‚ เจ…เฉฑเจ–เจพเจ‚ เจงเฉเฉฐเจฆเจฒเฉ€เจ†เจ‚ เจนเจจ เจ…เจคเฉ‡ เจฎเฉˆเจจเฉ‚เฉฐ เจ•เฉ‹เจˆ เจธเจชเฉฑเจธเจผเจŸ เจ—เจฒเจคเฉ€ เจจเจœเจผเจฐ เจจเจนเฉ€เจ‚ เจ†เจ‰เจ‚เจฆเฉ€? เจœเจพเจ‚ เจ•เฉ€ เจคเฉเจนเจพเจจเฉ‚เฉฐ เจ•เฉฐเจชเจพเจˆเจฒเจฐ เจจเฉ‚เฉฐ เจ•เฉเจ เจ–เจพเจธ เจจเจฟเจฐเจฆเฉ‡เจธเจผ เจฆเฉ‡เจฃ เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉˆ? เจฎเฉˆเจจเฉ‚เฉฐ เจธเจฎเจเจฆเจพเจฐ เจŸเจฟเฉฑเจชเจฃเฉ€ เจฒเจˆ เจ–เฉเจธเจผเฉ€ เจนเฉ‹เจตเฉ‡เจ—เฉ€.

PS: เจนเจพเจ‚, เจ•เฉ‡เจตเจฒ เจฎเจœเจผเฉ‡ เจฒเจˆ, เจฎเฉˆเจ‚ เจœเจพเจตเจพ 5 เจ…เจคเฉ‡ เจœเจพเจตเจพ 7/8 'เจคเฉ‡ เจธเจฎเจพเจจ เจŸเฉˆเจธเจŸ เจšเจฒเจพเจ - เจธเจญ เจ•เฉเจ เจธเจชเฉฑเจธเจผเจŸ เจนเฉˆ, เจเจ—เจœเจผเฉ€เจ•เจฟเจŠเจธเจผเจจ เจฆเจพ เจธเจฎเจพเจ‚ เจ‡เฉฑเจ•เฉ‹ เจœเจฟเจนเจพ เจนเฉˆ.

เจธเจฐเฉ‹เจค: www.habr.com

เจ‡เฉฑเจ• เจŸเจฟเฉฑเจชเจฃเฉ€ เจœเฉ‹เฉœเฉ‹