একটি প্রোগ্রাম লিখুন যা বৃত্তাকার চরিত্রের শিফ্টের পরে বৈধ


17

সম্ভবত খুব কঠিন, তবে আমি কিছু আশ্চর্যজনক জিনিস এই সাইট থেকে বেরিয়ে আসতে দেখেছি।

লক্ষ্য হ'ল কোনও প্রোগ্রাম লিখুন, যে কোনও ভাষায়, যা আপনি চান তা করে। ধরাটি হ'ল প্রোগ্রামটি অবশ্যই অক্ষরের কোনও বৃত্তাকার শিফ্টের পরে বৈধ হওয়া উচিত ।

একটি বৃত্তাকার অক্ষর স্থানান্তর একটি সার্কুলার শিফ্ট অনুরূপ । কিছু উদাহরণ আমার পরিষ্কার জিনিস আপ।

প্রোগ্রামের জন্য int main() { return 0; }

বাম দিকে 6 অক্ষরের ফলন: in() { return 0; }int ma

বাম দিকে 1 অক্ষর স্থানান্তরিত: nt main() { return 0; }i

10 টি চরিত্রের ফলন দিয়ে ডানে সরে যাওয়া: eturn 0; }int main() { r

তবে, এই প্রোগ্রামটি অবশ্যই নিয়ম মেনে চলে না।

বিধি

  • যেকোনো ভাষা
  • বিজয়ী আপ-ভোট গণনা দ্বারা স্থির হয়
  • সমাধানগুলি যা একই কাজ করে বা প্রতিটি ঘূর্ণনের জন্য সম্পূর্ণ আলাদা জিনিস, তাদের স্কোরটিতে 100 টি ভার্চুয়াল আপ-ভোট পাবে।

আপডেট আমি মনে করি এটি যথেষ্ট দীর্ঘ হয়েছে। সবচেয়ে বেশি ভোট সহ বিজয়ী (ভার্চুয়াল ভোট অন্তর্ভুক্ত) হলেন মার্ক বাইয়ার্স। সাবাশ!


5
ভাষাগুলিতে কিছু খুব বিরক্তিকর সম্ভাব্য উত্তর রয়েছে যার মধ্যে একটি অন্তর্গঠিত একটি বৈধ প্রোগ্রাম। তারা কি ভার্চুয়াল -100 পাবেন?
পিটার টেলর

1
@ পিটারটেলর আমি ধরে নিচ্ছি যে বোরিং উত্তরগুলি কম ভোট পাবে।
গ্রিফিন

"সম্ভাব্যভাবে খুব কঠিন" এই জাতীয় বিবৃতিটি একটি সাধারণ উপায়ে দেওয়ার আগে প্রচুর অদ্ভুত ভাষার সাথে পরিচিত হওয়া সর্বদা সহায়ক। সি বা জাভাতে শক্ত, নিশ্চিত, তবে 1 টি অক্ষর কমান্ড এবং সাধারণ বাক্য গঠন সহ ভাষায়? তেমন বেশি না.
dmckee

@dmckee অতএব "সম্ভাব্য" ...
গ্রিফিন

@ পিটারটেলরও প্রচুর ভাষায় খালি প্রোগ্রামটি একটি বৈধ প্রোগ্রাম
জে কে।

উত্তর:


31

কাজের জন্য সঠিক ভাষা ব্যবহার করুন। এই ক্ষেত্রে, যে Befunge

এই ভাষাটি স্বাভাবিকভাবেই আবর্তনের অনুমতি দেয় কারণ:

  • সমস্ত কমান্ড একটি একক অক্ষর।
  • শুরু থেকে আবার শুরু হয়ে প্রোগ্রামের শেষের দিকে পৌঁছলে নিয়ন্ত্রণটি প্রায় গুটিয়ে যায়।

এই বেফঞ্জ প্রোগ্রামটি আপনি একইভাবে আউটপুট ("হ্যালো") মুদ্রণ করুন আপনি যতগুলি "বৃত্তাকার চরিত্রের স্থানান্তর" ব্যবহার করছেন তা নির্বিশেষে:

86*01p75*1-02p447**1-03p439**04p439**05p455**1+06p662**07p75*1-08p645**2-09p69*4+019+p57*029+p59*1-039+p555**1-049+p88*059+p86*01p75*1-02p447**1-03p439**04p439**05p455**1+06p662**07p75*1-08p645**2-09p69*4+019+p57*029+p59*1-039+p555**1-049+p88*059+p645**2-00p645**2-00p

এটি বেফুঙ্গির উপর চলে । এটি বোর্ড বাড়ানো প্রয়োজন (80 টি অক্ষরের ডিফল্ট নয়)। এটি এভাবে চালানো যেতে পারে:

python befungee.py -w400 hello.bef

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

ধারণাটি যথেচ্ছ জটিলতার কোনও প্রোগ্রাম উত্পাদন করতে বাড়ানো যেতে পারে।


খুব সুন্দর এন্ট্রি!
ক্রিস্টোফিড

22

Brainf * CK

কাজের জন্য সঠিক সরঞ্জামটি চয়ন করুন - এমন একটি প্রবন্ধ যা এখানে এই কাজের চেয়ে বেশি কখনও প্রাসঙ্গিক হয়নি!

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
++++++++++++++++++.>+++++++++++++++++++++++++++++++++++++++++++++
+++++++++++++++++++++++++++.+.>++++++++++++++++++++++++++++++++++
++++++++++++++++++++++++++++++++++++.++++++++++++++.>++++++++++.+

আপনি এখানে যে শিরোনামহীন প্রোগ্রামটি দেখুন তা কেবল মুদ্রণ করে SHIFT(প্লাস একটি নতুন লাইন)। অভ্যাসগতভাবে বিজ্ঞপ্তি শিফটগুলি অন্যান্য অন্যান্য আউটপুট উত্পাদন করে, যদিও এটি সর্বদা ছয়টি ASCII অক্ষর আউটপুট করে।


আমি প্রশ্নটি পড়েছি এবং ভেবেছিলাম, ব্রেইনফাক, এটিই টিকিট, তবে আপনি আমাকে এতে মারধর করেছেন।
jmoreno

12

কমোডোর 64 বেসিক

?সংক্ষিপ্ত PRINT, এবং :একটি বিবৃতি বিভাজক, তাই:

?1:?2:?3:          // prints 1, 2, and 3
:?1:?2:?3          // prints 1, 2, and 3
3:?1:?2:?          // adds a program line 3 :PRINT1:PRINT2:PRINT
?3:?1:?2:          // prints 3, 1, and 2
:?3:?1:?2          // prints 3, 1, and 2
2:?3:?1:?          // adds a program line 2 :PRINT3:PRINT1:PRINT
?2:?3:?1:          // prints 2, 3, and 1
:?2:?3:?1          // prints 2, 3, and 1
1:?2:?3:?          // adds a program line 1 :PRINT2:PRINT3:PRINT

দীর্ঘতর বৈচিত্রগুলি অবশ্যই সম্ভব:

?1:?2:?3:?4:?5:?6:?7:?8:?9:?10:?11:

ইত্যাদি ...


11

Golfscript

এই প্রোগ্রামটি এমন কিছু ডিজিট মুদ্রণ করে যা প্রোগ্রামটি কীভাবে স্থানান্তরিত হয় তা নির্বিশেষে সর্বদা 2 এর সমষ্টি হয়:

10 2 base
0 2 base1
 2 base10
2 base10 
 base10 2
base10 2 
ase10 2 b
se10 2 ba
e10 2 bas

প্রথম লাইন প্রিন্ট 1010(বাইনারি 10), দ্বিতীয় লাইন প্রিন্ট 02এবং অন্যান্য সমস্ত লাইন মুদ্রণ 2

হালনাগাদ:

প্রোগ্রামটি এখানে পরীক্ষা করা যেতে পারে । দয়া করে মনে রাখবেন যে আমি nপ্রতিটি সারির শেষে কেবলমাত্র আউটপুট ফর্ম্যাট করার জন্য যুক্ত করেছি ; এগুলি সরানো যেতে পারে এবং প্রোগ্রামটি এখনও কাজ করে।


10

রুবি, সম্ভবত সংক্ষিপ্ততম সমাধানগুলির মধ্যে একটি:

p

এবং আরেকটি সামান্য দীর্ঘ এবং আরও আকর্ষণীয়:

;;p";p;";p

9

x86 16 বিট বাইনারি

এই ( 1 2 ) সারণী, নাসম এবং এনডিএসসমের সাহায্যে ম্যানুয়ালি নির্মিত। এটি সর্বদা ক্র্যাশ বা অসীম লুপ ছাড়াই ফিরে আসবে, কারণ কোনও বাইট জাম্প বা স্ট্যাক পরিবর্তন করে না এবং এটি একটি একক বাইট দিয়ে শেষ করতে এনওপিগুলিতে পূর্ণ হয়ret নির্দেশের ।

বেশিরভাগ ক্ষেত্রে এটি আউটপুট FOOবা এটির একটি স্ট্রস্ট্রিং করবে। যদি AXভাঙ্গা হয় তবে এটি একটি এলোমেলো 10 নম্বর কল করবে (এটি আমার কোনও পরীক্ষায় কার্সার ঝলকানোর গতি পরিবর্তন করেছে), তবে এটি সাধারণত ক্র্যাশ হয় না।

চেষ্টা করার জন্য, একটি ফাইলে হেক্সডাম্প রেখে ব্যবহার করুন xxd -r foo.hex > foo.com, তারপরে একটি ডস পরিবেশে চালান (আমি ডসবক্স ব্যবহার করেছি)।

এই ফাইলটির একটি হেক্সাস ডাম্প এখানে রয়েছে:

0000000: b846 0d90 90fe c490 9090 bb05 0090 9043  .F.............C
0000010: 43cd 1090 b84f 0d90 90fe c490 9090 bb05  C....O..........
0000020: 0090 9043 43cd 1090 b84f 0d90 90fe c490  ...CC....O......
0000030: 9090 bb05 0090 9043 43cd 1090 9090 c3    .......CC......

এবং কিছু আকর্ষণীয় বিচ্ছিন্ন অফসেটগুলি:

+0

00000000  B8420D            mov ax,0xd42
00000003  90                nop
00000004  90                nop
00000005  FEC4              inc ah
00000007  90                nop
00000008  90                nop
00000009  90                nop
0000000A  BB0500            mov bx,0x5
0000000D  90                nop
0000000E  90                nop
0000000F  43                inc bx
00000010  43                inc bx
00000011  CD10              int 0x10
00000013  90                nop
00000014  B84F0D            mov ax,0xd4f
00000017  90                nop
00000018  90                nop
00000019  FEC4              inc ah
0000001B  90                nop
0000001C  90                nop
0000001D  90                nop
0000001E  BB0500            mov bx,0x5
00000021  90                nop
00000022  90                nop
00000023  43                inc bx
00000024  43                inc bx
00000025  CD10              int 0x10
00000027  90                nop
00000028  B84F0D            mov ax,0xd4f
0000002B  90                nop
0000002C  90                nop
0000002D  FEC4              inc ah
0000002F  90                nop
00000030  90                nop 
00000031  90                nop
00000032  BB0500            mov bx,0x5
00000035  90                nop
00000036  90                nop
00000037  43                inc bx
00000038  43                inc bx
00000039  CD10              int 0x10
0000003B  90                nop
0000003C  90                nop
0000003D  90                nop
0000003E  C3                ret

(নীচের উদাহরণগুলির জন্য, বাইনারি বাকীটি এখনও কার্যকর আছে)

+1 টি

00000000  42                inc dx
00000001  0D9090            or ax,0x9090
00000004  FEC4              inc ah
00000006  90                nop

+2

00000001  0D9090            or ax,0x9090
00000004  FEC4              inc ah
00000006  90                nop

+6

00000000  C4909090          les dx,[bx+si-0x6f70]
00000004  BB0500            mov bx,0x5
00000007  90                nop
00000008  90                nop
00000009  43                inc bx
0000000A  43                inc bx
0000000B  CD10              int 0x10

+11

00000000  050090            add ax,0x9000
00000003  90                nop
00000004  43                inc bx
00000005  43                inc bx
00000006  CD10              int 0x10

+12

00000000  00909043          add [bx+si+0x4390],dl
00000004  43                inc bx
00000005  CD10              int 0x10

: +18

00000000  1090B84F          adc [bx+si+0x4fb8],dl
00000004  0D9090            or ax,0x9090
00000007  FEC4              inc ah
00000009  90                nop

(অন্যান্য অফসেটগুলি কেবল উপরের পুনরাবৃত্তি)

+58

00000000  10909090          adc [bx+si-0x6f70],dl
00000004  C3                ret

7

Unary উত্তর:

000000 ... 00000

39 44391 জেরোস

বিড়াল প্রোগ্রাম। আপনি কীভাবে ঘোরান তা বিবেচনাধীন, এটি একই প্রোগ্রাম।


6

পিএইচপি

আপনি এখানে যান, একটি বৈধ পিএইচপি প্রোগ্রাম:

Is this still funny?

2
আপনার "এট" এর মতো একটি শব্দ ব্যবহার করা উচিত (আমি নিশ্চিত যে আরও দীর্ঘায়িত আছে), যাতে প্রতিটি চরিত্রের স্থানান্তরটি এখনও একটি সত্য শব্দ হতে পারে।
পিটার

10
আমি এটি +1 করতে বা এটি -1 করব কিনা তা নিশ্চিত নই
লাই রায়ান

6

scala

নেস্টেড উদ্ধৃতি:

""""""""""""""""""""""""""""""""

সি ++ / জাভা / সি # / স্কালা

মন্তব্য:

///////////////////////////////////

খালি আদেশ:

;;;;;;;;;;;;;;;

সজোরে আঘাত

মন্তব্য, সাদা স্থান এবং শেল বিল্টিন সংমিশ্রণ:

#

:

SED

স্বতন্ত্র বৈধ কমান্ড:

p P n N g G d D h H

উপরে একটি সংমিশ্রণ:

p;P;n;N;g;G;d;D;h;H;

awk

ফাইলের প্রতিটি লাইন মুদ্রণ করতে:

1

অথবা

//

কিছু মুদ্রণ করবেন না:

0

পার্ল

abcd

আমার কাছে দেখে মনে হচ্ছে এসইডি কোনও বিজোড় ঘোরাতে ব্যর্থ হবে? কি ;P;n;N;g;G;d;D;h;Hবৈধ?
ক্যাপচার্যাগ

@ সিএমপি: হ্যাঁ এটি বৈধ।
যুবরাজ জন ওয়েসল

5

জে

প্রথমত, কোনও প্রোগ্রামের বৈধ ঘূর্ণন পরীক্ষা করার জন্য একটি স্ক্রিপ্ট s:

check =: 3 :'((<;(". :: (''Err''"_)))@:(y |.~]))"0 i.#y'

উদাহরণস্বরূপ, প্রোগ্রামটি +/1 5(1 এবং 5 এর যোগফল) দেয়:

 check '+/1 5'
┌───────┬───┐
│┌─────┐│6  │
││+/1 5││   │
│└─────┘│   │
├───────┼───┤
│┌─────┐│Err│
││/1 5+││   │
│└─────┘│   │
├───────┼───┤
│┌─────┐│Err│
││1 5+/││   │
│└─────┘│   │
├───────┼───┤
│┌─────┐│6  │
││ 5+/1││   │
│└─────┘│   │
├───────┼───┤
│┌─────┐│6  │
││5+/1 ││   │
│└─────┘│   │
└───────┴───┘

তারপরে, এক বিরক্তিকর, বৈধ প্রোগ্রাম:

check '1x1'
┌─────┬───────┐
│┌───┐│2.71828│ NB. e^1
││1x1││       │
│└───┘│       │
├─────┼───────┤
│┌───┐│       │ NB. Value of variable x11
││x11││       │ 
│└───┘│       │
├─────┼───────┤
│┌───┐│11     │ NB. Arbitrary precision integer
││11x││       │
│└───┘│       │
└─────┴───────┘

2

ডিসি

ডিসি প্রোগ্রামগুলি যে কোনও আবর্তনে সহজেই বৈধ are উদাহরণ স্বরূপ:

4 8 * 2 + p  # 34
8 * 2 + p 4  # stack empty / 10
...

1

মেশিন কোড

এনওপি-র জন্য জেড 80 / ইন্টেল 8051 মেশিন কোড সম্পর্কে কীভাবে ।

নিশ্চিত যে এটি কোনও অপারেশন করে না, তবে এটি দুটি বা একটি চক্র গ্রহণ করবে ... আপনার যতগুলি চান তার কম বা কয়েকজন থাকতে পারে।

এবং আমি উপরের রুবির উত্তরের সাথে একমত নই - আমার কাছে মনে হয় একক বাইট 00 ঘন্টা একটি রুবির চেয়ে ছোট p


1

.""

একটি খালি স্ট্রিং মূল্যায়ন

"."

একটি পিরিয়ড অক্ষর প্রদান করে

"".

'এর আংশিক আবেদন ফেরত দেয়। (ডায়ানিক ফর্ম) একটি খালি অক্ষর তালিকায়।


1

sh, বাশ

cc
cc: no input files

সিসি ঘোরানো আবার সিসি হয়, তবে এতটা উলঙ্গ বলা গেলে এটি খুব বন্ধুত্বপূর্ণ নয়।

dh 
dh: cannot read debian/control: No such file or directory
hd 

ডিএইচ ডিহেল্পার খুব বেশি সমবায়িত নয়, যখন হেক্সডাম্প কেবল ইনপুটটির জন্য অপেক্ষা করে।

gs
sg 

ঘোস্টস্রিপ্ট ইন্টারেক্টিভ মোড শুরু করে, যখন স্যুইচ গ্রুপটি একটি ব্যবহার বার্তা দেখায় - এখানেও একটি বৈধ সমাধান solution

এবং এই জাতীয় প্রোগ্রামগুলির জন্য প্রার্থীদের সন্ধানের জন্য এখানে স্ক্রিপ্ট রয়েছে:

#!/bin/bash
for name in /sbin/* /usr/sbin/* /bin/* /usr/bin/*
do 
    len=${#name}
    # len=3 => 1:2 0:1, 2:1 0:2
    # len=4 => 1:3 0:1, 2:2 0:2, 3:1 0:3
    for n in $(seq 1 $((len-1)))
    do
        init=${name:n:len-n}
        rest=${name:0:n}
        # echo $init$rest
        which /usr/bin/$init$rest 2>/dev/null >/dev/null && echo $name $init$rest $n
    done 
done

যদি আর লম্বা ক্রমগুলিও খুঁজে পাওয়া যায়, যেমন (আরজ, জার) বা (লুয়াটেক্স, টেক্সলুয়া) যা প্রতিটি শিফটের পরে বৈধ নয় তবে কিছু নির্দিষ্ট শিফটের পরে, যা আমি শুরুতে ভুলভাবে পড়েছি, তবে কয়েকটি রয়েছে, তাই এটি সহজ is তাদের হাতে ফিল্টার আউট।


দুটিরও বেশি অক্ষরের উদাহরণ বৈধ নয়; ওপি বলেছিল যে "প্রোগ্রামটি অবশ্যই কোনও বিজ্ঞপ্তি স্থানান্তরের পরে বৈধ হতে হবে "। সুতরাং, arj/ jarবৈধ নয়, কারণ কোনও rjaআদেশ নেই (যদিও আমি এই উদাহরণটি পছন্দ করি)। স্ক্রিপ্টটির জন্য +1 - সত্যিই দুর্দান্ত ধারণা :)
ক্রিশ্চিয়ান লুপাস্কু

যেহেতু আমি অনিশ্চিত ছিলাম, এবং স্থানীয় ইংরেজী বক্তা নই, তাই আমি একটি অভিধানের সাথে পরামর্শ করেছিলাম, যেখানে আমি এটি দ্বিধাহীন বলে মনে করেছি, এটির অর্থ everyবা অর্থ বোঝাতে a random one। উদাহরণটি সহ shift left by 6, left by 1এবং right by 10ব্যাখ্যায় আমাকে আশ্বাস দিয়েছিল যে আমার কেবল শিফট সম্ভাবনার সন্ধান করা দরকার।
ব্যবহারকারী অজানা

এটা অস্পষ্ট নয়। যদি কিছু প্রোগ্রাম এলোমেলো শিফটের পরে বৈধ হতে হয়, তবে এটি প্রতিটি সম্ভাব্য শিফটের জন্যও বৈধ হতে হবে।
গ্রিফিন

@ গ্রিফিন: ঠিক আছে - আপনি প্রশ্ন লিখেছেন। আমি দীর্ঘ উদাহরণগুলি সরিয়েছি; ভাগ্যক্রমে, জিএস এবং এসএজি এর মতো ইউনিক্সে যথেষ্ট ক্রপ্টিক অ্যাব্রভিভি প্রিনম রয়েছে। :) বিটিডব্লিউ .: আপনি কি স্থানীয় নেত্রীর স্পিকার? আগের বাক্যে আপনি লিখেছেন ... in any language ... - আমার সমাধানটি কেবল বাশ (এবং sh, zsh, ছাই এবং আরও কয়েকটি) তে কাজ করে, তবে এই সমস্ত সমাধানগুলি প্রোগ্রামের নামও নেয়।
ব্যবহারকারী অজানা

0

তুচ্ছ পাইথনের উদাহরণ:

"a""b""c""d""e""f""g""h""i""j""k""l""m""n""o""p""q""r""s""t""u""v""w""x""y""z""";print

বর্ণমালার আরও এবং বেশি প্রকাশ করতে বার বার তিনটি অক্ষর স্থানান্তরিত হতে পারে।


দুঃখিত, আমার প্রশ্নটি আরও পরিষ্কার করা উচিত ছিল। যে কোনও শিফটে অবশ্যই একটি বৈধ প্রোগ্রাম তৈরি করতে হবে। আমি প্রশ্ন আপডেট করেছি।
গ্রিফিন

0

পাইথন

123456789.0

কিছু সংখ্যা মূল্যায়ন করুন


0

ডিসি ইতিমধ্যে ব্যবহৃত হয়েছে, তবে নীচের প্রোগ্রামটি সর্বদা একই রকম আউটপুট দেয় , ঘূর্ণন কোনও ব্যাপার নয়: ডি

d

ouputs

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