দীর্ঘ লাইনের বিরুদ্ধে অবস্থান নিন


23

সম্প্রতি, কেউ পাইথনের ডিফল্ট লাইনের দৈর্ঘ্যের জন্য আরও কঠোর সীমা প্রস্তাব করেছেন:

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

তবে ৮০ টি চরিত্র কি খুব বেশি? কেউ কেউ 80 অক্ষরের প্রশস্ত টার্মিনালের জন্য কোডটি ফিট করে কয়েকটি কলামের সাথে লাইন সংখ্যায় নিবেদিত হওয়ার জন্য 79 বা তার চেয়ে কম 75 এরও পরামর্শ দেয়। স্পষ্টতই, পরিশেষে, নিম্নটি ​​আরও ভাল, কারণ নিম্ন সীমাটি কোডটিকে পুনরায় ফর্ম্যাট না করে আরও পরিস্থিতিতে ব্যবহার করার অনুমতি দেয়।

সর্বাধিক 6 মান পরিচয় করানো হচ্ছে

আপনার লক্ষ্যটি হ'ল যে কোনও লাইনে স্বল্প সংখ্যক অক্ষরের সাথে একটি FizzBuzz বৈকল্পিক লিখে আপনার প্রিয় ভাষার জন্য প্রয়োজনীয় ন্যূনতম লাইন দৈর্ঘ্যটি সন্ধান এবং প্রদর্শন করা।

ইনপুট

কোনও পূর্ণসংখ্যা, এন , যে কোনও পছন্দসই পদ্ধতির মাধ্যমে।

আউটপুট

1 থেকে n , ( n ≥ 1, n ∈ ℤ) থেকে লাইন ব্রেক দ্বারা পৃথক করা সংখ্যাগুলি মুদ্রণ করুন :

  • 3 টি মুদ্রণের জন্য "অ্যাপল"
  • 5 মুদ্রণের পাই জন্য পাই "পাই"
  • 3 এবং 5 উভয়ই "অ্যাপলপি" মুদ্রণের গুণকের জন্য

স্কোরিং

বাইটে সর্বাধিক লাইনের দৈর্ঘ্য, লাইন ব্রেক (সিআর, সিআরএলএফ, এলএফ, বা অন্যান্য সিস্টেমের স্ট্যান্ডার্ড ব্রেক, পছন্দসই হিসাবে নির্দিষ্ট করুন) এবং টাইব্রেকার হিসাবে মোট কোডের দৈর্ঘ্য including

বিধি

সমস্ত লাইন বিরতি অর্থবহ হতে হবে। লাইন বিরতিগুলি সরানো যায় এবং সংলগ্ন লাইনগুলি আউটপুটে কোনও প্রভাব ছাড়াই সরাসরি সংশ্লেষিত হতে পারে , সেগুলি সরিয়ে ফেলতে হবে।


2
নতুন লাইনের বিধিনিষেধে, যদি একটি নির্দিষ্ট গ্রুপের নিউলাইনগুলি অপসারণ করে এটি কাজ করে তবে কোনও একক নিউলাইন অপসারণ করলে তা ব্যর্থ হয়, তবে কি নতুনলাইনগুলি সরানো হবে? এগুলি সিন্টেক্সিকভাবে গুরুত্বপূর্ণ, কেবল তাদের মধ্যে কিছুকে সরিয়ে ফেলা তাদের গুরুত্ব বাতিল করে দেয়।
গম উইজার্ড

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

1
কেন এটি স্ট্যান্ডার্ডের পরিবর্তে অ্যাপল পাই-তে পরিবর্তন করুন
রোহান ঝুনঝুনওয়ালা

5
@ রোহানঝুনঝুনওয়ালা বিল্টিন ফিজবজ কমান্ড ব্যবহার রোধ করতে।
janrjan জোহানসেন

2
+1 কোড গল্ফ চ্যালেঞ্জের জন্য এটি আসলেই একটি ভাল ধারণা! প্রতি লাইনের স্বল্প সংখ্যক অক্ষরটি অযৌক্তিক বলে মনে হয় 😅 যদিও আমি এখনও এটি পছন্দ করি
জর্জ উইলকক্স

উত্তর:


17

> <> , প্রতি লাইনে 1 বাইট, 243 161 135 বাইট

-26 জো কিংকে বাইটস ধন্যবাদ!

2 ডি ভাষা এফটিডাব্লু! যদিও 2 ডি কাঠামোর পরিবর্তে গোটো নির্দেশাবলী ব্যবহার করে লুপগুলি এবং শাখাগুলি রচনা করা মজাদার নয়।

v
l
:
:
3
%
:
&
0
4
7
*
&
?
.
~
~
"
e
l
p
p
A
"
o
o
o
o
o
$
5
%
:
&
0
a
5
*
&
?
.
~
~
"
e
i
P
"
o
o
o
*
0
@
?
n
?
~
l
{
:
}
=
?
;
a
o
1

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

মাছগুলি কোডের সাথে সাথে নীচের দিকে সাঁতার কাটায়, কীভাবে সংযোজককে বিভক্ত করে তার উপর নির্ভর করে জিনিসগুলি এড়াতে শর্তাধীন গোটোস ব্যবহার করে।

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


কত বাইট হয়?
L3viathan

1
@ এল3ভিয়াথন, এটি 243 বাইট। (আমি এটি সম্পাদনা করব))
গাছ নয়

1
@ এল 3 ভাইয়াথন: আমি এটিকে কিছুটা পুনর্বিন্যাস করেছি এবং এখন এটি 161 বাইট!
একটি গাছ নয়

:( আমি আমার উত্তরটি এতটা গল্ফ করতে পারি বলে মনে করি না ...
L3viathan

1
135 বাইট । এবং এখানে রেফারেন্সের জন্য অনুভূমিক সংস্করণটি রয়েছে
জো কিং

18

হাস্কেল , 3 বাইট / লাইন, 494 471 470 463 453 450 461 বাইট

সম্পাদনা করুন:

  • -26 বাইট: কিছু অপ্রয়োজনীয় লাইনব্রেকস এবং তাদের সম্পর্কিত মন্তব্য মার্কার সরিয়ে নিয়ে পরিবর্তিত -1+xহয়েছে x-1
  • +3 বাইট: ওহো, অতিরিক্ত প্রয়োজন --পর লাইন x-
  • -1 বাইট: পরিবর্তে fব্যবহারে ।c 47:[][c 47&0]
  • -7 বাইট: নিউলাইন হ্যান্ডলিং এ সরান w
  • -10 বাইট: ইনলাইন a="Apple"এবং p="Pie"ইন #এবং 15 কেসের জন্য একটি ডামি পুনরাবৃত্তি ব্যবহার করুন।
  • -3 বাইট: ইনলাইন wইন f। এবং এর --মধ্যে অপ্রয়োজনীয় সরান ।x15
  • +11 বাইট: ওফ! আমার স্ট্রিং ফাঁক তত্ত্বটির একটি গর্ত ছিল। %ফাংশন প্রবর্তন করে স্থির । অবাক হওয়ার কিছু নেই কিনা তা নিশ্চিত করতে অবশেষে কিছু স্বয়ংক্রিয় পরীক্ষা করা হয়েছে।

fনেয় Intএবং ফেরত দেয় a String

{;f
n=
--
[--
1..
--
n--
]--
>>=
\
--
x->
--
gcd
x
15#
--
x++
--
c
47:
--
[--
]--
;1#
--
x=
--
n!!
--
(x-
--
1--
)--
;3#
--
_=
--
"A\
\p\
\p\
\l\
\e\
\"&
--
0--
;5#
--
_=
--
"P\
\i\
\e\
\"&
--
0--
;--
15#
--
_=
--
3#
--
0++
--
5#
--
0--
;n=
--
d++
--
[--
s++
--
t|
--
s<-
--
n--
,--
t<-
--
[c
9]:
--
d--
]--
;d=
--
(:
--
[--
]--
)--
<$>
--
[c
8..
--
c
0--
]--
;c
x=
--
[--
"9\
\"%
--
0--
,--
"8\
\"%
--
0..
--
]!!
--
x--
;--
[--
a]%
--
_=
--
a--
;x&
--
y=
--
x}

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

পরীক্ষার উত্স নিষেধাজ্ঞ! (70 লাইনটি পরীক্ষা থেকে বাদ দেওয়া হয়েছে কারণ এর নতুন লাইন অপসারণ করলে আউটপুট ছাড়াই অসীম লুপের কারণ হয়))

সর্বাধিক গুরুত্বপূর্ণ স্কাইজিং ট্রিকস সহ সংস্করণ:

{;f n=[1..n]>>= \x->gcd x 15#x++c 47:[]
;1#x=n!!(x-1)
;3#_="Apple"
;5#_="Pie"
;15#_=3#0++5#0
;n=d++[s++t|s<-n,t<-[c 9]:d]
;d=(:[])<$>[c 8..c 0]
;c x=["9"%0,"8"%0..]!!x
;[a]%_=a
;x&y=x}

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

  • এই কোড, Haskell, আরো কদাচিৎ ব্যবহৃত খাঁজ অবশ মোডে লেখা আছে সাথে একটা সম্পূর্ণ প্রোগ্রাম পার্শ্ববর্তী দ্বারা যেমন আলোড়ন সৃষ্টি {}। যেহেতু আমি আসলে পুরো প্রোগ্রামের চেয়ে কোনও ফাংশনটি সংজ্ঞায়িত করছি, বাইটগুলি কীভাবে গণনা করা যায় তা সম্পর্কে আমি নিশ্চিত নই; আমি defensively গণনা জন্য চয়ন করেছেন উভয়{} s এবং একটি অতিরিক্ত ;ঘোষণা বিভাজক (আধুনিক সাধারণত স্বাভাবিক Haskell, মোডে একটি newline হচ্ছে।)
  • "অর্থপূর্ণ" নতুন লাইন তৈরীর জন্য প্রধান কৌতুক --লাইন মন্তব্য, যা পরবর্তী সম্পর্কে newline অ অপসারণযোগ্য করতে, এবং আরো একটি পূর্ববর্তী ক্ষেত্রে সম্পর্কে newline একটি অপারেটর চরিত্র পূর্ববর্তী লাইন প্রান্ত (যা নিজেই একটি লাইন মন্তব্য অংশ নয়) ।
  • দ্বিতীয় কৌশলটি "স্ট্রিং ফাঁকগুলি", \স্ট্রিং লিটারালগুলিতে ব্যাকস্ল্যাশগুলির মধ্যে সাদা স্থানের ক্রম, সম্ভাব্য ইনডেন্টেশন সহ লাইন ধারাবাহিকতার জন্য ইন্টেন্ট করা। পার্স করা স্ট্রিং থেকে ডিলিমিটরগুলির সাথে একটি স্ট্রিং ফাঁক সরানো হয়।
    • যদি একটি স্ট্রিং ফাঁকের নতুন লাইনটি সরিয়ে ফেলা হয় তবে এটি স্ট্রিংয়ের একটি অতিরিক্ত ব্যাকস্ল্যাশ হয়ে যায়। এর জন্য "Apple"এবং "Pie"এটি সরাসরি আউটপুটে প্রদর্শিত হয়। জন্য "8"এবং "9"একটি প্যাটার্ন মেলে তাহলে স্ট্রিং একটির বেশি অক্ষর আছে একটি ত্রুটি দিতে ব্যবহার করা হয়।
  • তৃতীয় কৌতুক &এবং %অপারেটরদের, যা একটি লাইন প্রথম কৌতুক জন্য একটি অপারেটর চরিত্র দিয়ে শেষ করতে বাধ্য করার অনুমতি দেয়। স্ট্রিং লিটারেলগুলি শেষ করতে আমাদের এটি দরকার কারণ সংযোজনের \"পক্ষে খুব প্রশস্ত --
    • &সাধারণ এক, এটি যেমন সংজ্ঞায়িত করা হয় x&y=x
    • %এটিকে সংজ্ঞায়িত করা হয় [a]%y=a, এটি প্রতিস্থাপন করতে !!0এবং একই সাথে প্রয়োগ করে যে এর স্ট্রিং আর্গুমেন্টটির দৈর্ঘ্য 1 থাকতে হবে 1
  • নিউলাইন চরিত্রটি একটি বিশেষ সমস্যা তৈরি করেছে, কারণ \nলাইনে কেবলমাত্র 3 বাইট যুক্ত স্ট্রিং লিটারে ফিট করা অসম্ভব বলে মনে হচ্ছে।
    • অতএব, আরও সহজে সংজ্ঞায়িত করাটি অঙ্ক থেকে একটি অক্ষরে c x=["9"%0,"8"%0..]!!xরূপান্তর করতে ব্যবহৃত হয় Int, অঙ্ক থেকে '9'নিচের দিকে গণনা করা হয় ।
  • কারণ showচারটি অক্ষর, হাতে আউটপুট অবশ্যই প্রয়োগ করা উচিত।
    • dঅঙ্কের স্ট্রিংগুলির একটি তালিকা "1".."9"
    • n["1","2","3",...]পুনরাবৃত্তভাবে ব্যবহার করে সংজ্ঞায়িত সংখ্যার উপস্থাপনার একটি অসীম তালিকা d
  • #একটি ধর্মান্তরিত Int xতার ApplePie ফর্ম একটি অতিরিক্ত প্রথম আর্গুমেন্ট যে দেওয়া gcdএর x15 সঙ্গে।

6

হাস্কেল , 7 বাইট / লাইন, 339 বাইট

লাইনের বিরতি অর্থবহ হওয়ার জন্য প্রয়োজনীয়তা এটিকে হাস্কেলের একটি অনিয়ন্ত্রিত চ্যালেঞ্জ করে। লাইন বিরতি removedোকানোর প্রায় কোনও উপায় নেই যা মুছে ফেলা যায় না, তাই আইনীভাবে ছোট ছোট বিবৃতি দিয়ে সবকিছুই করতে হবে।

c=cycle
h=head
i=tail
k=[1..]
s=do
 let
  _=0
  _=0
 putStr
t=take
p=print
u=fst
v=snd
z=zip
n=s"\n"
o 5=do
 s"Pie"
 n
o _=n
5%x=o 5
_%x=p x
3!x=do
 s"App"
 s"le"
 o$u x
_!x=do
 let
  y=u x
  z=v x
 y%z
q x=do
 let
  y=u x
  z=v x
 y!z
g[]=s""
g x=do
 q$h x
 g$i x
a=t 3 k
b=t 5 k
l=z$c a
m=z$c b
f n=do
 let
  x=t n
  y=x k
  z=m y
 g$l z

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


6

জেলি , 3 2 বাইট / লাইন, 106 80 56 বাইট

“3
,e
5P
ḍ,
T⁾
ịi
⁾e
AF
ps
,5
⁾¤
pȯ
lµ
,€
⁾Y
”Ỵ
¢Z
¢F
¢v

আক্ষরিক স্ট্রিংয়ের সারি এবং কলামগুলি স্থানান্তরিত হয়ে যায়, তাই নিউলাইনগুলি সরিয়ে তাদের ক্রমটি বিভ্রান্ত করে।

বাকী রেখাগুলি পৃথক লিঙ্ক / ফাংশন এবং এতে ফাংশন কল রয়েছে ( ¢), সুতরাং ফাংশন কলগুলি পাশাপাশি মুছে ফেলা হলে কেবল সেগুলি সংযুক্ত করা যেতে পারে।

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


6

টিআই-বেসিক, প্রতি লাইনে 4 বাইট

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

"APP
Ans→Str1
"LE
Str1+Ans
Ans→Str1
"PIE
Ans→Str2
Input N
1→I
While I≤N
fPart(I/3
not(Ans→A
fPart(I/5
not(Ans→B
If A and B
Then
Str1
Ans+Str2
Disp Ans
Else
If A
Then
Disp Str1
Else
If B
Then
Disp Str2
Else
Disp I
End
End
End
I+1
Ans→I
End

Ungolfed

"APPLE"→Str1
"PIE"→Str2
Input "N:",N
For(I,1,N)
remainder(I,3)=0→A
remainder(I,5)=0→B
If A and B:Then
Disp Str1+Str2
Else
If A:Then
Disp Str1
Else
If B:Then
Disp Str2
Else
Disp I
End
End
End
End

ভাষা এবং সীমাবদ্ধতা সম্পর্কে

টিআই-বেসিক একটি টোকেনাইজড ভাষা এবং এই ক্ষেত্রে, প্রতিটি টোকেনটি StrNভেরিয়েবলগুলি বাদ দিয়ে 1 বাইট হয় , যা 2 বাইট হয়। এছাড়াও, আপনি বেশিরভাগ সময় বন্ধন বন্ধন বন্ধ করতে পারেন। remainder(ফাংশন 2 বাইট, তাই ব্যবহার করে এটি (আর্গুমেন্ট জন্য ফাংশন জন্য এক, দুই, এবং কমা জন্য এক অন্তত 5 বাইট প্রয়োজন হবে remainder(I,3)। পরিবর্তে, আমি এটিকে আরও ছোট করার জন্য fPart(এবং not(ফাংশনগুলি ব্যবহার করেছি, যা উভয়ই 1 বাইট টোকেন। এছাড়াও, আপনি দেখতে পাচ্ছেন আমি বিল্ট-ইন ভেরিয়েবলটি Ansপ্রচুর পরিমাণে ব্যবহার করেছি, যেহেতু যে কোনও অভিব্যক্তি যা নিজেই একটি লাইনে মূল্যায়ন হয় তা স্বয়ংক্রিয়ভাবে এটিতে সঞ্চিত হয়। সুতরাং, আমি এক্সপ্রেশন এবং অ্যাসাইনমেন্ট ভাগ করে কয়েক বাইট সংরক্ষণ করতে পারি।

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

এই কোডটিতে সীমাবদ্ধ কারণগুলি হ'ল স্ট্রিং ভেরিয়েবলের অ্যাসাইনমেন্ট এবং স্ট্রিং ভেরিয়েবলের সাথে কনক্যাটেনেশন। লাইনগুলি Ans→Str1এবং Str1+Ansউভয়ই মোট 4 বাইট। আমার কোডে সর্বাধিক লাইনের দৈর্ঘ্য আরও হ্রাস করার জন্য আমাকে স্ট্রিং ভেরিয়েবলগুলি সম্পূর্ণরূপে মুছে ফেলার উপায় খুঁজে পেতে হবে। অন্যান্য সমস্ত কিছু প্রতি লাইনে সর্বোচ্চ 3 বাইট বা তার চেয়ে কম করা যেতে পারে।

সমস্যা যেমন সাংখ্যিক ভেরিয়েবল, এর বরাদ্দকরণ সেখানে এই ব্যবস্থার সবচেয়ে গুরত্বপূর্ণ 1→I। আপনি গল্ফ করতে পারবেন না যে কোনওভাবে ভেরিয়েবলগুলি ছাড়া লাইন দৈর্ঘ্যে 2 বাইট অতিক্রম না করে সমাধান নিয়ে আসে। এই চ্যালেঞ্জের জন্য এটি অসম্ভব হয়ে পড়ে।

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


তবে গল্ফযুক্ত সংস্করণটির দীর্ঘতম লাইনটি 10 ​​বাইটIf A and B
জার্কমুরফি

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

তবে ভিত্তিটি হ'ল সম্পাদকদের উচিত প্রতি লাইনে ন্যূনতম সংখ্যক অক্ষরের অনুমতি দেওয়া। আমি সন্দেহ করি যে আপনি কোনও সম্পাদক দিয়ে টোকেনগুলি টাইপ করছেন। এবং আমি মনে করি না যে অন্য যে কোনও ভাষা নিখুঁতভাবে ব্যাখ্যা করা হয় না সেগুলি কোনও সংকলিত বস্তু বা টোকেনাইজড বাইট গণনা ব্যবহার করছে।
jmarkmurphy

@ জার্কমুরফি আসলে আপনি সম্পাদকটিতে টোকেন টাইপ করেন। Ansটোকেন, 1 বাইট যেহেতু তিন পরপর অক্ষর Ans1, 2, এবং 2 5. মোট যথাক্রমে বাইট এটি একটি ASCII স্ট্রিং নয়, এটা আক্ষরিক টোকেন যখন আপনি ক্যালকুলেটর তে এটি টাইপ করুন।
kamoroso94

ইতিমধ্যে মেটা নিয়ে কিছুটা sens ক্যমত্য রয়েছে
kamoroso94

6

সি (জিসিসি) , প্রতি লাইনে 2 বাইট, 374 368 320 310 262 বাইট

আমি ধরে নিলাম এটি আরও কিছুটা গল্ফ করা যেতে পারে। নিউলাইনগুলিতে পালানো ব্যাকস্ল্যাশগুলি এটিকে তুচ্ছ করে তোলে।

i\
;\
f\
(\
n\
)\
{\
f\
o\
r\
(\
i\
=\
0\
;\
i\
+\
+\
<\
n\
;\
p\
r\
i\
n\
t\
f\
(\
i\
%\
3\
&\
&\
i\
%\
5\
?\
"\
%\
d\
\\
n\
"\
:\
i\
%\
3\
?\
"\
P\
i\
e\
\\
n\
"\
:\
i\
%\
5\
?\
"\
A\
p\
p\
l\
e\
\\
n\
"\
:\
"\
A\
p\
p\
l\
e\
P\
i\
e\
\\
n\
"\
,\
i\
)\
)\
;\
}

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


@ আরজান জোহানসেন আহ, ঠিক আছে।
গ্যাস্ট্রোপনার

আপনার টাই-ব্রেক স্কোর হ্রাস করে আপনি প্রচুর ব্যাকস্ল্যাশগুলি সরিয়ে ফেলতে পারেন। এছাড়াও, দ্বি-বাইট টোকেন যেমন আলাদা করার দরকার নেই &&
টবি স্পিড

5

পাইথন 3 , 4 বাইট / লাইন, 113 বাইট

e=\
exec
def\
f(n\
):i\
=0;\
e('\
pri\
nt(\
i%3\
//2\
*"A\
ppl\
e"+\
i%5\
//4\
*"P\
ie"\
or-\
~i)\
;i+\
=1;\
'*n)

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


আপনি জানেন যে পেরেনের ভিতরে নতুন লাইনের জন্য আপনার পিছনে স্ল্যাশ দরকার নেই?
ধ্বংসাত্মক লেবু

ওহ, অপেক্ষা করুন আমি দরকারী নতুন লাইনের নিয়মটি পড়িনি
ধ্বংসাত্মক লেবু

@ নিকটি: বিধি পরিবর্তনের বিষয়টি সম্বোধন করেছেন।
অ্যান্ডারস ক্যাসরগ

5

পিএইচপি 7, প্রতি লাইন 2 বাইট

(#
c#
.#
r#
.#
e#
.#
a#
.#
t#
.#
e#
.#
_#
.#
f#
.#
u#
.#
n#
.#
c#
.#
t#
.#
i#
.#
o#
.#
n#
)#
(#
'#
'#
,#
g#
.#
l#
.#
o#
.#
b#
.#
a#
.#
l#
.#
(#
c#
.#
h#
.#
r#
)#
(#
6#
*#
6#
)#
.#
a#
.#
r#
.#
g#
.#
n#
.#
(#
c#
.#
h#
.#
r#
)#
(#
7#
*#
8#
+#
3#
)#
.#
w#
.#
h#
.#
i#
.#
l#
.#
e#
.#
(#
c#
.#
h#
.#
r#
)#
(#
5#
*#
8#
)#
.#
(#
c#
.#
h#
.#
r#
)#
(#
6#
*#
6#
)#
.#
i#
.#
(#
c#
.#
h#
.#
r#
)#
(#
6#
*#
7#
+#
1#
)#
.#
(#
c#
.#
h#
.#
r#
)#
(#
6#
*#
7#
+#
1#
)#
.#
(#
c#
.#
h#
.#
r#
)#
(#
7#
*#
8#
+#
4#
)#
.#
(#
c#
.#
h#
.#
r#
)#
(#
6#
*#
6#
)#
.#
a#
.#
r#
.#
g#
.#
n#
.#
(#
c#
.#
h#
.#
r#
)#
(#
5#
*#
8#
+#
1#
)#
.#
e#
.#
c#
.#
h#
.#
o#
.#
(#
c#
.#
h#
.#
r#
)#
(#
6#
*#
6#
)#
.#
i#
.#
(#
c#
.#
h#
.#
r#
)#
(#
6#
*#
6#
+#
1#
)#
.#
3#
.#
(#
c#
.#
h#
.#
r#
)#
(#
7#
*#
9#
)#
.#
(#
c#
.#
h#
.#
r#
)#
(#
5#
*#
8#
)#
.#
(#
c#
.#
h#
.#
r#
)#
(#
6#
*#
6#
)#
.#
i#
.#
(#
c#
.#
h#
.#
r#
)#
(#
6#
*#
6#
+#
1#
)#
.#
5#
.#
(#
c#
.#
h#
.#
r#
)#
(#
7#
*#
9#
)#
.#
(#
c#
.#
h#
.#
r#
)#
(#
6#
*#
6#
)#
.#
i#
.#
(#
c#
.#
h#
.#
r#
)#
(#
7#
*#
8#
+#
2#
)#
.#
P#
.#
i#
.#
e#
.#
(#
c#
.#
h#
.#
r#
)#
(#
5#
*#
8#
+#
1#
)#
.#
(#
c#
.#
h#
.#
r#
)#
(#
7#
*#
8#
+#
2#
)#
.#
(#
c#
.#
h#
.#
r#
)#
(#
5#
*#
8#
)#
.#
(#
c#
.#
h#
.#
r#
)#
(#
6#
*#
6#
)#
.#
i#
.#
(#
c#
.#
h#
.#
r#
)#
(#
6#
*#
6#
+#
1#
)#
.#
5#
.#
(#
c#
.#
h#
.#
r#
)#
(#
7#
*#
9#
)#
.#
A#
.#
p#
.#
p#
.#
l#
.#
e#
.#
(#
c#
.#
h#
.#
r#
)#
(#
7#
*#
8#
+#
2#
)#
.#
A#
.#
p#
.#
p#
.#
l#
.#
e#
.#
P#
.#
i#
.#
e#
.#
(#
c#
.#
h#
.#
r#
)#
(#
5#
*#
8#
+#
1#
)#
.#
(#
c#
.#
h#
.#
r#
)#
(#
6#
*#
7#
+#
2#
)#
.#
(#
c#
.#
h#
.#
r#
)#
(#
4#
*#
8#
+#
2#
)#
.#
(#
c#
.#
h#
.#
r#
)#
(#
2#
*#
5#
)#
.#
(#
c#
.#
h#
.#
r#
)#
(#
4#
*#
8#
+#
2#
)#
.#
(#
c#
.#
h#
.#
r#
)#
(#
7#
*#
8#
+#
3#
)#
)#
(#
)#
;#

কিভাবে বিন্দু দিয়ে কাজ করে?
L3viathan

@ এল3ভিয়াথন ডটস সম্মিলনকে বোঝায়। এগুলি একক অক্ষর থেকে দীর্ঘ স্ট্রিং তৈরি করতে ব্যবহৃত হয়।
ব্যবহারকারী 63956

আমি এটি জানি, কিন্তু পিএইচপি কি কেবল সাইন করা ভেরিয়েবলের নামগুলি দিয়ে স্ট্রিং তৈরি করে, বা কীভাবে এটি কাজ করে? আমি কোন উদ্ধৃতি অক্ষর দেখতে পাচ্ছি।
L3viathan

2
@ L3viathan এই চরিত্রগুলি ধ্রুবক। যদি একটি ধ্রুবক সংজ্ঞায়িত না করা হয়, পিএইচপি মান হিসাবে এটির নাম ব্যবহার করে।
ব্যবহারকারী 63956

5

অ্যাসেটো , প্রতি লাইনে 1 বাইট, 230 বাইট

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

স্ট্রিং লিটারেলগুলি সত্যই ব্যবহার করা যায় না, তবে চর লিটারালগুলি (কিছু জায়গায়; আবার, আমাদের সেগুলি প্রান্তিককরণ করা দরকার) করতে পারে।

&
p
$
L
Q
`
L
p
`
L
d
`
L
Q
`
L
Q
`
L
x
`

L
M
!
%
5
d
$
L
Q
`
L
Q
`
L
p
`
L
d
`
L
Q
`
L
x
`
L
M
!
%
3
d
$
L
p
`
L
d
`
L
x
`

L
M
!
%
*
5
3
d
[
X
`

n
=
0
l
)
@
(
z
i
r
{
J
s
]
d
s
}
d
[
~
£
A
'
d
p
'

l
'

e
'

{
~
£
P
'

i
'
e
'

এর সাথে কল করা হয়েছে 20, এটি প্রিন্ট করে:

1
2
Apple
4
Pie
Apple
7
8
Apple
Pie
11
Apple
13
14
ApplePie
16
17
Apple
19
Pie

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

এখানে কখনও এটি হয় না কারণ এটি নীচ থেকে উপরে পর্যন্ত চলে।

কমপক্ষে একটি জায়গা রয়েছে যেখানে আমরা 2 বাইট সংরক্ষণ করতে পারি ( `Xএকটি |বা এর সাথে প্রতিস্থাপন করে #), তবে তুলনামূলকভাবে বড় হিলবার্ট বক্ররেখার সাথে দৌড়ানোর সাথে রানটাইম ব্যয়ের কারণে আমি এটি এটি রেখে দিয়েছি।

আমি ব্যবহারের জন্য অন্তর্নিহিত প্রয়োজনীয়তা \rবা \r\nনিউলাইনগুলিও এড়িয়ে গিয়েছি কারণ আমি মনে করি এটি ওপি কর্তৃক অনিচ্ছাকৃত ভুল। যদি কোনও সম্পাদনা বা এই প্রয়োজনটিকে আরও শক্তিশালী করে এমন কোনও মন্তব্য থাকে তবে আমি পরিবর্তে সিআর নিউলাইনগুলি ব্যবহার করতে খুব ঝামেলা ছাড়াই এটি পরিবর্তন করতে পারি।

বাইটকাউন্টটি অ্যাসেটোর কোডগল্ফিং এনকোডিংয়ের উপর ভিত্তি করে; ল্যাটিন -7, এতে £একক বাইট রয়েছে।


পুনরায় স্ট্যাক তিন স্ট্রিং ধরে নেওয়া যাক [...] এবং এই প্রতিস্থাপন পাঠক একটি ব্যায়াম যেমন ছেড়ে দেওয়া হয়। : দয়া করে হাতে টাস্কটি সমাধান করার জন্য প্রয়োজনীয় সম্পূর্ণ কোড সরবরাহ করুন। যেমনটি, আপনার সমাধানটি অসম্পূর্ণ। এটিতে বাইট গণনাও নেই, যা 1 স্কোর সহ সমাধানের টাই ব্রেকার
ডেনিস

@ ডেনিস আমি এখন পুরো ওয়ার্কিং কোড সরবরাহ করার জন্য উত্তর সম্পাদনা করেছি।
L3viathan

5

পার্ল 5 , 2 লাইট প্রতি বাইট, 182 বাইট

&
#
{'
Er
0h
|R
hR
o
'#
^#
'I
 O
Ro
3f
+~
'#
.#
(#
p#
|#
Y#
)#
}#
(#
'z
;d
y"
"z
7#
vU
aW
zZ
7#
vU
gW
..
~.
4e
r;
|6
'#
^#
('
xR
~R
KR
fR
QR
/R
$R
cR
QR
/R
vR
UR
%R
xR
$R
'#
.#
4#
))

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

পার্লের বাক্য গঠনটি অত্যন্ত ক্ষমাশীল, তাই কোডে যুক্ত হওয়া মন্তব্যগুলিতে প্রচুর ব্যবধান যুক্ত করা যায় এবং মন্তব্যগুলি যুক্ত করা যায় যা মূল ধারণাটি মোটামুটি সোজা করে তোলে। এই কোডটির মূল লক্ষ্য হ'ল আমরা যে কোডটি চালাতে চাই তাতে একটি স্ট্রিং তৈরি করা এবং evalএটি। পার্লে, একটি স্ট্রিং বা স্বরলিখনের সাহায্যে ভেরিয়েবল ব্যবহার করে কোনও ফাংশন কল করা সম্ভব &{...}, দুর্ভাগ্যক্রমে তবে evalএই ফর্মটিতে কলযোগ্য নয়, তবে evalbytesযতক্ষণ আপনি CORE::নেমস্পেসের মাধ্যমে কল করবেন ততক্ষণ । স্ট্রিংটি তৈরি করা মোটামুটি সোজা ছিল এবং প্রোগ্রামটি সরাসরি এই কলটিতে চলে যায়। এক্সটিআর এর অংশ হিসাবে নতুন লাইনগুলি ব্যবহার করে স্ট্রিংগুলি নির্মিত হয়েছে, এটি তৈরি করতে আমি এই স্ক্রিপ্টটি ব্যবহার করেছি। এটি বৈধ রাখতে, কয়েকটি জায়গায় মন্তব্য করা উচিত ছিল, যাতে নতুন লাইনগুলি অপসারণের ফলে অ-কার্যকরী কোড হয়।

ফিজবুজ রুটিনটি প্রিমোর দুর্দান্ত উত্তর থেকে নেওয়া হয়েছিল ।


পার্ল 5 , প্রতি লাইন 1 বাইট, 172 বাইট

সুতরাং, আমি (এখন) জানি এটি অবৈধ because পার্লের সিনট্যাক্সটি আপনি কতটা দূরে রাখতে পারবেন তা দেখতে মজাদার ছিল! আমি অবৈধ হওয়া সত্ত্বেও এই সমস্যাটি তার নিজের যোগ্যতায় উপভোগ করেছি।

&
{
(
I
.
'
X
0
o
k
h
~
'
.
(
p
|
Y
)
)
^
'
E
O
0
|
f
s
o
'
}
(
'
x
d
!
K
z
o
Q
U
9
$
Z
o
Q
U
?
v
.
&
%
e
*
$
6
'
^
'

c
~
"
z
f
#
.
/
W
"
c
#
.
/
W
v
U
.
l
x
;
$
4
'
^
p
)

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


এটি কি "সমস্ত লাইন বিরতিগুলি অবশ্যই অর্থবহ" নিয়মকে ভঙ্গ করে না?
12

@ 12Me21 হ্যাঁ, আমি কেবল এটিই খুঁজছি। তাই প্রথমটিকে যদি এটি সরানো হয় তবে এটি ভেঙে দেয় তবে অন্যদের মধ্যে কিছুটিকে সত্যই অপসারণ করা যেতে পারে, এটি 2 দৈর্ঘ্যের হিসাবে রাখা হয় n
ডোম হেস্টিংস

@ 12Me21 আমি মনে করি যে আমার কাছে এমন একটি সমাধান পেয়েছে যা এখন 2 এর জন্য কার্যকর হয়, আমি এটি তৈরির জন্য সময় ব্যয় করার পরে 1 বাইট দৈর্ঘ্যের একটি গল্ফড সংস্করণ যুক্ত করেছি! :)
ডম হেস্টিংস

5

স্মাইলব্যাসিক, প্রতি লাইনে 9 7 বাইট, 159 155 154 152 বাইট

এটি ছিল সত্যিই একটি মজাদার চ্যালেঞ্জ। দুর্ভাগ্যবশত, অপ্রয়োজনীয় লাইন ব্রেক বিরুদ্ধে নিয়ম কয়েক সমস্যা, (যদিও ভাগ্যক্রমে তা এখানে সর্বোচ্চ লাইন দৈর্ঘ্য প্রভাবিত করে না।) আমি মত লাইনের মধ্যে মন্তব্য যোগ করতে ছিল ঘটায় A%=I/3এবং A=A%*3সাল থেকে A%=I/3A=A%*3এসবির সঠিকভাবে পার্স করা হয়। আমি কিছু মন্তব্য করার জন্য একটি কৌশল ব্যবহার করতে সক্ষম হয়েছি, যেহেতু পরিবর্তিত Aকরে Eসেই লাইনটিকে অবৈধ করে তোলে ( Eআমি মনে করি নোটেশন দিয়ে লেখা সংখ্যাগুলির সাথে এর কিছু যুক্তি রয়েছে, আমার মনে হয়। 3Eএকটি সংখ্যা এবং একটি ভেরিয়েবল নামের পরিবর্তে একটি অবৈধ সংখ্যা হিসাবে বিবেচিত হয়।)

A$="App
B$="le
P$="Pie
INPUT N
R=N
WHILE R
INC I
R=I<N
A%=I/3'
A=A%*3'
A=A==I
B%=I/5
E=B%*5
E=E==I'
?A$*A;
?B$*E;
?P$*E;
C=A+E
WHILE!C
C=1?I;
WEND?
WEND

এখানে সর্বাধিক সীমাবদ্ধতা হ'ল ইনপুট। INPUT xঅনুমোদিততম উপায়, বিকল্প হিসাবে একটি ইনপুট মান হিসাবে একটি ফাংশন সংজ্ঞায়িত করা হচ্ছে DEF F xকিন্তু এটি এখনও 7 অক্ষর। শর্তাধীন বিবৃতি দেওয়াও শক্ত; এর চেয়ে খাটো আর কিছু ভাবতে পারি না WHILE x


1
যদি A%=I/3A=A%*3সিনট্যাক্টিকভাবে বৈধ তবে যৌক্তিকভাবে ভাঙা হয়, আপনার কমেন্টের লেখার দরকার নেই।
নিক টি টি

এটি সঠিকভাবে A%=I/3এবং হিসাবে পার্স করা হয়েছে A=A%*3, সুতরাং মন্তব্যটি প্রয়োজনীয়।
12

3

জাভাস্ক্রিপ্ট (ES6), প্রতি লাইনে 3 বাইট

বস্তুটি topঅ্যাক্সেস করতে গ্লোবাল ভেরিয়েবল ব্যবহার করে window, যা থেকে আমরা evalনিম্নলিখিত কোডটি ব্যবহার করি:

n=prompt('')
i=0
for(;++i<=n;console.log(i%5?f||i:f+'Pie'))f=i%3?'':'Apple'

topএকটি স্যান্ডবক্সযুক্ত স্ট্যাক স্নিপেট থেকে অ্যাক্সেসযোগ্য হিসাবে আপনাকে এটি কনসোলে চালাতে হবে ।


t//
=//
top
t//
[`\
ev\
al\
`//
]//
(`\
n=\
pr\
om\
pt\
('\
')
i=0
fo\
r(\
;+\
+i\
<=\
n;\
co\
ns\
ol\
e.\
lo\
g(\
i%\
5?\
f|\
|i\
:f\
+'\
Pi\
e'\
))\
f=\
i%\
3?\
''\
:'\
Ap\
pl\
e'\
`)

3

সি #, প্রতি লাইন 9 বাইট, 248 242 230 বাইট

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

class
A//
{//
static
void
Main//
(//
string//
[//
]//
a//
)//
{//
for//
(//
var
i//
=//
0//
;//
i++//
<//
int//
.Parse//
(//
a//
[//
0//
]//
)//
;//
)//
{//
var
s//
=//
""//
;//
if//
(//
i//
%//
3//
==//
0//
)//
s//
+=//
"A"+//
"p"+//
"p"+//
"l"+//
"e"//
;//
if//
(//
i//
%//
5//
==//
0//
)//
s//
+=//
"P"+//
"i"+//
"e"//
;//
if//
(//
s//
==//
""//
)//
s//
=//
$"{i}"//
;//
System//
.//
Console//
.//
Write//
(//
s//
+//
@"
"//
)//
;//
}//
}//
}

তবে যেহেতু দীর্ঘতম লাইনটি 9 বাইট, তাই অন্য লাইনগুলিও এটি পেতে পারে, কিছু বাইট বন্ধ করে দেয়:

class
A{static
void
Main(//
string[//
]a){//
for(var
i=0;i++//
<int.//
Parse(a//
[0]);){//
var 
s="";if//
(i%3==0//
)s+=//
"Apple"//
;if(i%5//
==0)s+=//
"Pie";//
if(s==//
"")s=//
$"{i}";//
System.//
Console//
.Write(//
s+@"
");}}}

আমি এই কনটেন্টেশনটিকে "এর মধ্যে কোনও স্থান নেই" বলে ব্যাখ্যা করেছি, সুতরাং আপনার এমন// টোকেনগুলির মধ্যে দরকার নেই যা একসাথে ফিউজ হবে, পছন্দ করবে staticএবং করবে void
janrjan Johansen

@ আরজান জোহানসেন ধন্যবাদ! 6 বাইট সংরক্ষণ করা হয়েছে
আর্থার রম্প

আমি মনে করি আপনি এটিকে পুনরায় সাজিয়ে আরও বাইট সংরক্ষণ করতে পারেন var s="";if// (i%3==0// )s+=// "Apple"// ;if(i%5//
janrjan জোহানসেন

Aপ্রথম থেকে দ্বিতীয় লাইনে চলে যাওয়ার একই সুযোগ রয়েছে ।
janrjan জোহানসেন

এবং একটি নতুন লাইনে দ্বিতীয় উদ্ধৃতি সহ "\ n" @ "" "এ পরিবর্তন করে 3 বাইট সংরক্ষণ করেছে, সেই নতুন লাইনেরও প্রয়োজনীয়তা তৈরি করেছে।
আর্থার রম্প

2

পাইথন 2, 5 বাইট / লাইন, 93 বাইট

সর্বাধিক 6 মান ইতিমধ্যে অপ্রচলিত।

def\
f(n):
 i=0
 \
exec\
'pri\
nt i\
%3/2\
*"Ap\
ple"\
+i%5\
/4*"\
Pie"\
or-~\
i;i+\
=1;'\
*n

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

পাইথন 2 এবং 3, 5 বাইট / লাইন, 100 বাইট

def\
f(n):
 i=0
 \
exec\
('pr\
int(\
i%3/\
/2*"\
Appl\
e"+i\
%5//\
4*"P\
ie"o\
r-~i\
);i+\
=1;'\
*n)

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


2

জাভাস্ক্রিপ্ট, সর্বোচ্চ 6 বাইট / লাইন, 528 বাইট

এখান থেকে আইডিয়া ছিঁড়ে গেল ।

কোডটি এখান থেকে ছিড়ে ।

g=evalপ্রতি লাইনে একটি বাইট সংরক্ষণের জন্য , আন্ডারস কাসরর্গকে ধন্যবাদ জানাই ।

a="n"
a+="="
a+="p"
a+="r"
a+="o"
a+="m"
a+="p"
a+="t"
a+="("
a+="'"
a+="'"
a+=")"
a+=";"
a+="f"
a+="o"
a+="r"
a+="("
a+="i"
a+="="
a+="0"
a+=";"
a+="+"
a+="+"
a+="i"
a+="<"
a+="="
a+="n"
a+=";"
a+="c"
a+="o"
a+="n"
a+="s"
a+="o"
a+="l"
a+="e"
a+="."
a+="l"
a+="o"
a+="g"
a+="("
a+="i"
a+="%"
a+="5"
a+="?"
a+="f"
a+="|"
a+="|"
a+="i"
a+=":"
a+="f"
a+="+"
a+="'"
a+="P"
a+="i"
a+="e"
a+="'"
a+=")"
a+=")"
a+="f"
a+="="
a+="i"
a+="%"
a+="3"
a+="?"
a+="'"
a+="'"
a+=":"
a+="'"
a+="A"
a+="p"
a+="p"
a+="l"
a+="e"
a+="'"
g=eval
g(a)

Unseperated:

n=prompt('');for(i=0;++i<=n;console.log(i%5?f||i:f+'Pie'))f=i%3?'':'Apple'

a=""+\n"f"+\n"o"+ ...এবং এর সাথে সমাপ্তিটি eval(\na)কিছুটা খাটো
মান কালি

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

নিয়ম পরিবর্তন @ ভ্যালুআইঙ্কের পরামর্শ অকার্যকর করে তবে আপনি এখনও f=evalএবং এর সাথে শেষ করতে পারেন f(a)
অ্যান্ডারস ক্যাসরগ

@ অ্যান্ডারস ক্যাসরগ আপনাকে ধন্যবাদ :) এর জন্য ভাবেন নি
স্টিফেন

1
আপনি প্রথম লাইনে স্ট্রিংয়ে 2 টি অক্ষর রেখে একটি বাইট সংরক্ষণ করতে পারেন।
12

2

পিএইচপি, 4 বাইট / লাইন

for#
(#
$z=#
${#
ar.#
gn#
};#
$k#
++<#
$z#
;){#
(#
pr.#
in.#
t_.#
r)#
([#
A.#
p.p#
.le#
][#
$k#
%3#
].[#
Pie#
][#
$k#
%5#
]?:#
$k)#
;(#
pr.#
in.#
t_.#
r)#
("
");}

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


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

@ জুলিয়ানওল্ফ আমি এটি পরিবর্তন করেছি
জার্গ হালসারম্যান


2

রেটিনা , 4 বাইট / লাইন

.+
$*      Convert the input number to unary.
1
$`1¶    Count from 1 to the input number.
111
A       Divide by 3.
+`A1
1111    If there was a remainder, restore the original number.
A{5}
AP      If the number is divisible by 3, try to divide by 5. 
.*A     The result ends in `AP` if the number is divisible by 15,
Appl    or in `A` if it is only divisible by 3. Replace everything
l       up to the `A` with `Apple`; multiples of 15 become `AppleP`.
le
1{5}    If the number did not divide by 3, try dividing it by 5 anyway.
P
+`P1    If there was a remainder, restore the original number.
6$*1    Otherwise replace the result with `Pie`,
P+      which also fixes multiples of 15.
Pie     If the number was divisible by neither 3 nor 5,
1+      convert it back to decimal.
$.&

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


2

আর , প্রতি লাইনে 10 বাইট, 800 বাইট

"অর্থবহ লাইন ব্রেক" নিয়ম এই চ্যালেঞ্জিং করে তুলেছে made বর্তমানে এটি কেবল ফিজবজ কোডটি একটি স্ট্রিংয়ে বানান এবং তারপরে এটি কার্যকর করে।

a="x"
a[2]="="
a[3]="y"
a[4]="="
a[5]="1"
a[6]=":"
a[7]="s"
a[8]="c"
a[9]="a"
a[10]="n"
a[11]="("
a[12]=")"
a[13]=";"
a[14]="y"
a[15]="["
a[16]="3"
a[17]="*"
a[18]="x"
a[19]="]"
a[20]="="
a[21]="'"
a[22]="A"
a[23]="p"
a[24]="p"
a[25]="l"
a[26]="e"
a[27]="'"
a[28]=";"
a[29]="y"
a[30]="["
a[31]="5"
a[32]="*"
a[33]="x"
a[34]="]"
a[35]="="
a[36]="'"
a[37]="P"
a[38]="i"
a[39]="e"
a[40]="'"
a[41]=";"
a[42]="y"
a[43]="["
a[44]="1"
a[45]="5"
a[46]="*"
a[47]="x"
a[48]="]"
a[49]="="
a[50]="'"
a[51]="A"
a[52]="p"
a[53]="p"
a[54]="l"
a[55]="e"
a[56]="P"
a[57]="i"
a[58]="e"
a[59]="'"
a[60]=";"
a[61]="w"
a[62]="r"
a[63]="i"
a[64]="t"
a[65]="e"
a[66]="("
a[67]="y"
a[68]="["
a[69]="x"
a[70]="]"
a[71]=","
a[72]="'"
a[73]="'"
a[74]=")"
t=toString
g=gsub
o=", "
l=""
f=t(a)
r=g(o,l,f)
P=parse
p=P(t=r)
eval(p)

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

এখানে সংক্ষিপ্ত অ্যাপলপি কোড ( এখানে মিকিটির গল্ফ থেকে অভিযোজিত )।

x=y=1:scan()
y[3*x]='Apple'
y[5*x]='Pie'
y[15*x]='ApplePie'
write(y[x],'')

এবং পার্সিং কোডটির অদ্বিতীয় সংস্করণ:

eval(t=parse(gsub(", ", "", toString(a))))

এখানে আমি toStringচিহ্নকে aএকটি একক স্ট্রিংয়ের তালিকাতে যুক্ত করতে ব্যবহার করি । তবে, ডিফল্ট আচরণটি প্রতিটি প্রতীককে আলাদা করে রাখার জন্য ,, তাই আমরা gsubসেগুলি নাল দ্বারা প্রতিস্থাপনের জন্য ডাকি । তারপরে আমরা এটি পাস parseএবং evalনোংরা কাজ করতে।

কিন্তু সেখানে একটি পন্থা যে এই স্ট্রিং পার্সিং পদ্ধতি এবং মাত্র সোজা কার্যকরী আপ fizzbuzz ব্যবহার করে না যে সম্ভব, কিন্তু এটা যে ব্যবহার আমার মনে হচ্ছে forবা whileবা সংজ্ঞায়িত functionচাহিদা বর্তমান পদ্ধতির চেয়ে দীর্ঘতর লাইন।


2

রুবি, 10 5 বাইট / লাইন, 354 214 বাইট

@ নিডজেজকোব থেকে কাঁচা স্কোর থেকে -140 বাইট।

eval\
"pu"\
"ts"\
" ("\
"1."\
".g"\
"et"\
"s."\
"to"\
"_i"\
")."\
"ma"\
"p{"\
"|i"\
"|i"\
"%1"\
"5<"\
"1?"\
":A"\
"pp"\
"le"\
"Pi"\
"e:"\
"i%"\
"5<"\
"1?"\
":P"\
"ie"\
":i"\
"%3"\
"<1"\
"?:"\
"Ap"\
"pl"\
"e:"\
"i}"

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

রুবি স্বয়ংক্রিয়ভাবে ?aএকই বিবৃতিতে স্ট্রিং লিটারালগুলির ক্রমগুলি (একক-অক্ষরের অক্ষরগুলি বাদে ) স্বতঃস্ফূর্তভাবে একত্রিত করবে । তার মানে এটি x = "a" 'b' "c" %q{d}সমান x = "abcd"। আমরা এটিকে কল করার জন্য ফিজবুজ-এর মতো কোডটিকে আরও ছোট স্ট্রিংগুলিতে বিভক্ত করতে ব্যবহার করি eval, যেহেতু +অপসারণ-নিউলাইনস নিয়মের কারণে প্রোগ্রামটি অকার্যকর করে দেবে, তবে \নতুন লাইনগুলি বের করা হলে সিনট্যাক্স ত্রুটির কারণ হবে!


আমি ঠিক কিছু অনুরূপ জমা দিতে
যাচ্ছিলাম

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

আপনি প্রতিটি লাইনের স্ট্রিংয়ে দুটি অক্ষর যুক্ত করে প্রচুর বাইট সংরক্ষণ করতে পারেন।
নিডজেজেকোব

@ নিডজেজেকোব এখানে প্রাথমিক স্কোরিং প্রক্রিয়াটি প্রতি লাইন বাইট, যার অর্থ লাইন দৈর্ঘ্য হ্রাস করার জন্য মোট বাইকোয়েন্টের ত্যাগ করা ভাল।
মান কালি

@ নিডজেজকোব এনভিএম আমি এখন দেখছি আপনি কি বোঝাতে চাইছেন, এটি প্রাথমিক evalলাইনের পর থেকে বাকিদের চেয়ে দীর্ঘ, তাই না?
মান কালি

1

জুলিয়া 0.6 , প্রতি লাইনে 5 বাইট, মোট 168 বাইট

f=#
n->#
((i,#
a=#
"A"*#
"p"*#
"p"*#
"l"*#
"e",#
p=#
"P"*#
"i"*#
"e"#
)->#
["$i
","$a
","$p
",a*#
p*"
"][#
1+(i#
%3<1#
)+2(#
i%5<#
1)]#
|>[#
print
sin#
][1]#
).(#
1:n)

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

printএই অনিবার্য (afaict) লাইন এলাকা প্রতি 5 বাইট মধ্যে নিয়ে আসে।

Ungolfed:

function f_ungolfed(n)
  inner = (i,
           a="Apple",
           p="Pie") -> ["$i\n",
                        "$a\n",
                        "$p\n",
                        a*p*"\n"][
                                    1 + (i%3 < 1) + 2(i%5 < 1)
                                   ] |> [print; sin][1]
  inner.(1:n)
end

*এটি স্ট্রিং a*p*"\n"কনটেনটেশন অপারেটর, সুতরাং "অ্যাপলপি \ n" গঠন করে। |>ফাংশন শেইনিং (/ পাইপিং) অপারেটর, তাই নির্বাচিত স্ট্রিংটি আর্গুমেন্ট হিসাবে প্রেরণ করা হয় printsinব্যবহার করা হয় না, এটা ঠিক আছে কারণ printচাহিদা (ব্যবহার করে এটি পরে উল্লেখযোগ্য হোয়াইটস্পেস আছে একটি অ্যারের হতে #পরে এটি 6 প্রতি লাইনে সর্বোচ্চ বাইট গণনা আনব কৌতুক)।


অ্যারে হিসাবে কেবল আউটপুট ফেরত দেওয়ার অনুমতি থাকলে তা প্রতি লাইনে 4 বাইট সর্বোচ্চ দিয়ে করা যায়:

জুলিয়া 0.6 , প্রতি লাইনে 4 বাইট, মোট 152 বাইট

f=#
n->#
((i#
,a=#
"A"#
*#
"p"#
*#
"p"#
*#
"l"#
*#
"e"#
,p=#
"P"#
*#
"i"#
*#
"e"#
)->#
[i,#
a,p#
,a*#
p][#
1+(#
i%3#
<1#
)+#
2(i#
%5<#
1)]#
).(#
1:n#
)

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

এমন একটি ফাংশন যা n নেয় এবং প্রত্যাশিত আউটপুট সমেত একটি অ্যারে প্রদান করে। এখানে সর্বাধিক লাইনের দৈর্ঘ্য সীমাবদ্ধ n->- জুলিয়ার একটি ল্যাম্বদা শুরু হওয়ার সাথে সঠিকভাবে পার্স করার জন্য একটি লাইনে প্রয়োজন needs


1

পাস্কাল (এফপিসি) -Sew , প্রতি লাইনে 6 বাইট, 348 320 বাইট

var
n,i://
word//
;begin
read//
(n);//
for
i:=1to
n do
if 0=i
mod
15then
write{
$}(//
'A',//
'p',//
'p',//
'l',//
'e',//
'P',//
'i',//
'e',//
#10)//
else
if 0=i
mod
3then
write{
$}(//
'A',//
'p',//
'p',//
'l',//
'e',//
#10)//
else
if 0=i
mod
5then
write{
$}(//
'P',//
'i',//
'e',//
#10)//
else
write{
$}(i//
,#10//
)end.

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

প্রতি লাইনে 6 বাইট পেতে এফপিসি ব্যবহার করে; এটি ছাড়া, ফলাফল আরও খারাপ হতে পারে। এটি সর্বনিম্নতম লাইন প্রস্থের যেহেতু পরে writeহতে হবে ;বা ((বা অপ্রয়োজনীয় শ্বেত স্পেস) হওয়া উচিত, তাই এটি এড়াতে একটি বিশেষ মন্তব্য inোকানো হয়। এফপিসি থেকে প্রাপ্ত বৈশিষ্ট্যগুলি যা এই উত্তরের উপর প্রভাব ফেলেছে:

  1. // - এক লাইন মন্তব্য শুরু।
  2. ফর্ম ব্লক মন্তব্যগুলি {$<something>...}সংকলক নির্দেশিকা। যদি নির্দেশের অস্তিত্ব না থাকে তবে এফপিসি একটি সতর্কতা জারি করবে (এবং {$ ...}পাশাপাশি)। এই প্রোগ্রামে {এবং $একটি নতুন লাইন দিয়ে পৃথক করা হয়েছে যা মুছে ফেলা হলে সতর্কতা জারি করবে।
  3. -Sew- কম্পাইলার এছাড়াও স্থগিত ও সতর্কবাণী যাতে {এবং $যোগদান স্টপ সংকলন।

1

জাপট , প্রতি লাইনে 3 বাইট

প্রায় প্রতি লাইনে এটি দুটি বাইটে নামিয়ে আনতে পরিচালিত হয়েছে, তবে মানচিত্রটি যদি নতুন লাইন অনুসরণ করে তবে তা ফিরে আসে।
ফিজবজ বাস্তবায়ন নিজেই ক্যানোনিকাল ফিজবজ থ্রেড থেকে


`A
p
p
l
e
`y
Vx
`P
i
e
`y
Xx
ò1\
 Ë\
;W\
pD\
v3\
)+\
Yp\
Dv\
5)\
ªD\
÷

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


1

LOLCODE , প্রতি লাইন 18 8 বাইট, মোট 303 বাইট

HAI 1.2
I HAS A…
B ITZ 0
IM IN…
YR L
B R SUM…
OF B AN…
1
MOD OF…
B AN 15
WTF?
OMG 0
VISIBLE…
"Apple"…
"Pie"
OMGWTF
MOD OF…
B AN 5
WTF?
OMG 0
VISIBLE…
"Pie"
OMGWTF
MOD OF…
B AN 3
WTF?
OMG 0
VISIBLE…
"Apple"
OMGWTF
VISIBLE…
B
OIC
OIC
OIC
BOTH…
SAEM B…
AN 100
O RLY?
YA RLY
GTFO
OIC
IM…
OUTTA…
YR L
KTHXBYE

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

লাইন-ধারাবাহিকতা অক্ষর ব্যবহার করে প্রতি লাইনে -10 বাইট , Ørjan জোহানসেনকে ধন্যবাদ!


আপনি… লাইন ধারাবাহিকতা অক্ষর দিয়ে এটি 8 এ নামতে পারেন। এটি অনলাইন চেষ্টা করুন!
janর্জন জোহানসেন

আমি প্রতিদিন এই এসওল্যাংগুলি সম্পর্কে নতুন কিছু শিখছি। ধন্যবাদ, ওয়ারজান!
জোশিহায়ারানওয়ান

0

পাইথন 2 , 5 বাইট / লাইন

exec\
'f\
o\
r\
 \
x\
 \
i\
n\
 \
x\
r\
a\
n\
g\
e\
(\
1\
,\
i\
n\
p\
u\
t\
(\
)\
+\
1\
)\
:\
\n\
 \
i\
f\
 \
x\
%\
1\
5\
=\
=\
0\
:\
s\
="\
A\
p\
p\
l\
e\
P\
i\
e"\
\n\
 \
e\
l\
i\
f\
 \
x\
%\
5\
=\
=\
0\
:\
s\
="\
P\
i\
e"\
\n\
 \
e\
l\
i\
f\
 \
x\
%\
3\
=\
=\
0\
:\
s\
="\
A\
p\
p\
l\
e"\
\n\
 \
e\
l\
s\
e\
:\
s\
=\
x\
\n\
 \
p\
r\
i\
n\
t\
(\
s\
)'

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


সাবধান হন! 'z\"'এর অর্থ same হিসাবে একই জিনিস , সুতরাং 'z\অনর্থক "'নিউলাইন বিধি মানে আপনি স্ট্রিংয়ের সাথে একটি ধারাবাহিকতা রেখাটি শুরু করার অনুমতি পাচ্ছেন না "
অ্যান্ডারস ক্যাসরগ

@ এন্ডারস ক্যাসরগ এটি r'...'এখন তৈরি করেছে
মার্টমিস্ট

এটি নিক্ষেপ a SyntaxError
এরিক আউটগল্ফার

টিআইও এক নম্বর তাড়াতাড়ি থামায়। এছাড়াও, নিয়মগুলি ব্যবহার থেকে পরিবর্তিত হয়েছিলFizzBuzz ব্যবহার করে ApplePie
janrjan Johansen

0

জাভাস্ক্রিপ্ট (ECMAScript6), প্রতি লাইনে 2 বাইট

'\
'[
'\
b\
i\
g'
][
'\
c\
o\
n\
s\
t\
r\
u\
c\
t\
o\
r'
][
'\
c\
a\
l\
l'
](
0,
`\
n\
=\
p\
r\
o\
m\
p\
t\
(\
'\
'\
)\
;\
i\
=\
0\
;\
f\
o\
r\
(\
;\
+\
+\
i\
<\
=\
n\
;\
c\
o\
n\
s\
o\
l\
e\
.\
l\
o\
g\
(\
i\
%\
5\
?\
f\
|\
|\
i\
:\
f\
+\
'\
P\
i\
e\
'\
)\
)\
f\
=\
i\
%\
3\
?\
'\
'\
:\
'\
A\
p\
p\
l\
e\
'\
`)
()


দীর্ঘ ব্যাখ্যা

আমরা যেভাবে লাইনকে সংক্ষিপ্ত করতে পারি তা কোডকে একটি স্ট্রিংয়ে রূপান্তর করা এবং লাইন শেষ হওয়া থেকে বেরিয়ে আসা, এটি প্রতি লাইনে 2 বাইট এর সীমাবদ্ধতা আরোপ করবে।

তাই alert(1)হয়ে যায়

"\
a\
l\
e\
r\
(\
1\
)"

তবে এখন আপনার কোডটি একটি স্ট্রিং তাই আমাদের কোড হিসাবে স্ট্রিংটি চালানো দরকার। আমি কমপক্ষে 4 টি উপায় জানি যা আপনি কোড হিসাবে স্ট্রিং চালাতে পারেন:

  1. Eval (কোড) । যা কল করতে কমপক্ষে 5 বাইট লাগেeval(
  2. সেটটাইমআউট (কোড, সময়সীমা) । অবিচ্ছিন্নভাবে ফাংশন পরিচালনা করে, তবে allyচ্ছিকভাবে আপনি যদি একটি স্ট্রিং পাস করেন তবে এটি অভ্যন্তরীণভাবে বিভক্ত হবে।
  3. আপনি ডিওএমের সুবিধা নিতে পারেন এবং আপনার কোডটি একটি onclick=""গুনের মধ্যে রেখে দিতে পারেন, তবে আমি উপাদানটির অংশটি সংক্ষিপ্ত করে তুলতে পারি না।
  4. Invoking ফাংশন কন্সট্রাকটর নতুন ফাংশন () একটি বেনামী ফাংশন যা আপনাকে পরে ফোন করতে পারেন (আমি এই ব্যবহৃত) মধ্যে আপনার কোড বিশ্লেষণ করতে হবে।

ভিতরে সমস্ত নেটিভ ফাংশন জীবন উইন্ডোতে বস্তু এবং জাভাস্ক্রিপ্ট মধ্যে আপনি ব্যবহার বস্তুর বৈশিষ্ট্যাবলী অ্যাক্সেস করতে পারেন ডট স্বরলিপি তাই eval()হয়ে window.eval(), অথবা আপনি ব্যবহার করে বৈশিষ্ট্যের অ্যাক্সেস করতে পারেন বন্ধনী স্বরলিপি window['eval']() । আপনি evalপূর্বে বর্ণিত পদ্ধতিটি ব্যবহার করে একাধিক লাইনগুলি ভাঙ্গতে এর সুবিধা নিতে পারেন । তবে আপনাকে এখনও উইন্ডোটি টাইপ করতে হবে , একটি কৌশল হ'ল আপনি যদি কোনও ফ্রেমের ভিতরে না থাকেন তবে the উপরের ভেরিয়েবলটি উইন্ডোও হয়, সুতরাং উইন্ডো.ভালটি শীর্ষ.ওভাল হয় (3 বাইট কম)।

w=top
w['eval']

You can shorten the assignment using parenthesis
w=(
top
)
w[
'e\
av\
al'
](
/*string*/
)

সুতরাং এটি কোডটি সর্বনিম্ন 3 বাইট তৈরি করবে। কোড 2 বাইট তৈরি করতে আমি new Function(/*string*/);কনস্ট্রাক্টরটি ব্যবহার করেছি, তবে এটি টাইপ না করেই অ্যাক্সেস করার জন্য আমার সৃজনশীল হতে হয়েছিল।

প্রথমত, ফাংশন কনস্ট্রাক্টর আপনাকে নতুন কীওয়ার্ড বাদ দিয়ে একটি ফাংশন হিসাবে এটি কল করার অনুমতি দেয়, এটি 4 বাইট হ্রাস করে তবে এটি অন্য কারণেও গুরুত্বপূর্ণ। কনস্ট্রাক্টরটিকে একটি ফাংশন হিসাবে কল করা এখনও একটি উদাহরণ দেয় যা এটি আমাদের দিকে যেতে new Function(code)দেয়Function(code) । আরেকটি ইম্পরান্ট জিনিস হ'ল ফাংশন কনস্ট্রাক্টরের একটি callপদ্ধতি রয়েছে যা আপনাকে যে কোনও ফাংশন কল করতে দেয় তবে এই রেফারেন্সটিকে ওভাররাইড করে এবং ফাংশন কনস্ট্রাক্টর নিজেই একটি ফাংশন হিসাবে আপনি নিজেই কোনও পদ্ধতিতে কল করতে পারেন Function.call(null, code)

সমস্ত নেটিভ ফাংশনগুলি ফাংশন কনস্ট্রাক্টরের উদাহরণ এবং জাভাস্ক্রিপ্টের সমস্ত অবজেক্টের কনস্ট্রাক্টর সম্পত্তি থাকে। সুতরাং আপনার যেকোন নেটিভ ফাংশনে alert.constructorএবং ব্যবহার করে ফাংশন কনস্ট্রাক্টর অ্যাক্সেস করতে পারেন কল পদ্ধতিটি আমরা কনস্ট্রাক্টরকে একটি ফাংশন হিসাবে কার্যকর করতে পারি। এখন আমাদের কাছে সতর্কতা-কনস্ট্রাক্টর.কম (নাল, কোড) একটি ফাংশন দেয়।

পূর্ববর্তী থিঙ্কিয়াকগুলি একত্রিত করে আমরা এটিতে পরিণত করতে পারি alert['constructor']['call'](null, code)

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

"".big.constructor.call(null, "code")();
''['big']['constructor']['call'](0,'/* code */')() 

তারপরে আমি মাত্র 2 বাইটে প্রতিটি জিনিস ভেঙে ফেলেছি

সংক্ষিপ্ত এর ব্যাখ্যা (টিএলডিআর)

আমি নতুন ফাংশন (কোড) অ্যাক্সেস করছি eval (কোড) এর পরিবর্তে স্ট্রিংটি পার্স নির্মাণকারীকে । এই কনস্ট্রাক্টর যে কোনও কাজ করে প্রতিটি নেটিভ ফাংশনে উপলব্ধ available কন্সট্রাকটর মত alert.constructor===Function। আমি স্ট্রিং.প্রোটোটাইপ.বিগের ভিতরে একটি ফাংশন / পদ্ধতি ব্যবহার করছি String.prototype.big.constructor.call(null, /*string*/) তবে এটি কোনও স্ট্রিং আক্ষরিক থেকে সরাসরি অ্যাক্সেস করে ব্র্যাকেট স্বরলিপিটিতে"".big পরিণত করে । এটি ব্যবহার করে এটি ভেঙে ফেলতে সক্ষম হবেন ।""['big']['constructor']['call'](0, CODE)\


1
দুর্ভাগ্যবশত, আমি মনে করি এটা মধ্যে কোনো লাইন বিরতি যেমন যেহেতু অবৈধ 'এবং ]মুছে ফেলা হতে পারে এবং প্রোগ্রাম এখনও সফলভাবে চালানো হবে।
darrylyeo

২. প্রস্থের এটিকে দেওয়া সম্পর্কে আমি কোনওভাবেই চিন্তা করতে পারি না তবে যেহেতু আমাদের প্রায় অভিন্ন দৃষ্টিভঙ্গি রয়েছে , সম্ভবত আপনি আমার উত্তরটিতে নিজের ব্যাখ্যাটির একটি অভিযোজিত সংস্করণ যুক্ত করতে পারেন, তাই কি সব হারিয়ে যায় না?
darrylyeo

0

পিপ , প্রতি লাইনে 3 বাইট, মোট 72 বাইট

V@Y
YUW
Y"L
a
P
S
T
[
`
A
p
p
l
e
`
`
P
i
e
`
]
X
!
*
+
+
i
%
^
3
5
|
i"

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

হোয়াইটস্পেস সম্পর্কে পাইপ অত্যন্ত নমনীয়, সুতরাং একমাত্র কৌশল যা সম্ভব বলে মনে হয় তা হল একটি স্ট্রিং তৈরি করা, এমনভাবে পরিবর্তন করা যাতে নিউলাইনগুলিকে বিঘ্নিত না করা প্রয়োজন এবং এটিকে প্রকাশ করা উচিত।

আমরা একটি স্ট্রিং তৈরি করি যেখানে প্রতিটি অন্যান্য চরিত্রটি একটি নতুন লাইন হয় এবং এর প্রতিটি অন্যান্য চরিত্রকে UW(বোনা) এবং অবিচ্ছিন্ন @(প্রথম উপাদানটি পান ) ব্যবহার করে নিই :

UW"abcdef"  => ["ace" "bdf"]
@UW"abcdef" => "ace"

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

স্ট্রিংয়ের বাইরে এখনও দুটি নতুন লাইন রয়েছে। আমরা এইগুলি ব্যবহার করে বাধ্যতামূলক করে দিয়েছিYপাইপকে বড় হাতের অক্ষরগুলি যেভাবে ছড়িয়ে দেয় তার সাথে একসাথে (ইয়াঙ্ক) অপারেটরটি - যা এখানে নো-অপ্প হিসাবে কাজ করে:

YUW   => Y UW
YUW Y => Y UW Y
YUWY  => YU WY

সুতরাং যদি এই নতুনলাইনগুলি মুছে ফেলা হয় তবে প্রোগ্রামটি আলাদাভাবে পার্স করে এবং যা যা অনুমান করা উচিত তা করে না।


0

জাভা 8, প্রতি লাইনে 7 বাইট, 171 বাইট

একটি অকার্যকর ল্যাম্বদা একটি গ্রহণ int। আমি সন্দেহ করি এটি নিউলাইনগুলি সম্পর্কিত প্রয়োজনীয়তা মেনে চলে, তবে আমি এটি প্রমাণ করতে পারছি না, এবং এটি নিষ্ঠুর শক্তি দ্বারা যাচাই করা আমার কম্পিউটারে প্রায় এক মাস সময় নিতে পারে। সুতরাং এটি যায়।

a->{//
System
s=//
null;//
for(int
i=0;i//
<a;)s//
.out.//
print//
((++i//
%3*(i//
%5)<1//
?(i%3//
<1?//
"App"//
+"le"//
:"")+//
(i%5<//
1?//
"Pie"//
:"")://
i)+//
"\n");}

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

লাইন মন্তব্যের কারণে বেশ বোরিং। এখানে কেবল আকর্ষণীয় জিনিসটি নাল Systemরেফারেন্সের ব্যবহার , যা প্রতি লাইনে 8 বাইটের নিচে স্ট্যান্ডার্ড আউট প্রিন্ট করার জন্য প্রয়োজনীয় বলে মনে হয়। এছাড়াও লক্ষ্য করুন যে printপদ্ধতি কলটি হ'ল বাধা।

কোনও মন্তব্য ছাড়াই নিরপেক্ষ:

a -> {
    System s = null;
    for (int i = 0; i < a; )
        s.out.print(
            (++i % 3 * (i % 5) < 1 ?
                (i % 3 < 1 ? "App"+"le" : "")
                    + (i % 5 < 1 ? "Pie" : "")
                : i
            ) + "\n"
        );
}
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.