নাইন প্যাটার্ন


9

ভূমিকা

আমি যখন টিভি দেখছিলাম তখন আমি এই (অকেজো) প্যাটার্নটি পেরিয়ে গিয়েছিলাম। আমি নামক এটি "9 প্যাটার্ন" কারণ প্রথম সংখ্যা ব্যবহার করার জন্য এটি 9. এটি সারকথা, আপনি একটি নম্বর লিখুন ছিল (এর কথা বলা যাক এক্স ), এবং তারপর আপনি ফিরে পাবেন:

  • এক্স
  • x + ( x / 3) [আসুন এটিকে y বলুন ]
  • দুই তৃতীয়াংশ y [আসুন এই জেড কল করুন ]
  • z + 1

সুতরাং, আমি যদি এই প্যাটার্নটির ভিতরে 9 নম্বরটি এক্স হিসাবে রাখি তবে এটিই প্রকাশিত হবে:

  • 9 ( 9 )
  • 12 ( 9 + 9/3 ) [9 ওভার 3 3 হয়, এবং 9 + 3 হয় 12]
  • 8 ( 12 বার দ্বি-তৃতীয়াংশ) [12 তৃতীয়টি 4, এবং 4 * 2 8]
  • 9 ( 8 + 1 9)

চ্যালেঞ্জ

আমাকে একটি ফাংশন (কোনও প্রোগ্রামিং ভাষায়) লিখুন যা কোনও সংখ্যায় লাগে এবং প্যাটার্নটি ব্যবহার করে একটি পূর্ণসংখ্য অ্যারে আউটপুট করে।
কিছুটা এই psuedo- কোড মত:

function ninePattern(int myInt) returns IntegerArray {  
    int iterationA = myInt + (myInt / 3);  
    int iterationB = iterationA * (2 / 3); 
    int iterationC = iterationB + 1;  
    IntegerArray x = [myInt, iterationA, iterationB, iterationC];  
    return x;  
}

ব্যাখ্যা

প্রশ্নের স্পেসিফিকেশন সম্পর্কিত মন্তব্যগুলিতে আলোচনা জাগানো হয়েছে। এই বিভাগটি এর কয়েকটি স্পষ্ট করে বোঝানো হয়েছে।

"অক্ষরের চেয়ে বাইটে গণনা করা ভাল"

আমি চরিত্রগুলি বেছে নিয়েছি কারণ (আমার পক্ষে, কমপক্ষে) এটি বিচার করা সহজ হবে। অবশ্যই, আমি এখন এটি পরিবর্তন করতে পারি না। (ইতিমধ্যে প্রচুর উত্তর পোস্ট করা হয়েছে)

"Rounding"

গোলাকার এই ছড়া অনুসরণ করে:

যদি এটি 5 বা ততোধিক হয়, স্কোর
4 বা তার চেয়ে কম হলে বাড়াতে দিন rest

সরলভাবে বলুন, যদি এটি 4.7 বা 3.85 এর মতো কিছু হয় তবে এগুলি যথাক্রমে 5 এবং 4 এ গোল করুন।

উদাহরণ

Input => Result
9 => [9, 12, 8, 9]
8 => [8, 11, 7, 8]
6 => [6, 8, 5, 6]
23 => [23, 31, 21, 22]
159 => [159, 212, 141, 142]

তবে, সংখ্যাগুলি যদি 2.3 বা 10.435446 এর মতো কিছু হয় তবে তাদের যথাক্রমে 2 এবং 10 এ গোল করুন।

"ভাষা সহযোগিতা"

আপনি যদি ফাংশন এবং / অথবা অ্যারে ব্যবহার না করতে পারেন তবে যদি কেবলমাত্র আপনার পছন্দের ভাষা তাদের সমর্থন করে না। যদি এটি হয় (এমনকি এটি আপনার অক্ষরের সংখ্যা বাড়িয়ে তুলবে), আপনার অবশ্যই এটি ব্যবহার করা উচিত


1
আউটপুটটি অবশ্যই একটি অ্যারে হওয়া উচিত, না নিজেরাই সংখ্যাগুলি যথেষ্ট (পাইথ উত্তরটির মতো)?
ডেভিড

2
আপনি কেবলমাত্র পুরো কর্মসূচি বা কেবল ফাংশনগুলিতেই সীমাবদ্ধ রাখতে পারেন তবে ডিফল্টদের মেটা নিয়ে আলোচনা রয়েছে , যা ভবিষ্যতের চ্যালেঞ্জগুলির জন্য আপনার সিদ্ধান্তকে প্রভাবিত করে যদি কিছু কার্যকর পটভূমি দেয়। ডিফল্টরূপে চ্যালেঞ্জগুলি উভয়ই গ্রহণ করে, আরও বেশি ভাষার প্রতিযোগিতা করার অনুমতি দেয়।
ট্রাইকোপল্যাক্স

1
ইনপুট এবং আউটপুট জন্য খুব ডিফল্ট আছে । আবার, আপনাকে সেগুলি অনুসরণ করতে হবে না, এটি কেবল আপনাকে জানাতে।
ট্রাইকোপল্যাক্স

3
স্বেচ্ছাসেবী অ্যারে এবং ফাংশন প্রয়োজনীয়তার জন্য -1, যা অ্যারে / তালিকার ধরণ ছাড়াই বা প্রতিযোগিতা থেকে ফাংশনগুলিকে বাধা দেয়।
মেগো

4
এছাড়াও, আপনার প্রতিযোগীদের স্কোর করা উচিত বাইটগুলিতে, অক্ষরে নয়। আমাদের একটি স্যান্ডবক্স রয়েছে , যেখানে এটি পোস্ট হওয়ার আগে আপনি নিজের পোস্টে প্রতিক্রিয়া পেতে পারেন।
লুভজো

উত্তর:


11

মারিওল্যাং, 659 621 591 582 556 543 516 458 418 401 352 308 369 বাইট

গোলাকার ব্যয় বেশ ব্যয়বহুল: /

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

;>>[![( [( [( [( [( [<(([!)))!+(((-<>( >((+
:"==#================"===#== #=====""[ "==
)(  -[!)>>[![)  [)[<(!>)[<)) >))) [!!-[!((
 (  )"#="==#======="=#==="=<="=====##==#==<
 +  +>) )-+<>+)[!)+! +))![-[)>[ [([-[![<<:
 +  )-+ )(=""===#==#  ==#===)"=======#=====
 +  >!>)!>  !(- < !:+:))<  ))!((++)))< 
 )  "#"=#===#===" ======" ===#======="
 !
=#========================

আচ্ছা এটি প্রত্যাশার চেয়ে মজাদার ছিল, এটি সম্ভবত অনুকূল নয় তবে আমার ধারণা আমি সেখানে পাচ্ছি getting

ব্যাখ্যার সময়:

( ৩৫২ বাইট সংস্করণের জন্য)

প্রথমে আমরা যুক্তিটি পেয়েছি এবং এটি মুদ্রণ করি:

;
:

যথেষ্ট সহজ

তারপরে আমরা প্রোগ্রামটির বেশিরভাগ অংশে চলে যাই: বিভাগ ইনপুট / 3

;>>[![              [( [( [<result
:"==#======================"======
)   -[!)>>[![        [<((((!   
)   )"#="==#=========="====#
+(  +>) )  +>(+)[!)+))!
+(  )-+ )  -"====#====#
+   >!>)!  >! -  <
    "#"=#  "#===="
 !
=#

যা ব্রেনফাক বিভাগের কিছুটা পরিবর্তিত রূপান্তর

[->+>-[>+>>]>[+[-<+>]>+>>]<<<<<<]

যা ইনপুট জন্য নিতে

n 0 d 0 0 

এবং তোমাকে ফিরিয়ে দেব

0 n d-n%d n%d n/d 

আমরা বিভাগটি পেয়ে গেলে আমরা এটি এন এবং এন / ডি যোগফল এবং মুদ্রণ করতে ব্যবহার করি

;>>[![              [( [( [<    !+(((-<
:"==#======================"===)#====="
)   -[!)>>[![        [<((((!    >))) [!(((
)   )"#="==#=========="====#   ="=====#==:
+(  +>) )  +>(+)[!)+))!
+(  )-+ )  -"====#====#
+   >!>)!  >! -  <
    "#"=#  "#===="
 !
=#

আমাদের তখন আর একটি বিভাগ করা দরকার: (২ * (এন + এন / ডি)) / 3

সুতরাং আমরা (2 * (এন + এন / ডি) পেতে পারি

;>>[![              [( [( [<    !+(((-<
:"==#======================"===)#====="
)   -[!)>>[![        [<((((!    >))) [!(((
)   )"#="==#=========="====#   ="=====#==:
+(  +>) )  +>(+)[!)+))! 2*2n/d>[   -[![  <
+(  )-+ )  -"====#====# ======"======#====
+   >!>)!  >! -  <            !((++))<
    "#"=#  "#===="            #======"
 !
=#

এবং 3 দিয়ে আবার বিভাগে রেখে দিন

;>>[![              [( [( [<    !+(((-<
:"==#======================"===)#====="
)   -[!)>>[![        [<((((!    >))) [!(((
)   )"#="==#=========="====#   ="=====#==:
+(  +>) )  +>(+)[!)+))!      )>[   -[![  <
+(  )-+ )  -"====#====#      )"======#====
+   >!>)!  >! -  <       +++))!((++))<
    "#"=#  "#====" ===========#======"
 !
=#=================

এই মুহুর্তে মারিও চিরকাল, বড় এবং বড় সংখ্যায় বিভাজনকারী একটি অনন্ত লুপে আটকে থাকে।

এবং প্রথম এবং দ্বিতীয় বিভাগের মধ্যে দ্বিখণ্ডিত হওয়ার জন্য আমাদের একটি উপায় প্রয়োজন তা স্থির করার জন্য, ওহ আনন্দ, আমাদের একটি উপায় আছে

;>>[![              [( [( [<([!)!+(((-<
:"==#======================"==#)#====="
)   -[!)>>[![        [<((((!))< >))) [!(((
)   )"#="==#=========="====#)="="=====#==:
+(  +>) )  +>(+)[!)+))!!:+:)))>[   -[![  <
+(  )-+ )  -"====#====#======)"======#====
+   >!>)!  >! -  <       +++))!((++))<
    "#"=#  "#====" ===========#======"
 !
=#=================

মূলত আমরা যদি এক্স ইন দেখতে

x 0 n d-n%d n%d n/d 

0 হয়, যদি এটির অর্থ এটি হয় আমরা প্রথম বিভাগে আছি

অন্যথায় আমরা দ্বিতীয় বিভাগে আছি, এবং আমরা কেবল বিভাগের ফলাফল মুদ্রণ করি, 1 যুক্ত করে আবার মুদ্রণ করি

এবং voila পাই হিসাবে সহজ।


পিপিসিজিতে আপনাকে স্বাগতম!
এরিক আউটগলফার

বৃত্তাকার না প্রশ্ন দ্বারা উপলব্ধ চশমা করার জন্য (অবশ্যই, আমি আপডেট তা পরে আপনি আপনার উত্তর পোস্ট, তবে আপনি এটি কমপক্ষে আপনার উত্তর আপডেট নতুন চশমা মাপসই উচিত) দেয়
InitializeSahib

সম্পন্ন. যখন আমরা পরীক্ষার কেস সম্পর্কে কথা বলছি তখন আপনার মুষ্টি অপারেশনটি বন্ধ করে দেওয়ার জন্য 10 নম্বর যুক্ত করা উচিত।
ইথার ব্যাঙ

9

Emotinomicon 99 বাইট, 33 অক্ষর

😷😭,😲🆙🆙😼🆙😨😎⏬😎🆙😍➗➕🆙😨😎⏬😎😉✖😍➗🆙😨😎⏬😎😅➕😨

ব্যাখ্যা:

😷                                 clear output
 😭                                begin quote string
  ,                               
   😲                              end quote string
    🆙                             duplicate top of stack
     🆙                            duplicate top of stack
      😼                           take numeric input
       🆙                          duplicate top of stack
        😨                         pop N and output as a number
         😎                        reverse stack
          ⏬                       pops and outputs top of stack as character
           😎                      reverse stack
            🆙                     duplicate top of stack
             😍                    push 3 to the stack
              ➗                   divide top two elements on stack
               ➕                  add top two elements on stack
                🆙                 duplicate top of stack
                 😨                pop N and output as a number
                  😎               reverse stack
                   ⏬              pops and outputs top of stack as character
                    😎             reverse stack
                     😉            push 2 to the stack
                      ✖           multiply top two elements on stack
                       😍          push 3 to the stack
                        ➗         divide top two elements on stack
                         🆙        duplicate top of stack
                          😨       pop N and output as a number
                           😎      reverse stack
                            ⏬     pops and outputs top of stack as character
                             😎    reverse stack
                              😅   push 1 to the stack
                               ➕  add top two elements on stack
                                😨 pop N and output as a number

3
হাঁ প্রচলিত ভাষার জন্য! : পি
ইউজার 48538

4

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

Xot4*3/tE3/tQv

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

খুব সহজ, vএকটি অ্যারের মধ্যে স্ট্যাককে সম্মতি জানায়। Xoএকটি পূর্ণসংখ্যার ডেটা-টাইপে রূপান্তরিত হয় এবং তারপরে সমস্ত ক্রিয়াকলাপগুলি পূর্ণসংখ্যা অপারেশন হয়।


3
অনুমানটি কেবলমাত্র চূড়ান্ত ফলাফল নয়, একটি অ্যারের ফিরিয়ে দেয়।
মান কালি

3
<2 মিনিটের মধ্যে মুছে ফেলার জন্য এই পতাকাঙ্কিতদেরও হাসি: ডি
ডেভিড

@ ডেভিড ডি: আমি মনে করি না যে আমি মুছে ফেলা ভোটগুলি প্রত্যাহার করতে পারি
ডাউনওয়েট

@ ডেভিড আপনার উত্তরটিকে আমার সমবেদনা হিসাবে তুলে ধরেছেন :)
আরম্ভ করুন

1
আমি খুব নিশ্চিত যে এটি কোনও ফাংশন নয়, আমি ভুল হলে আমাকে সংশোধন করুন।
মালটিসেন

4

চেডার , 27 বাইট

b=8/9*$0
[$0,$0+$0/3,b,b+1]

$0ইনপুট সহ পরিবর্তনশীল। চেদার কেবল একটি গোলাপী ভাষা নয় ¯ \ _ (ツ) _ / ¯, এটিও প্রতিযোগিতামূলক নয় কারণ চেদদার ইনপুট কার্যকারিতা এই চ্যালেঞ্জের পরে তৈরি হয়েছিল।

Ungolfed:

IterationB := 8 / 9 * $0  // 8/9ths of the Input
[ $0,                     // The input
  $0 + $0 / 3,            // Input + (Input/3)
  IterationB,             // (see above)
  IterationB + 1          // above + 1
]

1
আনন্দ অশ্রু! এতদূর চলে গেছে! : ডি
কনর ও'ব্রায়েন

3

জাভা, 86 82 84 85 টি অক্ষর

class c{int[]i(int I){int a=I+(I/3),b=(int)(a*(2d/3d));return new int[]{I,a,b,b+1};}}

dএকটি পূর্ণসংখ্যার ঠিক পরে দেওয়া অক্ষরটি পূর্ণসংখ্যাকে A করে তোলেdouble

Ungolfed:

class c{
    int[] i(int I) {
        int a = I + (I / 3),
            b = (int)(a * (2d / 3d));
        return new int[]{I, a, b, b + 1};
    }
}

শ্রেণিটি ছাড়াই ( class c{}8 টি চর দীর্ঘ) এটি 76 ক্যারেক্টারে ডাউনসাইজ করে:

int[]i(int I){int a=I+(I/3),b=(int)(a*(2d/3d));return new int[]{I,a,b,b+1};}

110 চরগুলিতে আরও সঠিক সংস্করণ (এনাম সহ 118) - এটি ব্যবহার করে floatকারণ কেউ কাস্টিংয়ের জন্য জায়গা পায় না Math#round(double):

int[]i(int I){float a=I+(I/3f),b=(a*(2f/3f));return new int[]{I,Math.round(a),Math.round(b),Math.round(b+1)};}

আমি মনে করি আমার পাইথ শেখা উচিত।
ব্যবহারকারী 8397947


1
@ ডোরুকায়াহান অদ্ভুত, আমি যখন এগ্রিপসে এটি চালানোর চেষ্টা করছি তখন আমার একটি ত্রুটি হয়েছিল বলে মনে হচ্ছে, এটি ডাবল থেকে ইনটে রূপান্তর করতে পারে না। আগামীকাল সমস্যাটি কী তা আমি বুঝতে পারি কিনা তা আমি দেখতে পাচ্ছি।
লুভজো

1
আমি সবেমাত্র কোডটি স্থির করেছি
ব্যবহারকারীর 8397947

1
আমি দেখতে পাচ্ছি কিন্তু এটি 8 বা 10 এর মতো ইনপুটগুলির জন্য সঠিক ফলাফল দেয় না প্রথম সংযোজনটি সঠিকভাবে কাজ করছে না যেমন I + (I / 3)একটি পূর্ণসংখ্যা বিভাগ ব্যবহার করছে , যার অর্থ ভগ্নাংশ বাতিল করা হয় এবং ফলস্বরূপ সঠিকভাবে গোল হয় না।
ফ্রিজ

3

জাভা, 56 80 বাইট

যেমন কিছু ব্যবহারকারী চিহ্নিত করেছেন, এই সমাধান (জাভাতে কিছু অন্যান্য হিসাবে) সঠিকভাবে ডেটা গোল করে না। সুতরাং এখন আমি কিছুটা দীর্ঘ সমাধান উপস্থাপন করছি যা সঠিক ফলাফলের উচিত

int[]h(int a){int[]b={a,Math.round(a+a/3f),a=Math.round(a*8f/9),++a};return b;}

বা 60 বাইট লামদা সংস্করণ

a->new int[]{a,Math.round(a+a/3f),a=Math.round(a*8f/9),++a}

গল্ফ সংস্করণ

int[]g(int a){int[]b={a,a+a/3,a*8/9,a*8/9+1};return b;}

এবং ungolfed

int[] g(int a) {
        int[] b = { a, a + a / 3, a * 8 / 9, a * 8 / 9 + 1 };
        return b;
    }

বা ল্যাম্বদা হিসাবে সংজ্ঞায়িত 36 বাইট

a->new int[]{a,a+a/3,a*8/9,a*8/9+1}


প্রশ্নের দ্বারা প্রয়োজনীয় গোলগুলি নেই।
মার্ভ

1
@ মারভ উল্লেখ করেছেন যে এই প্রশ্নটি সঠিকভাবে কাজ করে না, উদাহরণস্বরূপ ইনপুট 8 এর প্রত্যাশিত ফলাফলটি [8,11,7,8] হবে তবে এটি [8,10,7,8]
ফ্রিজে

ডাউনভোট কেন? আমি এটি স্থির করেছি এবং এটি এখন সঠিকভাবে কাজ করছে?
ব্যবহারকারী 902383

ডাউনটাটের জন্য এটি ঠিক করার পরে দুঃখিত। ডাউনভোটটি এখন লক করা আছে, সুতরাং আপনি যদি নিজের উত্তরে কিছু পরিবর্তন না করেন তবে আমি এটিকে সরাতে পারবেন না (কোনও তুচ্ছ পরিবর্তন যথেষ্ট)
edc65

@ edc65 ঠিক আছে, সম্পন্ন হয়েছে
user902383

2

জাভা, 64 বাইট

int[]f(int i){return new int[]{i,i+=i/3+0.5,i-=i/3-0.5,i+=1.5};}

মন্তব্য

  • এটিতে প্রয়োজনীয় বৃত্তাকার বিল্ড ইন রয়েছে, এটি নিশ্চিত নয় যে আপনি @ ব্যবহারকারী 902383 এর সমাধানের সাথে মিশ্রিত হলে এটি আরও খাটো করতে পারেন কিনা।

Ungolfed

int[] f(int i) {
    return new int[]{
            i, 
            i += i / 3 + 0.5, 
            i -= i / 3 - 0.5, 
            i += 1.5};
}

আই = 9 দিয়ে আউটপুট

[9, 12, 8, 9]

1
+1 টি।
কিউজ

ব্যবহারকারী 902383 এর সমাধান হিসাবে একই, এটি সঠিকভাবে কাজ করে না, যেমন 8 প্রত্যাশিত [8,11,7,8] এর জন্য তবে [8,10,7,8], 6 প্রত্যাশিত [6,8,5,6] এর জন্য তবে [6,8,6,7]

3
@ ফ্রোজন এই সমাধানটি ঠিক মতো কাজ করছে না, এবং পরীক্ষার ক্ষেত্রে আপনি আমার পুরানো সমাধানের মত একই ফলাফলটি পেয়েছেন
আইডোন.

2

স্ক্র্যাচ, 33 বাইট

লিপি
ইনপুট aজিজ্ঞাসা করে, ইনপুটকে বৃত্তাকারে সেট করে, সেট করে bএবং cতাদের নিজ নিজ পরিবর্তনের জন্য, তারপরে কমা দ্বারা পৃথক করা সমস্ত চারটি সংখ্যা বলে।


2

জাভা 8 লাম্বদা, 109 81 79 75 টি অক্ষর

কারণ ... আপনি জানেন ... এমনকি জাভা গল্ফ করা যেতে পারে ...

a->{int b=(int)(.5+a*4./3),c=(int)(.5+b*2./3);return new int[]{a,b,c,++c};}

ল্যাম্বদা ক্লাসে বিভক্ত:

class C {  
   static int[] a(int a) {
        int b = (int) (.5 + a * 4. / 3),
            c = (int) (.5 + b * 2. / 3);
        return new int[]{a, b, c, ++c};
    }
}

আমি ধরে নিই যে ল্যাংগুলি ব্যবহার করার অনুমতি দেওয়া হয়েছে কারণ এগুলিও একটি পূর্ণসংখ্যার প্রকার। দুঃখের বিষয় হ'ল একজনকে সঠিকভাবে পূর্ণসংখ্যার বৃত্তাকার প্রয়োজন এবং এভাবে "সংক্ষিপ্ত" কাস্ট কাজ করে না। দীর্ঘস্থায়ী ব্যবহার করে আমাদের আর গোলের ফলাফলগুলি আর্টসগুলিতে ফিরে যেতে হবে না।

হালনাগাদ

সুন্দর সামান্য + 0.5 ব্যবহার করে এবং কাস্টিং এর পরে কৌশলটি আমরা সঠিক গোলটি করে রাখি এবং 2 টি অক্ষর সংরক্ষণ করি!

এছাড়াও এই কৌশলটি আর দীর্ঘ ব্যবহারের প্রয়োজন হয় না সুতরাং আমরা আরও 4 টি অক্ষরের শেভিংগুলিতে ফিরে যেতে পারি।


পিপিসিজিতে আপনাকে স্বাগতম!
এরিক আউটগল্ফার

ধন্যবাদ :) আমি এখানে কিছুক্ষণের জন্য এখানে থাকা প্রশ্নগুলি অনুসরণ করেছি এবং আমি অনুভব করেছি যে এটি এমন একটি প্রশ্ন হতে পারে যা আমি অংশ নিতে পারলাম যদিও উত্তরটি আমার প্রত্যাশার চেয়ে দীর্ঘ ছিল।
24:56

আমি "+1" আশা করছি আপনি বাধ্যতামূলক যুক্ত করবেন "কারণ ... আপনি জানেন ... জাভা!"
অলিভিয়ার ডুলাক 24'16

@ ফ্রোজেন আমি নিশ্চিত নই যে আপনি -5 বাইটের জন্য a->{এবং চূড়ান্তটি সরাতে পারবেন কিনা }
এরিক দ্য আউটগল্ফার

@ অলিভিয়ারডুলাক এখনও নয় :)
এরিক দি আউটগল্ফার

1

গণিত - 21 বাইট

আমার ভাইস আরপিআই-র কাছ থেকে সবেমাত্র ম্যাথমেটিকাকে পেয়েছি, তাই মজাদার জন্য এটি চেষ্টা করে দেখছি, এবং পিপিসিজি চ্যালেঞ্জের চেয়ে ভাল উপায়।

{#,4#/3,8#/9,8#/9+1}&

একটি বেনামী ফাংশন সংজ্ঞায়িত করে। এটি ব্যবহার করে দেখুন:

In[26]:= x:={#,4#/3,8#/9,8#/9+1}&                                             

In[27]:= x[9]                                                                 

Out[27]= {9, 12, 8, 9}

এটি ফলাফল হিসাবে পূর্ণসংখ্যা, বা ভগ্নাংশ দেবে?
ডেভিড

@ ডেভিড পূর্ণসংখ্যা, ফলাফল অ-অবিচ্ছেদ্য না হলে, যার ক্ষেত্রে ভগ্নাংশ।
মাল্টেসেন


1

লুয়া, 52 বাইট

এই প্রোগ্রামটি কমান্ড-লাইন আর্গুমেন্টের দ্বারা একটি সংখ্যা নেয় এবং সংশ্লিষ্ট অ্যারেটি ফেরত দেয়। লুয়ার প্রোগ্রামগুলি প্রযুক্তিগতভাবে ফাংশন, কারণ দোভাষী তাদের সবসময় একটি ফাংশনে আবদ্ধ করে রাখবেন। এটি এই মেকানিকটিও যা অন্য ফাইলগুলিতে কোডগুলি "কল" করার সময় ব্যবহৃত হয় (এটি মূলত loadfile/ ব্যবহার করে dofile)।

m=math.floor x=...z=m(x*8/9)return{x,m(x*4/3),z,z+1}

1

আসলে, 21 বাইট

`;;3@/+;32/*;uk1½+♂≈`

এই প্রোগ্রামটি এমন একটি ফাংশন ঘোষণা করে যা শীর্ষ স্ট্যাকের মানটিতে প্রয়োজনীয় ক্রিয়াকলাপ সম্পাদন করে।

এটি অনলাইন চেষ্টা করুন! (অতিরিক্ত. ফাংশনটি মূল্যায়ন করে ফলাফল মুদ্রণ করে)

ব্যাখ্যা:

`;;3@/+;32/*;uk1½+♂≈`
 ;;                    make two copies of x
   3@/+                divide by 3, add that to x to get y
       ;32/*           make a copy of y and multiply by 2/3 to get z
            ;u         make a copy of z and add one
              k        push stack as a list
               1½+     add 0.5 to each element
                  ♂≈   apply int() to each element (make integers from floats by flooring; this is equivalent to rounding half-up because of adding 0.5)

1

ম্যাথক্যাড, [টিবিডি] বাইটস

এখানে চিত্র বর্ণনা লিখুন


ম্যাথক্যাড কোডগল্ফ বাইট সমতুল্য এখনও নির্ধারণ করা হয়নি। মোটামুটি সমতুল্য হিসাবে একটি কীবোর্ড গণনা নিলে সমাধানটি প্রায় 40 বাইট।




1

জাভাস্ক্রিপ্ট, 50 বাইট

আমি আমার জাভা সমাধানটি জাভাস্ক্রিপ্টে রূপান্তরিত করেছি এবং এটিকে কিছুটা বাদ দিয়েছি।

var r=Math.round,g=a=>[a,r(a+a/3),a=r(a*8/9),++a]

1

সি ++ 0x - 95 102 185 189 109 129 অক্ষর

int * n(int p){static int a[3];a[0]=p;a[1]=round(p+(p/3));a[2]=round((a[1]/3)*2);a[3]=a[2]+1;return a;}
  • এর জন্য কাজ করার জন্য সিএমথ হেডার প্রয়োজন ।

Degolfed

#include <cmath>
int * ninePattern(int p) {
        static int a[3]; // pattern array
        a[0] = p; // sets first iteration
        a[1] = round(p + (p / 3)); // sets second iteration
        a[2] = round((a[1] / 3) * 2); // sets third iteration
        a[3] = a[2] + 1; // sets fourth iteration
        return a; // returns array
}

2
সি ++ বিশেষজ্ঞ না হয়ে আপনি অ্যারেতে থাকা ইতিমধ্যে গণনা করা মানগুলি পুনরায় ব্যবহার করে আপনি এটি সংক্ষিপ্ত করতে পারেন। এছাড়াও আপনি এর মধ্যে কিছু সাদা জায়গা সরিয়ে ফেলতে সক্ষম হতে পারেন) এবং know C ++ কতটা কঠোর তা জানেন না।
ফ্রিজ

এই দুটি কি বর্তমান সংস্করণে সঠিক? কারণ আমি সবেমাত্র আপনাকে গণনা করতে দেখেছি p+(p/3)*(2/3)যার p+(2*p/9)পরিবর্তে(p+(p/3))*(2/3)
ফ্রিজেন

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

0

এরলং, 80 বাইট

-module(f).
-export([f/1]).
f(X)->Y=X+(X/3),Z=trunc(Y*(2/3)),[X,trunc(Y),Z,Z+1].

চালানোর জন্য, f.erl হিসাবে সংরক্ষণ করুন, ফাংশনটি সংকলন এবং কল করুন। এটি ক্রেটের একটি তালিকা ফিরিয়ে দেবে:

fxk8y@fxk8y:/home/fxk8y/Dokumente/erlang/pcg# erl
Erlang/OTP 18 [erts-7.0] [source] [64-bit] [smp:4:4] [async-    threads:10] [kernel-poll:false]

Eshell V7.0  (abort with ^G)
1> c(f).
{ok,f}
2> f:f(9).
"\t\f\b\t"
3>

মনে রাখবেন যে এআর্ল্যাং ASCII মান পরিসরে থাকলে স্বয়ংক্রিয়ভাবে int গুলি ASCII চরগুলিতে রূপান্তরিত হয় কারণ এর্লংয়ের চর প্রকার নেই। 100 এর সাথে ফাংশনটি কল করা আপনাকে আরও ভাল পঠনযোগ্য [100,133,88,89] দেয়

Ungolfed:

-module(f).
-export([f/1]).

f(X) ->
  Y = X+(X/3),
  Z = trunc(Y*(2/3)),
  [X, trunc(Y), Z, Z+1].

0

এরলং, 46 বাইট

@ Fxk8y দ্বারা অনুপ্রাণিত উত্তর (আমি তার উত্তরে কোনও মন্তব্য পোস্ট করতে পারিনি)

F=fun(X)->Z=round(X*4/9),[X,Z*3,Z*2,Z*2+1]end.

এছাড়াও আপনি ফলাফলগুলি দেখতে পাবেন এর সাথে:

2> io:fwrite("~w~n", [F(9)]).                         
[9,12,8,9]
ok

0

পাইথ, 20 বাইট

m.RdZ[Jc*4Q3Kc*2J3hK

ব্যাখ্যা:

            (Implicit print)
m           For each d in array, d =
.RdZ        Round d to zero decimal places
[           The array of
  J         The result of setting J to
    c       The float division of
      *4Q   Input * 4
      3     and 3
            ,
  K         The result of setting K to
    c       The float division of
      *2J   J * 2
      3     and 3
            , and
  hK        K + 1.
            (Implicit end array)

পরীক্ষা এখানে


0

জल्फ, 17 বাইট

Ώ‘Hγ+H/H3Βώ/γ3hΒ’

একটি ফাংশন সংজ্ঞা দেয় Ώ। এটি অন্তর্নিহিতভাবে ইনপুট নেয়, তাই এটি একটি সম্পূর্ণ প্রোগ্রাম হিসাবে দ্বিগুণ হয়। এখানে চেষ্টা করুন!


জলফ আস্তে আস্তে ESMin হয়ে উঠছে ??? : পি
ডাউনগোট

@ আপগোট ইয়ে এটি গ্রীক আবার মধ্যরাত। : পি
কনর ও'ব্রায়েন

> _> ওহ। আমি আপনাকে জাগিয়ে তুললে খুব _ দুঃখিত _ _ _ _ _ _>
ডাউনগোট

@ আপগোট এখনও ঘুমোচ্ছেন না;)
ও'ব্রায়ান

: | আইডিডি যদি এটি ভাল জিনিস হয় তবে আমি আপনাকে জাগ্রত করি বা খারাপ জিনিস আপনি এখনও জাগ্রত করেন না
ডাউনগোট

0

গণিত, 51 বাইট

FoldList[#2@#&,{#,Round[4#/3]&,Round[2#/3]&,#+1&}]&

বেনামে ফাংশন যা পোস্টের বর্তমানের (পোস্ট করার সময়) সংস্করণে সামঞ্জস্য করে, যা প্রতিটি পদক্ষেপে গোল করে বোঝায়।

FoldListপ্রোগ্রামিং একটি সাধারণ অপারেশন । এটি হিসাবে ব্যবহৃত হয় FoldList[f, list]এবং দ্বি-যুক্তি ফাংশন প্রয়োগ করেf ফলাফলের (বা প্রথম পুনরাবৃত্তিতে তালিকার প্রথম উপাদান) বার বার তালিকার পরবর্তী উপাদানটিকে তার দ্বিতীয় যুক্তি হিসাবে গ্রহণ করে।

অবহেলিত: #2 @ # &এটি একটি বেনামে ফাংশন যা তার দ্বিতীয় যুক্তিকে প্রথমটিতে প্রয়োগ করে। সুতরাং, এর তালিকা যুক্তিটি FoldListইনপুটটিতে প্রয়োগ করার জন্য ক্রমাগত ফাংশনগুলি নিয়ে গঠিত।

FoldList[#2 @ # &,
  {#, (* note the absence of '&' here, 
         this '#' stands for the argument
         of the complete function and is 
         covered by the & at the end      *)
   Round[4 # / 3] &, (* anonymous function that rounds 4/3 of its input *)
   Round[2 # / 3] &, (* ditto, 2/3 *)
   # + 1 &           (* add one function *)
  }] &               (* and the '&' makes the entire 
                        thing an anonymous function,
                        whose argument is the '#' up
                        at the top.                  *)

ইনপুটটি পূর্ণসংখ্যা এবং বিভাগগুলি 3 দ্বারা হয় বলে 4.5 এর মত ফলাফল কখনই আসবে না, অতএব শেষ অঙ্কটি যখন হয় তখন গোল করার নিয়মগুলি নিয়ে চিন্তা করার দরকার নেই 5: এটি সর্বদা একটি পূর্ণসংখ্যা বা অন্যটির সাথে স্পষ্টভাবে কাছাকাছি থাকবে।




0

সিজাম, 21 বাইট

qi__3d/+mo_2d3/*i_)]`

মতামত স্বাগত

ব্যাখ্যা

  • qi__ - পূর্ণসংখ্যা হিসাবে ইনপুটটি পড়ুন এবং এটি দুবার নকল করুন
  • 3D/+mo - ইনপুটটির একটি উদাহরণ 3 দিয়ে ভাগ করুন, তারপরে y করার জন্য এটি দ্বিতীয় বার যুক্ত করুন
  • _2d3/*i - Y এর সদৃশ করুন, তারপরে এটি .6 দিয়ে গুণ করুন
  • _)] `- দুপ, ইনক্রিমেন্ট, অ্যারেতে মোড়ানো, অ্যারে হিসাবে মুদ্রণ করুন (` অপারেটরের কারণে কোডে নয় :()

সম্পাদনা: প্রথম তিনটি ডাবল করতে ভুলে গেছি, সুতরাং প্রোগ্রামটি ভেঙে গেছে। সংশোধন করা হয়েছে।


0

অ্যাক্সিয়োম, 59 বাইট

g(x)==round(x)::INT;f(x)==[x,a:=g(x+x/3.),b:=g(a*2./3),b+1]

পরীক্ষা

(3) -> [[i,f(i)] for i in [9,8,6,23,159]]
   (3)
   [[9,[9,12,8,9]], [8,[8,11,7,8]], [6,[6,8,5,6]], [23,[23,31,21,22]],
    [159,[159,212,141,142]]]
                                                      Type: List List Any


0

পিএইচপি, 67 বাইট

function f($x){return [$x,$y=round($x*4/3),$z=round($y*2/3),$z+1];}
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.