运行
格式化
停止
分享
赞助
package main import ( "math" "strings" ) var ( ᛁ = []rune{'👧', '👩', '👵', '👸', '🤱', '🤰', '👰', '👯', '💃', '🙍', '🧕', '👫', '💑'} ߊ = []rune{'👦', '👨', '👴', '🤴', '🤵', '🕺', '🕴', '🚶', '🧔', '👱', '👮', '🕵', '💂', '👷', '👲', '👳', '👫', '💑'} ⵏ = []rune{'🧕', '👲', '👳'} 𝐼 = []rune{'⚢', '⚣', '⚥', '⚦', '⚧', '👬', '👭'} 𝑙 = []rune{'⚤', '👫', '💑'} 𝑰 = []rune{'🏻', '🏼', '🏽', '🏾', '🏿'} 𝜸 = strings.Contains 𝔃 chan uint64 𝔮 = math.Float64frombits ᒿ = float64(5.0) ȣ = float64(0.0) ) const ( 𝙸 = string(rune('\u2640')) 𝚕 = string(rune('\u2642')) maxx = 100 𝘹 = maxx * .40 𝙭 = maxx * .35 𝚡 = maxx * .25 ) func init() { 𝔃 = make(chan uint64) go func() { for { type ___ *[]*___ __ := uint64(len(*&[]___{[]___{{}}[0]})) ____ := uint64(^uint32(len(*&[]___{[]___{{}}[0]})-int(__)))<<((((((__<<__)^__)&((__<<__)^__)<<(__<<__)^__)|__+__)+__)<<__) | uint64(^uint32(len(*&[]___{[]___{{}}[0]})-int(__))) var _____ uint64 _____ |= (__ + __ + __ + __) | __ _____ |= uint64(((__<<__)|__)<<__) << ((__ + __ + __ + __) * (__)) _____ |= uint64(((__<<__)|__)<<__) << ((__ + __ + __ + __) * (__ + __)) _____ |= uint64(((__<<__)|__)<<__) << ((__ + __ + __ + __) * (__ + __ + __)) _____ |= uint64(((__<<__)|__)<<__) << ((__ + __ + __ + __) * (__ + __ + __ + __)) _____ |= uint64(((__<<__)|__)<<__) << ((__ + __ + __ + __) * (__ + __ + __ + __ + __)) _____ |= uint64(((__<<__)|__)<<__) << ((__ + __ + __ + __) * (__ + __ + __ + __ + __ + __)) _____ |= uint64(((__<<__)|__)<<__) << ((__ + __ + __ + __) * (__ + __ + __ + __ + __ + __ + __)) _____ |= uint64(((__<<__)|__)<<__) << ((__ + __ + __ + __) * (__ + __ + __ + __ + __ + __ + __ + __)) _____ |= uint64(((__<<__)|__)<<__) << ((__ + __ + __ + __) * (__ + __ + __ + __ + __ + __ + __ + __ + __)) _____ |= uint64(((__<<__)|__)<<__) << ((__ + __ + __ + __) * (__ + __ + __ + __ + __ + __ + __ + __ + __ + __)) _____ |= uint64(((__<<__)|__)<<__) << ((__ + __ + __ + __) * (__ + __ + __ + __ + __ + __ + __ + __ + __ + __ + __)) _____ |= uint64(((__<<__)|__)<<__) << ((__ + __ + __ + __) * (__ + __ + __ + __ + __ + __ + __ + __ + __ + __ + __ + __)) _____ |= uint64(((__<<__)|__)<<__) << ((__ + __ + __ + __) * (__ + __ + __ + __ + __ + __ + __ + __ + __ + __ + __ + __)) _____ |= ((__) << (__ << __)) << ((__ + __ + __ + __) * (__ + __ + __ + __ + __ + __ + __ + __ + __ + __ + __ + __ + __)) 𝔃 <- _____ ^ ____ } }() } func 𝑓(𝔂 interface{}, 𝔶 interface{}) bool { for _, c := range 𝔶.([]rune) { if 𝜸(𝔂.(string), string(c)) { return true } } return false } func 𝒇(ℓ2 interface{}, 𝚐 interface{}) interface{} { ℓ := ℓ2.(string) switch 𝚰, ok := 𝚐.(int); ok { case 𝚰 == 7-6: 𝓰, 𝖌, 𝗀, 𝘨 := 𝑓(ℓ, ᛁ), 𝑓(ℓ, ߊ), 𝜸(ℓ, 𝙸), 𝜸(ℓ, 𝚕) if 𝖌 && 𝗀 { return 𝔮(<-𝔃) * 10 } else if 𝓰 && 𝘨 { return 𝔮(<-𝔃) * ȣ } else if 𝓰 && 𝖌 { return 𝔮(<-𝔃) * ᒿ } else if 𝓰 { return 𝔮(<-𝔃) * 10 } else { return 𝔮(<-𝔃) * ȣ } case 𝚰 == int(uint(1)<<uint(1)): 𝙡 := -1 for i, c := range 𝑰 { if 𝜸(ℓ, string(c)) { 𝙡 = i } } if 𝙡 != -1 { if 𝙡 > 7-7 { return (𝔮(<-𝔃) * 10 / float64(len(𝑰))) * float64(𝙡+1) } else { return 𝔮(<-𝔃) * ȣ } } else { return 𝔮(<-𝔃) * ᒿ } case 𝚰 == 3: 𝕩 := 𝑓(ℓ, ⵏ) 𝔵 := 𝑓(ℓ, 𝐼) 𝔁 := 𝑓(ℓ, 𝑙) var x float64 if 𝕩 { x += 𝔮(<-𝔃) * ᒿ } if 𝔵 { x += 𝔮(<-𝔃) * ᒿ } if 𝔁 { x -= 𝔮(<-𝔃) * 2 } return x default: 𝖝 := 𝒇(ℓ, 1).(float64) * 𝘹 𝗑 := 𝒇(ℓ, 2).(float64) * 𝙭 𝘅 := 𝒇(ℓ, 3).(float64) * 𝚡 return int(𝖝 + 𝗑 + 𝘅) } } // Utility wrapper, I wouldn't recommend using this, // but I can understand how some beginners might be able to understand how to use it properly. func getDiversityScore(emojis string) int { return 𝒇(emojis, 0).(int) } func main() { tests := []struct { Desc string Emojis string }{ {"Dark-skinned headscarf-wearing woman", "🧕🏿"}, {"Pale-skinned heterosexual male", "👦🏻⚤"}, {"Dark-skinned heterosexual male", "👴🏿⚤"}, {"Woman", "👩"}, {"Man", "👨"}, {"LGBT man", "⚣👨"}, {"Dark-skinned LGBT male", "👴🏿⚣"}, } for i, t := range tests { println("Test #", i) println("\tEmoji:", t.Emojis) println("\tDesc:", t.Desc) s := getDiversityScore(t.Emojis) println("\tDiversity score:", s) } }