100 জাভা টুপল ক্লাস উত্পন্ন করুন


37

স্ট্যান্ডার্ড আউটপুট, বা আপনার ভাষার সমতুল্য, জাভা কোডের 100 টি লাইনের (বৈধ) কোডটি লিখুন এমন স্ক্রিপ্ট লিখুন:

class Tuple1 {public Object _0;}
class Tuple2 {public Object _0,_1;}
class Tuple3 {public Object _0,_1,_2;}
class Tuple4 {public Object _0,_1,_2,_3;}
class Tuple5 {public Object _0,_1,_2,_3,_4;}
class Tuple6 {public Object _0,_1,_2,_3,_4,_5;}
class Tuple7 {public Object _0,_1,_2,_3,_4,_5,_6;}
class Tuple8 {public Object _0,_1,_2,_3,_4,_5,_6,_7;}
class Tuple9 {public Object _0,_1,_2,_3,_4,_5,_6,_7,_8;}
class Tuple10 {public Object _0,_1,_2,_3,_4,_5,_6,_7,_8,_9;}
class Tuple11 {public Object _0,_1,_2,_3,_4,_5,_6,_7,_8,_9,_10;}
class Tuple12 {public Object _0,_1,_2,_3,_4,_5,_6,_7,_8,_9,_10,_11;}

শেষ লাইন দিয়ে শুরু করা উচিত class Tuple100

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


6
আমি চ্যালেঞ্জ গ্রহণ! আসলে, আমি জাভাতে এটি করতে যাচ্ছি!
আশ্বিন গুপ্ত

আমি কি একটি ফাংশন লিখতে পারি বা এটি একটি সম্পূর্ণ প্রোগ্রাম হতে হবে?
আশ্বিন গুপ্ত

3
আমি সাইট যাতে একটি স্ক্রিপ্ট চাইলেন নতুন, কিন্তু আমি এটা ফাংশন করার অনুমতি গতানুগতিক এর শ্রবণ করেছি, এবং যে এড়াতে জাভা জন্য ধারণা অনেক তোলে, public static void main(String[] args)তাই স্পষ্টভাবে যদি আপনি চান একটি ফাংশন দিতে।
রায় তোয়াল

1
গ্রেট! ধন্যবাদ রে!
আশ্বিন গুপ্ত

এটি কোথাও খুব অল্পের কাছাকাছি নয়, তবে আমি nজাভাতে লিখেছি আমার- টিপল জেনারেটরটি ভাগ করার জন্য এটি একটি সঠিক জায়গা বলে মনে করি : github.com/kenzierocks/Tuplocity । এটি সম্পূর্ণ জেনেরিক টিপলস উত্পাদন করে!
অষ্টাভিয়া টোগামি

উত্তর:


8

জल्फ, 42 বাইট

জেলিকে এখন পর্যন্ত সেরা স্কোর দিয়ে মারার জন্য আমি কি বোনাস পয়েন্ট পেয়েছি? অপ্রিন্টেবল রয়েছে, তাই আপনি এটি এখানে অনলাইনে চেষ্টা করতে পারেন । পাঠযোগ্যতার জন্য আমি অ-প্রিন্টেবলগুলি তাদের স্বতন্ত্র সূচকগুলির সাথে প্রতিস্থাপন করেছি।

‼Μz~1d"Ξ/êί Tuple% {Ξ0î⌂ Ξ2Qμ_ %;}"HRzH",_

ব্যাখ্যা

‼Μz~1d"Ξ/êί Tuple% {Ξ0î⌂ Ξ2Qμ _%;}"HRzH",_
 Μz~1d                                     map the range 1..100 with the following function
      "                                    begin a string
       Ξ/êί                                short for "class"
            Tuple% {               H       string interpolate H (current number)
                    Ξ0î⌂ Ξ2Qμ              short for "public Object"
                              _%;}" RzH    string interpolate with a range from 1..H joined
                                       ",_  by the string ",_" (auto-closed quotes)

1
আমি ধরে নিচ্ছি. পরে যদি নতুন স্কোর আসে তবে গ্রহণযোগ্য উত্তরটি পরিবর্তন করা কি এই সাইটে উপযুক্ত?
রায় তোয়াল

6
@ রায়টোল হ্যাঁ, এটি উপযুক্ত এবং এমনকি এটি করার পরামর্শ দেওয়া হয়েছে।
কনার ও'ব্রায়েন

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

@ রিসার্সিভ গ্রীক আইএসও -8859-7, এটি: en.wikedia.org/wiki/ISO/IEC_8859-7
কনার ও'ব্রায়েন

23

vim 56 54 টি কীস্ট্রোক

iclass Tuple1 {public Object _0;}<esc>qyYp<C-a>$y2bPr,<C-a>q98@y

যেহেতু ভি পিছনের দিকে সামঞ্জস্যপূর্ণ তাই আপনি এটি অনলাইনে চেষ্টা করতে পারেন !

এটি ভিমের জন্য নিখুঁত কাজ! আমি এটি পরে আরও কিছুটা গল্ফ করতে পারি। এছাড়াও নোট করুন যে <c-a>কন্ট্রোল-এ এর অর্থ এবং এটি একটি কীস্ট্রোক হিসাবে গণ্য।

ব্যাখ্যা:

iclass Tuple1 {public Object _0;}<esc>         'Enter the starting text


qy                          'Start recording in register y
  Yp                        'Yank the current line, the print on the line below
     <C-a>                  'Increment the next digit to occur by one
          $                 'Move to the end of this line
           y2b              '(yank) 2 words (b)ack. This will grab '_0;'
              P             'Print the previously yanked word before the cursor.
               r,           '(r)eplace the char under the cursor with a comma.
                 <c-a>q     'Increment the current digit, then stop recording
                       99@y 'Playback macro 'y' 99 times.

1
আপনি এক কীস্ট্রোক যেমন কন্ট্রোল-এ গণনা করেন, তাহলে আপনি প্রতিস্থাপন পারে yyদ্বারা Y

1
@ সিকি হা হা, আমি আপনার মন্তব্যটি দেখার আগে ঠিক একই জিনিসটি অনুধাবন করেছি এবং ঠিক এটি সম্পাদনা করেছি। বিখ্যাত মন সর্বদাই অন্যরকম চিন্তা করে!
ডিজেএমসিএমহেম

এটি মনে হচ্ছে প্রশ্ন চলে যেমন class Tuple101নয় class Tuple100
নম্বরমানিয়াক

1
@Numbermaniac সরল একের পর এক ত্রুটি। যে ইশারা জন্য ধন্যবাদ! এখনই ঠিক করা হয়েছে :)
ডিজেএমসিএমহেম

10

জেলি, 44 বাইট

R’j“,_”
“¤>%,oỊȤʠ“ØụĊ5D³ṃṠɼQ»j;Ç;“;}¶”
ȷ2RÇ€

আমার প্রথম জেলি উত্তর। এটি অনলাইন চেষ্টা করুন!


আমি কি এটি ভুল করছি বা এটি কেবল স্ট্রিংয়ের পরিবর্তে একটি দৈত্য তালিকা আউটপুট দিচ্ছে?
ডেনকার

@DenkerAffe এখন মনে হচ্ছে এটি কাজ করছে! জেলিতে একটি অস্থায়ী বাগ ছিল। (এছাড়াও, লিঙ্কটি আমার সমাধানের পুরানো সংস্করণে ছিল, সুতরাং আমি এটি আপডেট করেছি))
লিন

দুর্দান্ত ... এখন পর্যন্ত এটি সিজেএম সলিউশন থেকে 9 বাইট কম খাটো!
রায় তোয়াল

8

পাইথ, 53 50 48 বাইট

VS100%." }SüÆðQ´Ó3Ô«%&a´4UçõÛ"[Nj",_"UN

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

পরিসীমা (1,100) ওভার স্ট্রেফওয়ার্ড পুনরাবৃত্তি এবং ফর্ম্যাট করার মাধ্যমে একটি প্যাকযুক্ত স্ট্রিং থেকে জাঁকজমকপূর্ণ স্ট্রিং তৈরি করা।

ব্যাখ্যা

VS100%। "} S}Q´Ó3Ô«% & a´4UçõÛ "[এনজে", _ "ইউএন

ভিএস 100 # আইট্রেট ওভার রেঞ্জ (1,100)
     %। "} SüÆðQ´Ó3Ô«% & a´4UçõÛ "# স্ট্রিংটি আনপ্যাক করুন এবং এটি ফর্ম্যাট করুন
                              [# যুক্তি বিন্যাসের জন্য তালিকা
                               এন # টিপল সংখ্যা
                                জে ইউএন # অবজেক্ট সংখ্যায় যোগদান করুন ...
                                 ", _" # ... পৃথক স্থানে ", _"

আনপ্যাকড স্ট্রিংটি class Tuple%i {public Object _%s;}


দুটি গল্ফ: s[তাদের সবার পরিবর্তে ব্যবহার করুন +[একটি স্বেচ্ছাসেবী দৈর্ঘ্যের তালিকা তৈরি করে এবং sএটিকে সংযুক্ত করে। এছাড়াও, যেহেতু আপনি চান [1, 2, ... 100], না [0, 1, .. 99], ব্যবহার করুন VS100এবং আপনার কোনও প্রয়োজনও হবে না h
isaacg

ধন্যবাদ @ আইস্যাক, কৌশল সম্পর্কে জানেন না S! :) ইতিমধ্যে সমস্ত থেকে মুক্তি পেয়ে বসে ছিলাম ++++, আমি জানতাম আরও ভাল উপায় আছে।
ডেনকার

আপনাকে স্বাগতম. যাইহোক, আপনি মনে করছেন "অযথা একটি ট্রেলিং যুক্ত করেছেন ।
isaacg

1
@ আইস্যাকগের কোনও কারণ j<str><int>নেই কি U?
lirtosiast

1
না সত্যিই না. করব.
isaacg

7

কফিস্ক্রিপ্ট, 86 84 বাইট

console.log "class Tuple#{i} {public Object _#{[0...i].join ',_'};}"for i in[1..100]

অনলাইনে সমাধান দেখুন


পিপিসিজিতে আপনাকে স্বাগতম! কেবলমাত্র আপনাকে সম্পাদনাগুলি জানাতে যে উত্তরগুলি উন্নত করা হয় তা সাধারণত তিরস্কার করা হয় (এবং যদি তারা পর্যালোচনার সারিতে থেকে যায় তবে তা প্রত্যাখ্যান করা উচিত)। সুতরাং লোকেরা পরামর্শ নিয়ে মন্তব্য করবে এমন সম্ভাবনা বেশি থাকে তাই আপনি নিজে সেগুলি পর্যালোচনা করতে পারেন। :) (আসল টিপস হিসাবে আমার মনে হয় আপনার সামনে আর জায়গার দরকার নেই এবং এর forপরেও কোনও দরকার নেই in))
মার্টিন এন্ডার

নেই console.log"কাজ করে? (কফি স্ক্রিপ্টটি জানেন না, এটি একটি সাধারণ কৌশল
অ্যাডিসন ক্রম্প

না, স্থানটি সরানো হিসাবে। : পিআই জানেন যে এটি বিদ্যমান, আমি ঠিক জানি না এটি বৈধ সিনট্যাক্স কিনা।
অ্যাডিসন ক্রম্প

@ ভোটটোক্লোজ আমি এর আগে চেষ্টা করেছি (coffeescript.org এ লাইভ ট্রান্সপেলার ব্যবহার করে এটি কার্যকর হয়নি)।
মার্টিন ইন্ডার

@ ভোটটোক্লোজ ওহ দুঃখিত, এটি দেখেনি। ব্যাকরণ দ্বারা কোনওভাবে স্থানের প্রয়োজন হয়, তবে কেন (এখনও) তা আমার কাছে ঠিক পরিষ্কার নয়। কফিস্ক্রিপ্টে ব্যবধানের বিষয়টি অনেক বেশি গুরুত্বপূর্ণ, উদাহরণস্বরূপ, এর x? y:zথেকে সম্পূর্ণ আলাদা x ? y:z। আপনি বলতে পারেন console.log?"hello"কিন্তু না console.log"hello"। উল্লেখযোগ্য সাদা স্থান wh কখনও সুন্দর, কখনও অদ্ভুত।
রায় তোয়াল

7

জাভা, 160 , 125 বাইট

উন্নতি করার জন্য @ ডেনারএফিকে, @ ডেনহাম কোট এবং @ ম্যাথিয়াস এট্টঞ্জারকে ধন্যবাদ।

জাভা লেখার জন্য জাভা (কারও কারও কারও কাছে ছিল!)

void z(){String s="_0";for(int i=1;i<101;){System.out.println("class Tuple"+(i++)+" {public Object "+s+";}");s+=",_"+i;}}

এবং আন-গল্ফ সংস্করণ

void z(){
    String s = "_0";
    for(int i = 1 ;i < 101;){
        System.out.println("class Tuple" + (i++) + " {public Object "+ s + ";}");
        s += ",_" + i;
        }
    }

2
প্রোগ্রামিং ধাঁধা এবং কোড গল্ফ স্বাগতম! চ্যালেঞ্জের অন্যথায় বর্ণিত না হলে আপনি সম্পূর্ণ প্রোগ্রামগুলির পরিবর্তে ফাংশনগুলি ব্যবহার করতে পারেন। সুতরাং আপনার সমস্ত public static void main...জিনিস সংরক্ষণ করতে এখানে একটি জাভা 8-ল্যাম্বদা (ফলাফলটি ফেরত দেয়) ব্যবহার করা উচিত ।
ডেনকার

4
পিপিসিজিতে আপনাকে স্বাগতম। এই উত্তরে অবজেক্টের ঘোষণার শেষে একটি অতিরিক্ত কমা রয়েছে ...class Tuple1 {public Object _0,;} class Tuple2 {public Object _0,_1,;}
ডেনহাম কোট

3
আপনি (i + 1) এর পরিবর্তে সিউসাউটে (++ i) আপনার লুপ কাউন্টারটি বাড়িয়ে এবং i++লুপ সেটআপের জন্য অপসারণ করে আরও 3 বাইট সংরক্ষণ করতে পারেন
ডেনহাম কোট

আপনার শুরু করা উচিত String s = "_0"যাতে আপনি s += ",_" + iএকটি বাইট সংরক্ষণ করতে পারেন । এটি পেছনের কোমা দিয়েও সমস্যার সমাধান করবে। আপনাকে লুপটি 1কম থেকে যেতে শুরু 101করতে হবে এবং কেবল (i+1)আপনার আউটপুট বার্তাকে রূপান্তর করে অতিরিক্ত 4 বাইট সরিয়ে ফেলতে সক্ষম হবেন i। একথাও ঠিক যে, আপনি প্রিন্ট করতে হবে আগে বৃদ্ধিশীল s
409_ কনফ্লিক্ট

ধন্যবাদ, এই সমস্ত জিনিসগুলি করেছেন এবং অবশ্যই জাভা 8-ল্যাম্বডায় জাঁকজমক করতে চলেছি।
সোলোকিক্স

6

ওরাকল এসকিউএল 9.2, 138 137 বাইট

SELECT REPLACE('class Tuple'||LEVEL||' {public Object'||SYS_CONNECT_BY_PATH(LEVEL-1,',_')||';}','t,','t ')FROM DUAL CONNECT BY LEVEL<101;

@ পিটার 0/1 ভুলটি নির্দেশ করার জন্য ধন্যবাদ

ক্যোয়ারী 100 টি সারি উত্পন্ন করার জন্য শ্রেণিবদ্ধ ক্যোয়ারির সংযোগ দ্বারা ব্যবহার করে।

লেভেল সিউডোকলোনামে প্রতিটি সারিটির সারি সংখ্যা থাকে।

SYS_CONNECT_BY_PATH প্রতিটি সারির প্রথম প্যারামিটার, সারির নম্বরটি সম্মতিযুক্ত করে এবং দ্বিতীয় পরামিতিটিকে বিভাজক হিসাবে ব্যবহার করুন।


দয়া করে কিছু ব্যাখ্যা যুক্ত করুন
ইউল

চতুর :) এর Object _1পরিবর্তে এটি শুরু হয় Object _0, যাতে আরও দুটি বাইট লাগবে ( -1)। যাইহোক, _কানাট্যান্ট করার SYS_CONNECT_BY_PATHপরিবর্তে চারটিকে যুক্ত করা যেতে পারে এবং এটি আবার দুটি বাইট দ্বারা কমিয়ে দেয়:REPLACE('class Tuple'||LEVEL||' {public Object'||SYS_CONNECT_BY_PATH(LEVEL-1,',_')||';}','t,_','t _')
পিটার ল্যাং

6

ব্যাচ, 128 বাইট

@set m=_0
@for /l %%t in (1,1,100)do @call:b %%t
@exit/b
:b
@echo class Tuple%1 {public Object %m%;}&set m=%m%,_%1

সম্পাদনা: @ বাবাকে 10 টি বাইট সংরক্ষণ করা হয়েছে @ EʀɪᴋᴛʜᴇGᴏʟғᴇʀ এর জন্য 1 বাইট সংরক্ষণ করা হয়েছে ᴏʟғᴇʀ


3
আমি কোড গল্ফে ব্যাচটি দেখতে সর্বদা সত্যই খুশী হই, এছাড়াও, সর্বত্র @ ব্যবহার করার পরিবর্তে, আপনি x নামক কোনও ফাইলে আউটপুট পুনর্নির্দেশ করতে পারেন এবং আউটপুট হিসাবে এটি ব্যবহার করতে পারেন
ডেনিস ভ্যান গিলস

টুইট করুন
নিল

বিদায় নিয়েছে enabledelayedexpansion117 বাইট জন্য: gist.github.com/Elusive138/4cea555114a979954dcb - আপনি কনসোল উইন্ডো বন্ধ আপনি সরিয়ে আরো দুটি সঞ্চয় করতে পারেন কিছু মনে না করেন /bথেকে ARG exit
বব

@ নীল লল ঠিক আছে তাই আমি এটি চালানোর চেষ্টা করেছি এবং এখন বুঝতে পেরেছি আপনি কী করেছেন। খুব চালাক.
আশ্বিন গুপ্ত

শুরুতে, ব্যবহার করুন@echo off
ইলিয়ট এ।


5

পাওয়ারশেল - 65 বাইট

(মন্তব্যের জবাবে সংশোধিত)

সমস্ত কৃতিত্ব টিমমিডিকে

1..100|%{"class Tuple$_ {public Object _$(0..($_-1)-Join",_");}"}

ভোট কেন নিচে? (দয়া করে মনে রাখবেন এটি আমার প্রথম পোস্ট, একটি দুর্দান্ত স্বাগত নয়?)
বুলেটপ্রফুল


4

আর - 199 132 123 118 বাইট

সংস্করণ 4

p=paste0;for(i in 1:10)cat(p("class Tuple",i," {public Object ",toString(sapply(0:(i-1),function(x)p("_",x))),";}\n"))

সংস্করণ 3

p=paste0;for(i in 1:8)cat(p("class Tuple",i," {public Object ",p(sapply(0:(i-1),function(x)p("_",x)),collapse=","),";}\n"))

সংস্করণ 2

p=paste0;for(i in 1:100)cat(p("class Tuple",i," {public Object ",p(sapply(0:(i-1),function(x)p("_",x)),collapse=","),";}"),sep="\n")

সংস্করণ 1

for (i in 1:100){
  foo <- paste0("class Tuple", i, " {public Object ")
  for (j in 0:(i - 1)){
    foo <- if (j < (i - 1)) paste0(foo, "_", j, ",") else paste0(foo, "_", j, ";}")
  }
  print(foo)
}

3
প্রোগ্রামিং ধাঁধা এবং কোড গল্ফ স্বাগতম! যেহেতু এটি একটি কোড গল্ফ প্রতিযোগিতা, আপনি নিজের কোডটি যতটা সম্ভব সংক্ষিপ্ত করতে চাইবেন। আপনি প্রতিটি একক অক্ষরে ভেরিয়েবলের নাম সংক্ষিপ্ত করে, সাদা স্থান সরিয়ে, এবং =পরিবর্তে অ্যাসাইনমেন্টের জন্য ব্যবহার করে শুরু করতে পারেন <-
অ্যালেক্স এ।

144 বাইট:for(i in 1:100){f=(p=paste0)("class Tuple",i," {public Object ");for(j in 0:(i-1))f=if(j<i-1)p(f,"_",j,",")else p(f,"_",j,";}");cat(f,sep="\n")}
অ্যালেক্স এ।

সমস্যা নেই. :) এছাড়াও, আপনাকে পোস্ট বডিতে আপনার সংস্করণগুলি ট্র্যাক করার দরকার নেই যেহেতু সংশোধন ইতিহাসের লিঙ্কটির মাধ্যমে অ্যাক্সেসযোগ্য যা "লিখিত X মিনিট পূর্বে সম্পাদিত হয়েছে" says
অ্যালেক্স এ

(যদিও আপনার সম্পাদনার সংক্ষিপ্তসারগুলিতে বা প্রতিটি সংশোধনীর সাথে আপনি কী পরিবর্তন করেছেন এমন পোস্টে কিছুটা ইঙ্গিত দেওয়া উপযুক্ত হবে) যাতে অন্যরা আপনার সংশোধন প্রক্রিয়া থেকে শিখতে পারে)
কুইন্টোপিয়া


4

জাভা, 103 বাইট

s->{s="_0";for(int i=0;i++<100;s+=",_"+i)System.out.printf("class Tuple%s {public Object %s;}\n",i,s);}

আমার প্রথমবার এখানে। হাই! আমি একটি জাভা 8 ল্যাম্বদা এক্সপ্রেশন (ওরফে একটি বেনামে ফাংশন) জন্য গিয়েছিলাম।

উদার সংস্করণ

s -> {
    s = "_0";
    for (int i = 0; i++ < 100; s += ",_" + i)
        System.out.printf("class Tuple%s {public Object %s;}\n", i, s);
}

প্রকৃতপক্ষে জাভা 8-এ এটি ব্যবহার করতে আপনাকে এটিকে একটি উপযুক্ত ক্রিয়ামূলক ইন্টারফেসের (অথবা এটিতে কাস্ট করা) ভেরিয়েবলের কাছে নির্ধারণ করতে হবে এবং তারপরে এর পদ্ধতিটি কল করতে হবে; তবে প্রযুক্তিগতভাবে, ফাংশনটি কেবল ল্যাম্বডা এক্সপ্রেশন হয় তাই আমি কেবল এটিই গণনা করছি।

এটির জন্য একটি ইনপুট প্যারামিটারেরও দরকার হয়, যা আমাকে কয়েকটা বাইট সংরক্ষণ করে, যেহেতু আমি এটির ধরণ নির্দিষ্ট না করে স্থানীয় ভেরিয়েবল হিসাবে অপব্যবহার করতে পারি। আমি নিশ্চিত নই যে এটিকে প্রতারণা হিসাবে বিবেচনা করা হয়েছে কিনা, তবে আমার কাছে এটি নিয়মের মধ্যে রয়েছে বলে মনে হচ্ছে: আমি কেবল লোককে দেখলাম যে কোনও ফাংশন পোস্ট করার অনুমতি দেওয়া হয়েছে, কীভাবে সেই ফাংশনটি চাওয়ার দরকার নেই। :) এবং এটি আসলে প্যারামিটারটি পড়ে না, সুতরাং ফাংশনটি এখনও স্ব-অন্তর্ভুক্ত; আপনি এটিতে যে কোনও স্ট্রিং, বা এমনকি নালও পাস করতে পারেন এবং এটি এখনও সঠিক আউটপুট উত্পাদন করতে পারে।

এটি এখানে কীভাবে ব্যবহার করবেন তা এখানে:

import java.util.function.Consumer;

public class Main {
    public static void main(String[] args) {
        Consumer<?> r =
            s->{s="_0";for(int i=0;i++<100;s+=",_"+i)System.out.printf("class Tuple%s {public Object %s;}\n",i,s);}
        ;
        r.accept(null); 
    }
}

3

পাইথন 2, 96

def f(n=99):s=n and f(n-1)+',_'+`n`or"class Tuple%d {public Object _0";print s%-~n+';}';return s

পাইথন 3, 98

def f(n=99):s=n and f(n-1)+',_%d'%n or"class Tuple%d {public Object _0";print(s%-~n+';}');return s

ব্যবহার:

f()

Ungolfed:

def javatuple(n=99):
    if n == 0:
        s = "class Tuple%d {public Object _0"
    else:
        s = javatuple(n-1) + ',_' + str(n)
    print(s%(n+1) + ';}')
    return s

formers:

103

r=range
for i in r(100):
 print"class Tuple%d {public Object _%s;}"%(i+1,',_'.join(`j`for j in r(i+1)))

108

def f(n=99):
 if n:f(n-1)
 print"class Tuple%d {public Object _%s;}"%(n+1,',_'.join(`i`for i in range(n+1)))

আপনার অজগর 2 জবাবটিতে শেষ লাইনটি অসম্পূর্ণ বলে মনে হচ্ছে: print f(3) দেয়: class Tuple1 {public Object _0;} class Tuple2 {public Object _0,_1;} class Tuple3 {public Object _0,_1,_2;} class Tuple4 {public Object _0,_1,_2,_3;} class Tuple%d {public Object _0,_1,_2,_3
ডাইটার

@ ডিটার শেষ লাইনটি একটি ফলাফল is এটি কেবল তখনই ছাপা হয় যখন আপনি এটিকে ইন্টারেক্টিভভাবে চালান।
পাচোলিক


2

গ্রোভি, rs৪ টি চর

"জয়েন ()" অপরাজেয় ... নতুন সমাধান, @ ইয়ারিয়াশকে ধন্যবাদ

100.times{println"class Tuple$it {public Object _${(0..it-1).join',_'};}"}

পুরানো সমাধান, 78 টি অক্ষর:

(1..100).each{println"class Tuple$it {public Object _${(0..it-1).join',_'};}"}

2
আপনি 100.times{}পরিবর্তে ব্যবহার করতে পারেন (1..100).each{}
ক্রিজিসটফ আটাসিক

@ ইয়ারিয়াশ ইঙ্গিতটির জন্য ধন্যবাদ!
t0r0X


1

লুয়া, 128 106 বাইট

আমি এখনও একটি মুদ্রিত মানের উপর সরাসরি কাজ করার উপায় অনুসন্ধান করার চেষ্টা করছি, কোনও স্ট্রিংয়ে নয়।

সম্পাদনা: আংশিকভাবে এটি পাওয়া গেছে! আমার এখনও "_0, _1 ..." অংশের জন্য একটি স্ট্রিং দরকার তবে এটি ইতিমধ্যে ভাল :)

s=""for i=0,99 do s=(s..",_"..i):gsub("^,",s)print(("class Tuple"..(i+1).." {public Object ")..s..";}")end

পুরানো 128 বাইট সমাধান

s="class Tuple1 {public Object _0;}"print(s)for i=1,99 do s=s:sub(1,s:find";"-1):gsub("e%d+","e"..i+1)..",_"..i..";}"print(s)end

Ungolfed

s=""
for i=0,99
do
  s=(s..",_"..i)              -- concatenate s with ",_i"
      :gsub("^,",s)           -- remove the leading "," for ",_0"
  -- then print the concatenated string
  print(("class Tuple"..(i+1).." {public Object ")..s..";}")
end

1

পাইথন 3, 111 109 105 বাইট

[print('class Tuple%s {public Object %s;}'%(i,','.join('_%i'%j for j in range(i))))for i in range(1,101)]

এটি বিশ্বের সবচেয়ে সংক্ষিপ্ত জিনিস নয়, আমি কেবল অংশ নিচ্ছি।

সম্পাদনা 1: 0,প্রথমে সরিয়ে 2 বাইট নিচেrange

edit2: আমি অকারণে ভোটদান করেন intকরার strমাত্র ব্যবহারের পরিবর্তে %i... নিচে 105 করতে।


স্বাগতম, দুর্দান্ত শুরু! যদি আগ্রহী হন, তবে range(i)আপনি যে জায়গায় দুটি বার range(0,i)ব্যবহার rangeকরেছেন তার জায়গায় বা চেষ্টা করে দেখুন, r=rangeতাড়াতাড়ি চেষ্টা করুন এবং প্রতিটি কলকে ঠিক r(অন্যান্য পাইথন সমাধান হিসাবে) উল্লেখ করুন।
রায় তোয়াল

ওহ, আমি ভুলে গিয়েছিলাম range0 থেকে শুরু করে ডিফল্ট। 2 বাইট ডাউন ডাউন, তবে r=range;ঠিক একই চরিত্রের গণনায় শুরুর ফলাফল যুক্ত করে, আমি চেষ্টা করেছি! : ডি
ইশাক

আমি দায়েরকে করা মত একই মন্তব্য : ',_'.join(map(str,range(i)))এখানে 7 বাইট সংক্ষিপ্ত।
409_ কনফ্লিক্ট

1

গণিত, 130 বাইট

{"class Tuple",ToString[#]," {public Object ",StringReplace[ToString[#-1&/@Range@#],{" "|"{" ->"_","}"->";}\n"}]}&/@Range[100]<>""

ইঙ্গিত: \nআক্ষরিক নিউলাইন চরিত্রের সাথে প্রতিস্থাপন করা যেতে পারে।
LegionMammal978


1

জাভা, 116

(কেবল মুদ্রণ কার্যের জন্য - কিছু মন্তব্য অনুসারে, এটি নিয়মের সাথে সামঞ্জস্যপূর্ণ)

import static java.lang.System.*;
public class T
{
    public static void main(String[] args)
    {
        T t = new T();
        t.p();
    }

    void p(){String s="_0";for(int i=0;i<100;){out.println("class Tuple"+ ++i+" {public Object "+ s + ";}");s+=",_"+i;}}
}

1

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

<?php for($i=0;$i<100;$i++){$m.=$i==0?'_'.$i:',_'.$i;echo 'class Tuple'.($i+1).' {public Object '.$m.';}<br/>';}

যেখানে সম্ভব সেখানে ডাবল উদ্ধৃতিতে প্রতিধ্বনি পরিবর্তন করে আপনি কয়েকটি বাইট সংরক্ষণ করতে পারেন:<?php for($i=0;$i<100;$i++){$m.=$i==0?"_$i":",_$i";echo 'class Tuple'.($i+1)." {public Object $m;}\n";}
স্যামসকাঞ্চ ৮

1
@ স্যামসকোঞ্চ এছাড়াও এর পরিবর্তে echo 'class Tuple'.($i+1)." {public Object $m;}\n";, আপনি ব্যবহার করতে পারেন echo'class Tuple',$i+1," {public Object $m;}\n";যা 3 বাইট সংক্ষিপ্ত is এছাড়াও, মেটা অনুসারে, আপনি <?phpএটিকে সরাতে এবং ধরে নিতে পারেন যে আপনার কোডটি কার্যকর করা হবে php -r "code"। এছাড়াও, আপনি for(;++$i<101;)echo"class Tuple$i {public Object ",$m=($m?"$m,":'')."_$i",";}\n";80 বাইটের জন্য করতে পারেন (আপনাকে \nএকটি নতুন নিউলাইন দিয়ে প্রতিস্থাপন করতে হবে )। এটি এখানে চেষ্টা করে দেখুন: ideone.com/oOzKtP
ইসমাইল মিগুয়েল

1

গুরুতরভাবে, 55 বাইট

2╤R`;r"$'_+"£M',j@k"c╙ò T╒α%d {pu▐V Object %s;}"⌡%`M'
j

হেক্সডাম্প (এর সাথে বিপরীতমুখী xxd -r):

00000000: 32e2 95a4 5260 3b72 2224 275f 2b22 c2a3  2...R`;r"$'_+"..
00000010: 4d27 2c6a 406b 2263 e295 99c3 b220 54e2  M',j@k"c..... T.
00000020: 9592 ceb1 2564 207b 7075 e296 9056 204f  ....%d {pu...V O
00000030: 626a 6563 7420 2573 3b7d 22e2 8ca1 2560  bject %s;}"...%`
00000040: 4d27 0a6a                                M'.j

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

হ্যাঁ, সেই নিউলাইনটি সেখানে থাকার কথা।

ব্যাখ্যা (নতুন লাইনের সাথে প্রতিস্থাপন \n):

2╤R`;r"$'_+"£M',j@k"c╙ò T╒α%d {pu▐V Object %s;}"⌡%`M'\nj
2╤R                                                       push range [1,100]
   `                                              `M      map:
    ;r                                                      push a, range(a)
      "$'_+"£M                                              map:
       $'_+                                                   stringify, prepend "_"
              ',j                                           join with commas
                 @k                                         swap and push stack as list
                   "c╙ò T╒α%d {pu▐V Object %s;}"⌡           decompress, result is
                                                              "class Tuple%d {public Object %s;}"
                                                 %          string format
                                                    '\nj  join with newlines

1

জাপট, 52 বাইট

Lo £`cÓ? TÕà{X} \{puÞV Object {Xò ®'_+Z}&}` r&59d} ·

?আক্ষরিক বাইট 0x95 হওয়া উচিত। এটি অনলাইন পরীক্ষা!

জাপট এর রয়েছে:

  • আপনার কোডটি সংক্ষিপ্ত করতে সহায়তা করতে সংক্ষিপ্ত বাক্য গঠন
  • স্ট্রিং সংক্ষেপণ এটি আরও আরও সংক্ষিপ্ত করতে সহায়তা করে।
  • আপনার কম্পিউটারটিকে উইন্ডো থেকে ফেলে দিতে চান এমন প্রচুর বাগ

আমি স্ট্রিংতে একটি সেমিকোলনও ব্যবহার করতে পারি না কারণ এতে ফাংশনটি আবৃত রয়েছে সেমিকেলনের পরে সবকিছু ফিরিয়ে দিতে চায়। এটি কেবল 46 বাইট হওয়া উচিত:

Lo £`cÓ? TÕà{X} \{puÞV Object {Xò ®'_+Z};}`} ·

কিন্তু হায়, তা হয় না। আমি কয়েক ঘন্টা ধরে এই বাগগুলি ঠিক করতে পারি কিনা তা আমি দেখতে পাচ্ছি।

কিভাবে এটা কাজ করে

Lo £       }  // Generate the range [0..100), and map each item X in this range to:
`cÓ? TÕà{X}   //  "class Tuple" + X +
\{puÞV Object //  "{public Object" +
{Xò ®'_+Z}    //   Create the range [0..X] and map each item Z to "_" + Z.
              //   Upon stringification, this automatically inserts the commas.
&}`           //  + "&}"
r&59d         //  Replace the "&" with String.fromCharCode(59), or ";".
·             // Join the result with newlines.

বাঃ! 18 মাস কমেছে! আপনাকে প্রথমে ইনক্রিমেন্ট করতে হবে Xby
শেগি

1

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

2 বাইট অফ ধন্যবাদ @ সিও'বা'কে

_=>[...Array(100)].map((x,i)=>`class Tuple${++i} {public Object ${[...Array(i)].map((y,j)=>'_'+j)};}`).join`
`

Ungolfed:

_=>                                         // anonymous function
    [...Array(100)].map((x,i)=>             // 100 times [0..99]
        `class Tuple${++i} {public Object   // Tuple index + 1
            ${[...Array(i)].map(            // (index + 1) times
                (y,j)=>'_'+j                // _+j with j in [0..index]
            )}                              // Array without join prints comma in between
        ;}`                                 // as literal string
    ).join`\n`                              // display array line by line

1
আমার মনে হয় আপনি প্রতিস্থাপন করতে পারেন ${i+1}সঙ্গে ${i++}এবং প্রতিস্থাপন ${[...Array(i++)]সঙ্গে ${[...Array(i)]
কনর ও'ব্রায়েন

@ CᴏɴᴏʀO'Bʀɪᴇɴ। ধন্যবাদ, আমি আপডেট করেছি++i
সরিয়েছি

1

গ্রোভি, 97 বাইট

(1..100).each{println "class Tuple${it} {public Object ${(0..it-1).collect{"_$it"}.join(',')};}"}

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


1
আপনি (1..100) এর পরিবর্তে 100.টাইমস user user ব্যবহার করতে পারেন ea ch}, যা 4 বাইট সংরক্ষণ করে।
ক্রিজিসটফ আটাসিক

আপনি জয়েন ( join',') তে .collect{}*.with{}
ব্রেসগুলি

1

পাইথন 2, 96 বাইট

r=range
for i in r(1,101):print"class Tuple%d {public Object _%s;}"%(i,',_'.join(map(str,r(i))))

ব্যবহারের পরামর্শের জন্য @ ডেনারএফিকে ধন্যবাদ lambda

ধারণার জন্য @ ম্যাথিয়াসএটিঙ্গারকে ধন্যবাদ join


2
আপনি যদি reduce(lambda x,y:'%s,_%s'%(x,y), r(i))
এটির

1
অথবা ',_'.join(map(str,r(i)))অতিরিক্ত 14 বাইট অপসারণের জন্য ব্যবহার করুন (বা 15, যেহেতু আপনি আপনার অতিরিক্ত স্থান রেখে গেছেন reduce)।
409_ কনফ্লিক্ট

1

সি ++, 164 159 157 বাইট (155 কেবলমাত্র ফাংশন হিসাবে)

#include <iostream>
#define o std::cout<<
int main(){int j,i=0;for(;i<100;++i){o"class Tuple"<<i+1<<" {public Object _0";for(j=0;++j<=i;)o",_"<<j;o";}\n";}}

এটি একটি সম্পূর্ণ প্রোগ্রাম। আপনি কেবলমাত্র ফর্মটিতে 2 বাইট সংরক্ষণ করতে পারবেন যদি আপনি প্রতিস্থাপন int main()করেন void f()

আইডিয়নে কোড চালান

ম্যাক্রো সম্প্রসারণ সহ নিরপেক্ষ

#include <iostream>
int main()
{
    int j,i=0;
    for(;i<100;++i)
    {
        std::cout << "class Tuple"<< i+1 <<" {public Object _0";
        for(j=0;++j<=i;)
            std::cout << ",_" << j;
        std::cout << ";}\n";
    }
}

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

আপনি j=1লুপের জন্য এটি করতে চাইবেন , যাতে এটি না থাকে if(j)
Ethiraric

@ ইথিরেরিক তবে অবশ্যই! আমার কেমন ঝাপটা। আমার ধারণা, "প্রথম লাইনে সংযোজনগুলি এড়াতে ভুলবেন না" এই ধারণার প্রতি আমি খুব বেশি মনোনিবেশ করেছি এবং এটি খুব আক্ষরিক অর্থে লিখতে শেষ করেছি।
পাঠান

@sendaran বা এমনকি হতে পারে for(int j=0;++j<=i;)আরও একটি বাইট সংরক্ষণ করতে পারে ।
Ethiraric

@ ইথিরেরিক এটি করেছে এবং ভেরিয়েবল ঘোষণাগুলি বের করে একটি অতিরিক্ত বাইট বন্ধ করে দিয়েছে, যা অন্য একটি খালি অভিব্যক্তি সক্ষম করেছে।
পাঠান
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.