Cung hoàng đạo hiện tại là gì?


15

Hiển thị biểu tượng cảm xúc của cung hoàng đạo phía đông của thời gian nhất định, theo quốc gia nhất định.

Cung hoàng đạo phía đông là một sơ đồ phân loại chỉ định một con vật và các thuộc tính có uy tín của nó cho mỗi năm trong một chu kỳ 12 năm lặp lại. Nó cũng được gán cho giờ.

Quy tắc:

  1. Quốc gia phải được cung cấp dưới dạng mã ISO 3166-1 alpha-3. Danh sách ở đây.

  2. Các định dạng đầu vào phải như thế này : <ISO code> HH:MM. Đầu vào phải là một chuỗi đơn. Bất kỳ đầu vào nào không phù hợp với định dạng này đều rơi vào tình huống không quan tâm .

  3. Nếu thời gian đã cho nằm trong ranh giới của biểu đồ được đưa ra dưới đây, bạn có thể xuất cung hoàng đạo.

  4. Vì đây là một mã golf, mã ngắn nhất tính bằng byte sẽ thắng.

Các cung hoàng đạo:

Các cung hoàng đạo không có quốc gia được chỉ định là mặc định.

  • Cung hoàng đạo đầu tiên (23:00 - 01:00):

    • Chuột (U + 1F400)
    • Chuột (U + 1F401) ở Ba Tư (IRN)
  • Cung hoàng đạo thứ hai (01:00 - 03:00):

    • Sửu U (U + 1F402)
    • Trâu nước (U + 1F403) tại Việt Nam (SARL)
    • Bò 🐄 (U + 1F404) ở Ba Tư
  • Cung hoàng đạo thứ ba (03:00 - 05:00):

    • Hổ 🐅 (U + 1F405)
    • Con báo (U + 1F406) ở Ba Tư
  • Cung hoàng đạo thứ tư (05:00 - 07:00):

    • Thỏ (U + 1F407)
    • Cát (U + 1F408) tại Việt Nam
  • Cung hoàng đạo thứ năm (07:00 - 09:00):

    • Rồng (U + 1F409)
    • Cá sấu (U + 1F40A) / Cá voi (U + 1F40B) ở Ba Tư (bạn có thể xuất một trong hai)
    • Ốc sên (U + 1F40C) ở Kazakhstan (KAZ)
  • Cung hoàng đạo thứ sáu (09:00 - 11:00):

    • Rắn (U + 1F40D)
  • Cung hoàng đạo thứ bảy (11:00 - 13:00):

    • Ngựa (U + 1F40E)
  • Cung hoàng đạo thứ tám (13:00 - 15:00):

    • Ram (U + 1F40F)
    • Dê (U + 1F410) tại Việt Nam
    • Cừu (U + 1F411) ở Ba Tư
  • Cung hoàng đạo thứ chín (15:00 - 17:00):

    • Khỉ (U + 1F412)
  • Cung hoàng đạo thứ mười (17:00 - 19:00):

    • Dậu (U + 1F413)
    • Gà (U + 1F414) ở Ba Tư
  • Cung hoàng đạo thứ mười một (19:00 - 21:00):

    • Chó (U + 1F415)
  • Cung hoàng đạo thứ mười hai (21:00 - 23:00):

    • Lợn (U + 1F416)
    • Heo rừng (U + 1F417) tại Nhật Bản (JPN)
    • Voi (U + 1F418) ở Thái Lan (THA)

Các điểm mã là từ đây.

Thí dụ:

Cho đầu vào sau:

KOR 19:42

Đầu ra phải là:

🐕

Thú vị - Tôi biết những chiếc xe đạp này cứ sau 12 năm. Tôi chưa bao giờ nghe về chu kỳ 24 giờ. Tuy nhiên, thách thức được chỉ định rõ ràng khi nó đứng. "Sửa" đến 12 năm có thể dẫn đến nhầm lẫn.
Cấp sông St

Có chuyện gì với Ba Tư có nhiều phiên bản khác nhau? Bất kỳ lý do cụ thể?
caird coinheringaahing

@cairdcoinheringaahing Tôi không phải là người Iran, vì vậy tôi không biết.
Danielu NDos

1
@cairdcoinheringaahing một nhà thơ Ba Tư cũ và từ điển nhà văn gọi là "Abou Nasr Farahi" hay trong tiếng Ba Tư "ابونصر_فراهی" có một bài thơ ngắn trong một trong những cuốn sách của ông, mà tên những con vật theo thứ tự trên nó và do đó họ là những động vật được sử dụng trong Iran cho cứ sau 12 năm Anh ấy không phải là một nhà thơ rất nổi tiếng, vì vậy không có nhiều tài nguyên tiếng Anh có thể được tìm thấy về anh ấy, nhưng tôi đã kiểm tra văn bản cuốn sách của anh ấy bằng tiếng Ba Tư và nhà thơ đã ở đó.
Đêm 2

Câu trả lời:



11

JavaScript (ES6),  168 165 160 157  155 byte

Đã lưu 4 byte nhờ @Neil

Trả lại con cá sấu cho cung hoàng đạo thứ 5 ở Ba Tư.

([a,b,c,,d,e])=>String.fromCodePoint(127998-~'00111321211'[k=-~(d+e)%24>>1]+k*2-~(1e12+{IRN:121010020100,VNM:1010001e4,KAZ:3e7,JPN:1,THA:2}[a+b+c]+a)[k+1])

Hãy thử trực tuyến!

Làm sao?

kh

k= =((h+1)mod24)/2

xkbk

bk= =2k+xk

128000+bk+ckck

Điều này được tóm tắt trong bảng sau:

   k =  |   0 |   1 |   2 |   3 |   4 |   5 |   6 |   7 |   8 |   9 |  10 |  11
--------+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----
  b(k)  |  +0 |  +2 |  +5 |  +7 |  +9 | +13 | +14 | +15 | +18 | +19 | +21 | +22
  = 2k  |   0 |   2 |   4 |   6 |   8 |  10 |  12 |  14 |  16 |  18 |  20 |  22
  +x(k) |   0 |   0 |   1 |   1 |   1 |   3 |   2 |   1 |   2 |   1 |   1 |   0
--------+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----
   IRN  |  +1 |  +2 |  +1 |     |  +1 |     |     |  +2 |     |  +1 |     |
   VNM  |     |  +1 |     |  +1 |     |     |     |  +1 |     |     |     |
   KAZ  |     |     |     |     |  +3 |     |     |     |     |     |     |
   JPN  |     |     |     |     |     |     |     |     |     |     |     |  +1
   THA  |     |     |     |     |     |     |     |     |     |     |     |  +2

Đã bình luận

( [ a, b, c,               // a,b,c = country code
    ,                      // the space is ignored
    d, e ] ) =>            // d,e = hour (minutes are ignored)
  String.fromCodePoint(    // return the character whose code point is:
    127998                 //   127998
    -~'00111321211'[       //   + 1 + x(k)
      k = -~(d + e)        //   where k is defined as:
          % 24 >> 1        //     floor(((hour + 1) mod 24) / 2)
    ] +                    //
    k * 2                  //   + 2k
    -~(                    //   + 1 + the country offset
      1e12 +               //     each pattern being encoded as 10**12
      {                    //     + a specific value, leading to:
        IRN: 121010020100, //       IRN -> 1121010020100
        VNM: 1010001e4,    //       VNM -> 1010100010000
        KAZ: 3e7,          //       KAZ -> 1000030000000
        JPN: 1,            //       JPN -> 1000000000001
        THA: 2             //       THA -> 1000000000002
      }[a + b + c]         //     according to the country code
      + a                  //     coerced to a string
    )[k + 1]               //   extract the correct offset for this zodiac
  )                        //   (gives something NaN-ish for the other countries)

1
String.fromCodePoint(128e3+~~tiết kiệm 4 byte.
Neil

@Neil Cảm ơn! :)
Arnauld

5

PHP , 185 ký tự, 263 byte

Cảm ơn Danielu NDos đã sửa lỗi.

fn($i)=>strlen($b=[[🐀,🐁],[🐂,🐄,🐃],[🐅,🐆],[🐇,🐇,🐈],[🐉,🐊,🐉,🐌],🐍,🐎,[🐏,🐑,🐐],🐒,[🐓,🐔],🐕,[🐖,4=>🐗,5=>🐘]][(($t=$i[4].$i[5])%2?$t+1:$t)%24/2])?$b:$b[strpos(____IRN_VNM_KAZ_JPN_THA,substr($i,0,3))/4]

Hãy thử trực tuyến!

Chỉ cần một bản đồ mảng đơn giản, nên có những cách tốt hơn để chơi golf này. Phần giờ của thời gian đầu vào được chuyển đổi thành số chẵn (0-22) và sau đó nó được chia cho 2 để lấy chỉ số mảng 0 đến 11 trong ánh xạ. Khoảng thời gian với các trường hợp đặc biệt là một mảng con có chỉ số 0 được ánh xạ tới dấu hiệu mặc định và 1-5 được ánh xạ tới dấu hiệu đặc biệt cho IRN, Praha, KAZ, JPN và THA theo cùng một thứ tự.


4

Than , 73 byte

℅⁺×¹²⁸φΣE⮌…⪪”&↖∨∧h↘X⁷↘H⪫³Jºρ⁷s,⟲⌈3A‖Cc>χ§₂25:×” ⊕﹪÷⊕I…粦²¦¹²⊕⎇κ÷Lι³⌕⪪ι³θ

Hãy thử trực tuyến! Liên kết là phiên bản dài dòng của mã. Giải thích:

℅⁺×¹²⁸φ

0x1F400= 128.000 ( φđược xác định trước là 1.000). Điều này được thêm vào tổng của phần còn lại của biểu thức và được chuyển đổi thành một ký tự để in ngầm.

⊕﹪÷⊕I…粦²¦¹²

Giờ được trích xuất và chuyển đổi thành một chỉ số hoàng đạo.

…⪪”&↖∨∧h↘X⁷↘H⪫³Jºρ⁷s,⟲⌈3A‖Cc>χ§₂25:×” ...

Chuỗi nén IRN VNMIRN IRN VNM IRNIRNKAZ VNMIRN IRN JPNTHAđược phân chia trên các khoảng trắng và được cắt theo chiều dài được đưa ra bởi chỉ mục đó.

ΣE⮌...

Các mảng sau đó được đảo ngược, ánh xạ và tổng hợp.

⊕⎇κ÷Lι³⌕⪪ι³θ

Đối với phần tử đầu tiên, chuỗi được chia thành các nhóm gồm ba ký tự và chỉ số quốc gia được lấy, nếu không, số lượng quốc gia được tính. Đối với phần tử đầu tiên, chỉ mục cần được chuyển đổi từ lập chỉ mục 0 sang lập chỉ mục 1 trong khi đối với các phần tử khác, kết quả cần phải được tăng lên cho quốc gia mặc định, vì vậy điều này được thực hiện bên ngoài bộ ba.


Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.