Size bir rengin RGB değerleri verilir. Senin görevin basit: en basit tanımıyla, tonu hesaplamak için.
En yüksek, orta ve en düşük değere sahip kanalların X, Y, Z (kırmızı, yeşil veya mavi olan) ve değerlerinin x, y, z olduğunu söyleyin. Bu rengin tonu (h (X) -h (Y)) * (1 + (xy) / (xz)) / 2 + h (Y), burada:
h(red) = 0 (or 360 if one of X or Y is blue)
h(green) = 120
h(blue) = 240
Girdi, herhangi bir tutarlı düzende, tamamen eşit olmayan, 0 ile 255 arasında 3 tamsayıdan oluşur. Çıktı, tutarlı olması gerekmeyen yüzer veya tam sayılar ya da aşağı yuvarlanmış olabilir. Çıktının tamsayı kısmı 0 veya 360 ise, ikisinden birini yazdırabilirsiniz.
Bir görüntüyü işlerken olduğu gibi örtük dönüştürmeler de dahil olmak üzere, renk alanı dönüşümleri için yerleşikleri çağıramazsınız.
Bu kod golfü. En kısa kod kazanır.
Örnekler
Input: 0 182 255
Output: 197 (or 198)
Input: 127 247 103
Output: 110
Input: 0 0 1
Output: 240
Input: 255 165 245
Output: 307 (or 306)
Düzenle
Tam formülü izlemeniz gerekmez, ancak yalnızca yukarıdaki formüldeki aynı sonucu vermeniz gerekir. Formülün kendisiyle ilgili bazı cevapları da görmek isterim.