90 ডিগ্রীতে ঘন্টা আউটপুট


26

আজ বাচ্চাদের সাথে খেলতে গিয়ে আমি লক্ষ্য করেছি যে পার্কে দৃশ্যত একটি সহজ খেলনা একটি চ্যালেঞ্জ লুকিয়েছিল।

ঘড়ি

চাকাটির একটি ত্রিভুজ রয়েছে যা একটি সংখ্যার দিকে নির্দেশ করে, তবে তিনটি বৃত্তও রয়েছে যা প্রথম থেকে 90 ডিগ্রি পর্যন্ত সংখ্যাগুলিকে নির্দেশ করে। তাই:

চ্যালেঞ্জ (সত্যই সহজ)

যেকোন গ্রহণযোগ্য আকারে 1 এবং 12 (ত্রিভুজ দ্বারা চিহ্নিত একটি) এর মধ্যে একটি পূর্ণসংখ্যা দেওয়া হয়, কোনও গ্রহণযোগ্য আকারে আউটপুট এবং বৃত্ত দ্বারা চিহ্নিত তিনটি সংখ্যার অর্ডার করুন (প্রতি 90 ডিগ্রি অনুসারে)।

পরীক্ষার মামলা

In       Out
1        4, 7, 10
2        5, 8, 11
3        6, 9, 12
4        7, 10, 1
5        8, 11, 2
6        9, 12, 3
7        10, 1, 4
8        11, 2, 5
9        12, 3, 6
10       1, 4, 7
11       2, 5, 8
12       3, 6, 9

এটি , তাই প্রতিটি ভাষার পক্ষে সংক্ষিপ্ততম কোডটি জয় পেতে পারে!


আমরা কি ইনপুটটিকে 0 সূচকযুক্ত হিসাবে নিতে পারি? লাইক 0 -> 4, 7, 10,?
মিঃ এক্সকোডার 21

8
@ মিঃ এক্সকোডার দুঃখিত, এবার আমি না বলব।
চার্লি 21

3
আপনার বাচ্চাদের জড়িত কিছু ক্রিয়াকলাপের ভিত্তিতে এটি কি এখন চতুর্থ চ্যালেঞ্জ? : পি
ফ্লিপট্যাক

3
@ ফ্লিপট্যাক সম্ভবত আমাদের একটি অনুপ্রাণিত-বাচ্চাদের ট্যাগ
লাগবে

6
@ ফ্লিপট্যাক :-) তবে আমি আমার বেশিরভাগ অবসর সময় বাচ্চাদের সাথে কাটিয়েছি, অনুমান করি আমার অনুপ্রেরণা কোথা থেকে আসে ...
চার্লি

উত্তর:



9

জেলি , 8 বাইট

12Rṙ’m3Ḋ

একটি মোনাডিক লিঙ্ক একটি নম্বর নিয়ে এবং সংখ্যার একটি তালিকা ফেরত দেয়।

এটি অনলাইন চেষ্টা করুন! বা সমস্ত ক্ষেত্রে দেখুন

কিভাবে?

12Rṙ’m3Ḋ - Link: number, n   e.g. 5
12       - literal twelve         12
  R      - range                  [1,2,3,4,5,6,7,8,9,10,11,12]
    ’    - decrement n            4
   ṙ     - rotate left            [5,6,7,8,9,10,11,12,1,2,3,4]
      3  - literal three          3
     m   - modulo slice           [5,8,11,2]
       Ḋ - dequeue                [8,11,2]

বিকল্প সমাধান: 12Rṙm-3Ḋ(বিপরীত ক্রমে আউটপুট)
ব্যবহারকারী 202729


6

এমএটিএল , 9 বাইট

I:I*+12X\

এটি অনলাইন চেষ্টা করুন!

ব্যাখ্যা

4এক্সপ্লে হিসাবে ইনপুট বিবেচনা করুন ।

I:     % Push [1 2 3]
       % STACK: [1 2 3]
I      % Push 3
       % STACK: [1 2 3], 3
*      % Multiply, element-wise
       % STACK: [3 6 9]
+      % Add implicit input, element-wise
       % STACK: [7 10 13]
12     % Push 12
X\     % 1-based modulus. Implicit display
       % STACK: [7 10 1]


5

এপিএল + উইন, 13 বাইটস

(⎕⌽⍳12)[3×⍳3]

ব্যাখ্যা:

⎕ Prompt for screen input of indicated time t

⍳12 Create a vector of integers from 1 to 12

⌽ Rotate the vector by t elements front to back

[3×⍳3] Select 3rd, 6th and 9th elements.

বেশ ঝরঝরে। যে সূচীবদ্ধ ঘূর্ণন পদ্ধতির আমি
ঊরীয়েল


4

জাভাস্ক্রিপ্ট (ES6), 29 বাইট

অনুরূপ xnor এর উত্তর

n=>[2,5,8].map(k=>(n+k)%12+1)

ডেমো


আমি n=>[3,6,9].map(v=>(v+n)%12)তখন বুঝতে পেরেছিলাম যে এটি 12 নয়, 0 এ ফিরে আসে ...
ericw31415

@ এরিকউ ৩১৪১৫ আসল, আমার প্রথম পন্থা ছিল n=>[3,6,9].map(v=>(v+n)%12||12)(তবে এটি 31 বাইট)।
আর্নৌল্ড

4

অক্টাভা , 25 বাইট

@(x)[a=1:12 a](3+x:3:9+x)

এটি অনলাইন চেষ্টা করুন!

মোটামুটি সহজ বেনাম ফাংশন।

আমরা প্রথমে একটি অ্যারে তৈরি করি [1:12 1:12]- সুতরাং সম্পূর্ণ সংখ্যা সেটটির দুটি কপি। তারপরে আমরা সংখ্যার ইনপুটটি x+3, x+6, x+9কোথায়, এর মানগুলি নির্বাচন করতে ইনডেক্স করি x

অকটাভেভ 1-ইনডেক্সড, সুতরাং আমরা কেবল ইনপুটটির ভিত্তিতে অ্যারে উপাদানগুলি নির্বাচন করতে পারি (যদিও সত্য বলতে হবে 0-সূচকযুক্ত এখানে একই সংখ্যা বাইট ব্যবহার করবে)।

এটি অন্য পদ্ধতিতে অ্যারের দুটি অনুলিপি থাকাতে অন্যান্য উত্তরের সাথে স্বতন্ত্র এমন একটি পদ্ধতি ব্যবহার করে বলে মনে হচ্ছে, আমাদের সূচিগুলি মডুলো ব্যবহার করে মোড়তে হবে না।


খুব সুন্দর, তবে "বোরিং" মোড পদ্ধতির সংক্ষিপ্ততা! এটি অনলাইন চেষ্টা করুন!
জিউসেপ

@ জিউস্পে লওল, আমি নিশ্চিত যে আমি ব্যবহারের চেষ্টা করেছি modএবং এটি আরও ছোট করতে পারিনি। সাবাশ! একটি উত্তর হিসাবে পোস্ট নির্দ্বিধায়।
টম কার্পেন্টার

3

বেফুঞ্জ -৩৩, 20 19 18 বাইট

852<_@#:.+1%+66+&p

এটি অনলাইন চেষ্টা করুন!

ব্যাখ্যা

852                   Push 8, 5 and 2 onto the stack - the offsets we're going to add.
   <                  Reverse direction, and start the main loop.
852                   Push 2, 5, and 8 onto the stack, but we don't actually want these.
                 p    So we use a "put" operation to drop the top three values.
                &     Read the hour from stdin.
               +      Add it to the topmost offset.
         +1%+66       Mod 12 and add 1 to get it in the range 1 to 12.
        .             Then output the result to stdout.
    _@#:              Exit if the next offset is zero (i.e. nothing more on the stack).
   <                  Otherwise start the main loop again. 

এটি রেফারেন্স ইন্টারপ্রেটারের সাথে সম্পর্কিত আচরণের উপর নির্ভর করে: ফাইল-এর শেষে, &অপারেটরটি পড়ে শেষ মানটি প্রদান করে। এজন্য আমরা লুপের প্রতিটি পুনরাবৃত্তিতে স্টিডিন থেকে ঘন্টাটি নিরাপদে পুনরায় পড়তে পারি।


ঝরঝরে। আমি জানি &না যে
জো কিং

3
@ জোকিং টেকনিক্যালি এটি ইন্টারপ্রেটারে একটি বাগ, এর সাথে সম্পর্কিত আরও একটি পার্শ্ব-প্রতিক্রিয়া যা এক& ধরণের এক-অফ এলোমেলো সংখ্যা জেনারেটর হিসাবেও ব্যবহার করা যেতে পারে । এটি কম নির্ভরযোগ্য, যদিও এটি এটি তৈরি করতে ব্যবহৃত সংকলকের উপর নির্ভর করে। এটি এই মুহুর্তে টিআইও-তে কাজ করছে, তবে একটি সময় ছিল যখন ডেনিস জিসিসির বিভিন্ন সংস্করণে পরিবর্তিত হয়েছিল এবং আমরা সেই কার্যকারিতাটি কিছু সময়ের জন্য হারিয়ে ফেলেছিলাম।
জেমস হোল্ডারেন্স


2

জাপট, 11 বাইট

3ÆU±3 uC ªC

চেষ্টা করে দেখুন


ব্যাখ্যা

পূর্ণসংখ্যার অন্তর্নিহিত ইনপুট U। একটি 3 এলিমেন্ট অ্যারে ( ) তৈরি করুন এবং প্রতিটি এলিমেন্টের জন্য U3 ( U±3) দ্বারা মডিউল, 12 ( uC) দ্বারা মডিউল এবং কারণ 12%12=0, ফলাফল ফেরত দিন বা 12 ( ªC)।


2

ব্রেন-ফ্লাক , 84 বাইট

(()()()){({}<(()(){})(((()()()){}){}<>){(({})){({}[()])<>}{}}<>(([{}]{})<>)>[()])}<>

এটি অনলাইন চেষ্টা করুন!

কমপক্ষে আমি ডোরকনব এর মুখের সমাধানটি মারলাম ...

ব্যাখ্যা:

LOOP 3 TIMES: (()()()){({}<

  n += 2:
   (()(){})
  push 12:
   (((()()()){}){}<>)
  n mod 12 + 1; pushing to both stacks:
   {(({})){({}[()])<>}{}}<>(([{}]{})<>)

END LOOP: >[()])}<>




1

পুশি , 12 বাইট

258s{K+12%h_

এটি অনলাইন চেষ্টা করুন!

258            \ Push 258                            
   s           \ Split into digits, yielding [2, 5, 8]
    {K+        \ Add input to each
       12%     \ Modulo each by 12
          h    \ Increment each
           _   \ Print (space separated)

12 বাইট

একই বাইট গণনা জন্য একটি বিকল্প:

12R{:{;$...#

এটি অনলাইন চেষ্টা করুন!

12R            \ Push range(1, 12), inclusive
   {: ;        \ Input times do:
     {         \   Rotate left
       $       \ While there are items on stack:
        ...    \   Pop the top three
           #   \   Print top item


1

কে (ওকে) , 11 বাইট

সমাধান:

1+12!2 5 8+

এটি অনলাইন চেষ্টা করুন!

উদাহরণ:

1+12!2 5 8+1
4 7 10
1+12!2 5 8+2
5 8 11
1+12!2 5 8+3
6 9 12
1+12!2 5 8+4
7 10 1

ব্যাখ্যা:

এটিই প্রথম সমাধানটি মনে আসল। সেরা বা সংক্ষিপ্ততম হতে পারে না।

1+12!2 5 8+ / the solution
     2 5 8+ / add 2, 5 and 8 to the input
  12!       / apply modulo 12 to the results
1+          / add 1

1

গল্ফস্ক্রিপ্ট, 46 বাইট

~13,1>:x?:y;0:i;x y 3+12%=x y 6+12%=x y 9+12%=

এই প্রথম আমি কোড গল্ফ করছি, তাই আমার অভিজ্ঞতার অভাবের সাথে আমি সম্ভবত সেরা সমাধানটি খুঁজে পাইনি, তবে আমার কোথাও শুরু করা দরকার, তাই না?

এটি অনলাইনে চেষ্টা করুন বা সমস্ত ক্ষেত্রে চেষ্টা করুন


হ্যালো, সাইটে আপনাকে স্বাগতম! এটি দেখতে প্রথম সুন্দর উত্তর বলে মনে হচ্ছে :) দুর্ভাগ্যক্রমে, আমি গল্ফস্ক্রিপ্ট সম্পর্কে কিছুই জানিনা, তবে আপনি এখানে
ডিজেএমসিএমহেম



1

ফেস , 96 94 বাইট

(%d
@)\$*,c'$ooiim%*m1*6%+%%%11m!*mn*m~*3!m&!r!&!is!&$pn3!:L+nn1+nn1%nn%+nn1p~>$inw~>~o-!!1?!L

এটি কেবল দুটি যোগ করে, 12 দ্বারা মোড, আরও একটি যোগ করে এবং প্রিন্ট করে। তারপরে এটি আরও দু'বার করে।

মন্তব্য করা সংস্করণ:

(%d
@)

\$*,c'$ooii     ( store format string in $, ip in *, get stdin/out )
m%*m1*6%+%%%11  ( initialize constants, %=12, 1=1 )
m!*mn*m~*       ( malloc space for a counter, input var, and length )
3!m&!r!&!i      ( read into & )
s!&$pn          ( scan into n )
3!:L            ( start of main loop, executed thrice )
  +nn1+nn1      ( add 2 to n )
  %nn%+nn1      ( mod by 12 and add 1 more )
  p~>$in        ( sprintf n into > )
  w~>~o         ( output to stdout )
  -!!1          ( decrement counter )
?!L             ( conditional jump back to loop start )

এটি অনলাইন চেষ্টা করুন! (পিছনের নতুন লাইনের টিআইও-তে প্রয়োজনীয় একটি বাগের কারণে মুখের নতুন সংস্করণে স্থির করা হয়েছে))


3 মান রাখে এমন একটি ভেরিয়েবল তৈরি করা m3*33আপনাকে তিনটি +nn1এক +nn3 tio.run/…
ক্রিটশি লিথোস

@ কৌজাকাক নোট করুন যে আপনার লিঙ্কের আউটপুটটি ভুল।
ডুরকনব

1

ফোরথ (গফার্থ) , 39 বাইট

স্ট্যাক থেকে ইনপুট নেওয়া হয় এবং স্ট্যাকের উপর আউটপুট স্থাপন করা হয়

: a 2 + 12 mod 1+ ; : f a dup a dup a ;

এটি অনলাইন চেষ্টা করুন!

ব্যাখ্যা

 : a 2 + 12 mod 1+ ; \ helper word to handle adding the hours
    2 +              \ Add 2 to the input
    12 mod           \ get the result modulo 12
    1+               \ add 1

 : f a dup a dup a ; \ word that calculates and outputs the result
    a dup            \ add 3 hours to the input and then duplicate the result
    a dup            \ add 3 hours to the duplicate then duplicate the result
    a                \ add 3 hours to the duplicate 



0

ওল্ফ্রাম ভাষা (ম্যাথমেটিকা) 35 বাইট

Range@12~RotateLeft~#~Take~{3,9,3}&

উপরের দাবিগুলি, ইনফিক্স নোটেশনে, আরও স্পষ্টভাবে কী হিসাবে প্রকাশ করা যেতে পারে

Function[Take[RotateLeft[Range[12],Slot[1]],List[3,9,3]]]

RotateLeftrotates Range[12], ক্রম 1,2 ... 12, ইনপুট সংখ্যা দ্বারা leftward। Slot[1]অথবা #ইনপুট নম্বর ধারণ করে, এন।

উদাহরণস্বরূপ, এন = 4 সহ

Function[RotateLeft[Range[12],4]]]

তালিকাটি ফিরিয়ে দেয়

{5, 6, 7, 8, 9, 10, 11, 12, 1, 2, 3, 4}

Take...{3,9,3} সেই তালিকার প্রতিটি তৃতীয় উপাদান 3 থেকে 9 নম্বর পজিশনের মধ্য দিয়ে দেয়

{7, 10, 1}


0

উইন্ডোজ ব্যাচ, 137 125 111 68 বাইট

@set/ab=(%1+2)%%12+1,c=(%1+5)%%12+1,d=(%1+8)%%12+1
@echo %b% %c% %d%

বন্দর add value to input and mod 12 + 1



আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.