কাগজ এবং খামের আকার


17

কার্য

একটি অক্ষর (A, B, C) এবং একটি নম্বর (0-10) দেওয়া হয়েছে, ফর্ম্যাটে মিলিমিটারের সাথে মিলের মানক কাগজের আকারের (সিরিজ A এবং B) আকারের মিল বা মানক খামের আকার (সি সিরিজ) আউটপুট করুন ISO216 (সিরিজ এ এবং বি) বা আইএসও 296 (সিরিজ সি) অনুযায়ী মিলিমিটারে প্রস্থ এবং উচ্চতার পরিমাপ aaaa x bbbbকোথায় aaaaএবংbbbb

বিষয়গুলিকে আরও সহজ করার জন্য আমি উইকিপিডিয়ায় কাগজের আকারের টেবিল থেকে উদ্ধৃত করব

ISO paper sizes in portrait view
Format  A series    B series    C series
Size     mm × mm      mm × mm    mm × mm
0       841 × 1189  1000 × 1414 917 × 1297
1       594 × 841    707 × 1000 648 × 917
2       420 × 594    500 × 707  458 × 648
3       297 × 420    353 × 500  324 × 458
4       210 × 297    250 × 353  229 × 324
5       148 × 210    176 × 250  162 × 229
6       105 × 148    125 × 176  114 × 162
7        74 × 105     88 × 125   81 × 114
8        52 × 74      62 × 88    57 × 81
9        37 × 52      44 × 62    40 × 57
10       26 × 37      31 × 44    28 × 40

সুতরাং ইনপুট এবং আউটপুট উদাহরণ:

**Test case 1**
Input: A4
Output: 210 x 297

**Test Case 2**
Input: B6
Output: 125 x 176

**Test Case 3**
Input: C2
Output: 458 x 648

বিষয়গুলি নোট করুন:

  1. "210 x 297" বা "1000 x 1414" ইত্যাদি ফর্ম্যাটটি যদিও এটি পছন্দনীয় ফর্ম্যাট, আপনি নিজের আউটপুট থেকে "এক্স" বাদ দিতে পছন্দ করতে পারেন, যেমন একটি অ্যারে বা দুটি সংখ্যার আকারে বা যা আপনার অভিনব কল্পনা করে প্রস্থ পরিমাপ হিসাবে উচ্চতার আগে আউটপুট করা হয়।
  2. উচ্চতা এবং প্রস্থের মধ্যে অনুপাতটি প্রায় 2 এর বর্গমূলের সমান, সুতরাং উচ্চতার গণনায়, প্রস্থটি বর্গক্ষেত্র (2) দ্বারা গুণিত হয় এবং তারপরে গোল করে উপরে বা নীচের মিলিমিটারে পরিণত হয়, ফলস্বরূপ ফলস্বরূপ উপরের টেবিলের পরিমাপ। এটি আপনার কোডটি গল্ফটিতে সাহায্য করতে পারে।
  3. টেবিলের নীচে যাওয়ার সময় ধারাবাহিকের জন্য ক্রমাগত আকারে, এক আকারের প্রস্থের জন্য পরবর্তীটির উচ্চতা হয়ে যায়। এটি আপনাকে আপনার কোডটি গল্ফ করতে সহায়তা করতে পারে।

নিয়মাবলী:

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

ভাগ্য সুপ্রসন্ন হোক.


বিএন হ'ল আন এবং আন +1 এর জ্যামিতিক গড় এবং সিএন আন এবং বিএন এর জ্যামিতিক গড়।
Adám

উত্তর:


9

জাভাস্ক্রিপ্ট (ES7), 57 বাইট

@ ওয়াল ওয়েস্টকে ধন্যবাদ 1 বাইট সংরক্ষণ করা

s=>n=>[n,n-1].map(x=>.707**x*{A:841,B:1e3,C:917}[s]+.2|0)

3
দুর্দান্ত কাজ ... আপনি এটি 57 দিয়ে তৈরি করতে পারেন s=>n=>[n,n-1].map(x=>.707**x*{A:841,B:1e3,C:917}[s]+.2|0)এবং এটি এখনও আপনার আউটপুটে একই নির্ভুলতা থাকবে।
ওয়ালিওয়েস্ট

@ ওয়ালিওয়েস্ট টিপটির জন্য ধন্যবাদ। আমি বিভিন্ন প্রতিস্থাপনের সাথে .7071এবং .2কিছুক্ষণের জন্য খেলতাম এবং যখন আমি এমন
কোনও

কোনও উদ্বেগ নেই, সমস্ত কোড গল্ফের নামে ...;) আমি বুঝতে পারি না যে মানচিত্রটি কোনও একটি অবজেক্টের মধ্যে অব্যক্ত কীগুলিকে রেফারেন্স দিতে দেয় ...? আমাকে শীঘ্রই এটি ব্যবহার করতে হবে ...
ওয়ালি ওয়েস্ট

1
@ ওয়েলওয়েস্টের এর কোনও যোগসূত্র নেই .map, আপনি {key1:1,key2:2,key3:3}[myKey]যেকোন সময় ব্যবহার করতে পারেন । আপনাকে কীগুলি কেবল বৈধ পরিবর্তনশীল নাম না হলে উদ্ধৃতি দিতে হবে।
ETH প্রোডাকশনগুলি

উজ্জ্বল,
টিপটির

6

সি (জিসিসি) , 113 111 90 78 70 বাইট

এটি -lmটিআইওতে চালানো দরকার , তবে বিকল্পটি ছাড়াই আমার কম্পিউটারে ভাল কাজ করে।

20 বাইট সংরক্ষণ করা হয়েছে pizzapants 184 ধন্যবাদ ।

পয়েন্টার অনুসারে মানগুলি ফেরৎ দিন।

f(a,b,c,d)int*c,*d;{float x=1e3*pow(.707,b+a%3/4.)+.2;*c=x,*d=x/.707;}

ব্যাখ্যা:

f(a,b,c,d)int*c,*d;{          // calling by char, but receive as int
    float x = 1e3 * pow(.707, // float gives enough precision 
            a % 3 / 4.        // series: a%3/4.=.5,0,.25 when a=65,66,67
            + b) - .2;        // magic number to get correct roundings
    *c = x, *d = x / .707;
}


1
91 বাইট +(a^66?a^67:0.5:0.25:0)abs(a-66)/(a-63.)
এলএম-এ


3

ব্যাচ, 105 বাইট

@set/aA=1189,B=1414,C=1297,h=%1,w=h*29/41
@for /l %%i in (1,1,%2)do @set/at=w,w=h/2,h=t
@echo %w% x %h%

41/29 √ √2


# নীল, ব্যাচে দশমিকগুলি কি সম্ভব নয়? আমি ভাবতাম h*.707কি এর চেয়ে ভাল হত h*41/29? মনে মনে, আনুমানিক ব্যবহারের!
ওয়ালিওয়েস্ট

@ ওয়েলওয়েস্ট নং, 32-বিট স্বাক্ষরিত পূর্ণসংখ্যা কেবল।
নিল

আচ্ছা বুঝলাম! প্রতিদিন নতুন কিছু শিখুন!
ওয়েলওয়েস্ট

3

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

L=>N=>[N+1,N].map(p=>1091/2**(p/2+~{B:2,C:1}[L]/8)|0)

বিকল্প আউটপুট ফর্ম্যাট ব্যবহার করে অনেকগুলি বাইট সংরক্ষণ করুন, নীলকে ধন্যবাদ।


1
66 বাইট:L=>N=>(g=p=>1000.2/2**(N/2+p-{A:2,B:4,C:3}[L]/8)|0)(.5)+' x '+g(0)
নিল

1
বা 58 বাইট যদি আপনি বিকল্প আউটপুট ফর্ম্যাটটি ব্যবহার করেন:L=>N=>[N+1,N].map(p=>1000.2/2**(p/2-{A:2,B:4,C:3}[L]/8)|0)
নীল

@ নীল সম্পাদিত। এবং 56
বাইটেও

3

জাভা (ওপেনজেডিকে 8) , 59 বাইট

f->s->new double[]{s=1e3*Math.pow(.707,s+f%3/4d)-.2,s/.707}

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

@ কলেরা সু এর সি এন্ট্রি দ্বারা অনুপ্রাণিত , তারপরে নিজেই উন্নত।

  • 14 বাইট সংরক্ষণ করেছেন কেভিন ক্রুইজসেনকে ধন্যবাদ

1
1000হতে পারে 1e3
কেভিন ক্রুইজসেন



3

এপিএল (ডায়ালগ) , 31 28 বাইট

-2 এনএনজি ধন্যবাদ।

পুরো প্রোগ্রাম বডি। ধরে নেওয়া ⎕IO( I ndex O rigin) 0, যা বহু সিস্টেমে ডিফল্ট। উভয়টি এসটিডিনের থেকে সংখ্যার জন্য প্রম্পট, তারপরে চিঠি। প্রিন্ট করুন STDOUT।

.2+1E3÷2*8÷⍨('BC'⍳⍞)+4×⎕-⍳2

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

কিছুটা পরিবর্তিত সংস্করণ আমাদের সমস্ত সম্ভাব্যতা একবারে পরীক্ষা করতে দেয়: এটি অনলাইনে চেষ্টা করুন!

⍳2 প্রথম দুটি ɩ n ডিভাইস, অর্থাৎ 0 এবং 1

⎕- সংখ্যাযুক্ত ইনপুট থেকে এটি বিয়োগ করুন

 এর সাথে চারটি গুন করুন

()+ নিম্নলিখিত যোগ করুন

 চরিত্র ইনপুট ...

'BC'⍳এই স্ট্রিংয়ের  … এর de ndex ("এ" শেষের বাইরে সূচক হিসাবে 2 দেবে)

8÷⍨ 8 দ্বারা ভাগ করুন

2* যে শক্তি 2 বাড়াতে

1E3÷ 1000 এটি দ্বারা বিভক্ত

.2+ এতে যোগ করুন

 তল (বৃত্তাকার নিচে)


@ এইচপিউইজ হ্যাঁ টাইপো। ধন্যবাদ।
Adám

2

বেফুঞ্জ, 69 56 55 বাইট

"}"8*~3%:"L"*7vv\p00-1_$..@
")"*":":-*!!\+<>2/00g:^:&\/

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

ব্যাখ্যা

তাই আমরা দেওয়া বিন্যাস চরিত্র, জন্য বেস আকার নিরূপণ আমরা ফ্লোটিং পয়েন্ট বা Befunge একটি ক্ষমতা ফাংশন ভালো কিছু বিলাসিতা না , যেমন ফলো:

fn = f % 3
width = 1000 - (n * 76 + 7) * !!n
height = width * 58 / 41

তারপরে প্রদত্ত আকারের সংখ্যার জন্য উপযুক্ত মহকুমায় যাওয়ার জন্য আমরা বারবার এই মাত্রাগুলি ঘোরান এবং ভাগ করি।

"}"8*                         Push 1000 for later use in the width calculation.
     ~                        Read the format character from stdin.
      3%                      Convert into a number in the range 0 to 2.
        :"L"*7v               Calculate width = 1000 - (fn * 76 + 7) * !!fn
        -*!!\+<                  where fn is the format number derived above.
")"*":":                  /   Calculate height = width * 58 / 41.
                         \    Swap so the width is above the height on the stack.
                      v:&     Read the numeric size from stdin and duplicate for testing.
                      _       While not zero, go left.
                 p00-1        Decrement the size and move it from the stack into memory.
               v/             Swap the width and height.
               >2/            Divide the new width by 2.
                  00g:        Restore the size from memory and duplicate for testing.
                      _       While not zero, repeat this loop.
                       $      When zero, continue to the right and drop the size.
                        ..@   Output the width and height, then exit.
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.