জুড়ি-গল্ফিং টুইন প্রাইমস এবং কোলাটজ ক্রম


12

রূপান্তরিত উত্স কোড সমস্যা পুনরুদ্ধার দ্বারা অনুপ্রাণিত হয়ে এটি একটি নতুন ধরণের চ্যালেঞ্জ ।

আপনার একই ভাষায় দুটি প্রোগ্রাম বা ফাংশন লেখা উচিত। প্রথমটির টাস্ক # 1 সমাধান করা উচিত এবং দ্বিতীয়টি টাস্ক # 2 সমাধান করবে।

আপনার স্কোর দুটি প্রোগ্রামের উত্স কোডের মধ্যে দীর্ঘতর প্রোগ্রাম এবং লেভেনস্টাইন দূরত্বের যোগফল হবে । নিম্ন স্কোর আরও ভাল তাই প্রোগ্রামগুলির দৈর্ঘ্যকে সংক্ষিপ্ত রাখার সময় আপনার দুটি সমাধানকে একইরকম করার চেষ্টা করা উচিত।

কার্যক্রম 1

আপনি একটি ধনাত্মক পূর্ণসংখ্যা দেওয়া হয় Nএবং আপনার আউটপুট উচিত Collatz ক্রম এর Nস্পেস বা সম্পর্কে newline দ্বারা পৃথক। ট্রেলিং বিভাজক অনুমোদিত।

কোলাটজ ক্রমের প্রথম উপাদানটি হ'ল N। বাকী উপাদানগুলি তাদের উত্তরসূরি on এর উপর ভিত্তি করে তৈরি করা হয় :ai1

ai={ai12 if ai1 is even3ai1+1 if ai1 is odd

ক্রমটি পৌঁছানোর সাথে সাথে 1কোনও নতুন উপাদান উত্পন্ন হয় না।

ইনপুট => আউটপুট উদাহরণ:

6 => 6 3 10 5 16 8 4 2 1
8 => 8 4 2 1
1 => 1

কার্য # 2

যমজ প্রাইমের একটি জুটি হ'ল এক ধনাত্মক পূর্ণসংখ্যা যার পার্থক্য 2 এবং তারা উভয় প্রাইম।

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

ইনপুট => আউটপুট উদাহরণ:

6 => 11 13
42 => 59 61
1 => 3 5

স্কোর গণনার জন্য স্নিপেট

( পরিবর্তিত উত্স কোড সমস্যাটি পুনরুদ্ধার করুন এর মধ্যে একটিতে সংশোধন করুন ))

সম্পাদন করা

উত্তরের শিরোনামে আসুন বিন্যাসটি ব্যবহার করা যাক

[Language], [longer length] + [distance] = [final score]

যেমন

Python 2, 60 + 32 = 92

উত্তর:



4

সিজেম, 24 + 17 = 41 42

কোলাটজ প্রোগ্রাম :

ri2*{:N2%N3*)N2/?__p(}g;

টুইন প্রাইমস প্রোগ্রাম :

ri_2+]{:)_{mp}/&_+((}gS*

উভয়ই এসটিডিআইএন থেকে প্রিন্ট স্পেস / নিউলাইন দ্বারা পৃথক করা নম্বরগুলি এসটিডিআউটে নেয়

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


3

সিজেম, 25 + 16 = 41

কোলাটজ প্রোগ্রাম:

l~2*{_2%{3*)}{2/}?_p_(}g;

টুইন প্রাইমস প্রোগ্রাম:

l~_2+]{:)_{mp}/&!_&}gS*

এটি এখানে পরীক্ষা করুন।

আমি আপাতত দু'জনকেই গল্ফ দিয়েছি। আমি দেখব যে আমি কোনওভাবে স্কোর হ্রাস করতে পারি কিনা।


2

পাইথ, 20 + 14 = 40 34

Collatz:

QWtQ=Q@,/Q2h*3QQQ

প্রধান জুটি:

~Q1WttP*Q+Q2~Q1;Q+Q2

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

সম্পাদনা: @ আইস্যাক থেকে চুরি হওয়া আরও ভাল শর্ত পরীক্ষা করা হয়েছে। ফিল্টার ব্যবহারের মতো মনে হচ্ছে প্রধান জোড়াগুলির জন্য কিছুক্ষণ লুপ ব্যবহার করা তার চেয়ে কম orter

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


প্রাথমিক 3 5জোড়াগুলিতে ইনপুট 3 এর জন্য এটি আউটপুট দেয়। এটি আউটপুট করা উচিত 5 7
isaacg

@ আইস্যাকগ এটি স্থির করে, 3 :(
প্রেরণ করা হয়েছে

2

05 এ বি 1 ই , 14 + 13 10 9 = 27 24 23

-4 স্কোর শুধুমাত্র ASCII- এর জন্য ধন্যবাদ

কোলাটজ ক্রম (14 বাইট):

[DÉi3*>ë2÷}Ð,#

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

টুইন প্রাইমস (14 বাইট):

[DÅND>>Dp#}s,,

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


গল্ফড টুইন প্রাইমস (11 বাইট):

[ÅNDÌp#]DÌ»

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


কোলাটজ লিঙ্কটি ভুল
এএসসিআইআই-র

ধন্যবাদ, এটি স্থির!
উইসোয়া

প্রাইমস , -3 স্কোর। আলাদা, আরও ভাল গল্ফ (জোড় জোড় কী করে, বিটিডব্লিউ কি করে? কেন আমাকে করতে হবে ,,, এবং কেন কেবল Ð,সেখানে কাজ করতে হবে)
-এএসসিআই-শুধুমাত্র

-1 আরও (সম্পাদনা করুন: কিছু মনে করবেন না, প্রথম সংখ্যাটি ছোট হওয়া উচিত now এখনকার জন্য 24 স্কোর করুন
ASCII- কেবল


1

জাভা 8, 118 + 84 = 202

Collatz:

n->{for(System.out.println(n);n>1;System.out.println(n=n%2<1?n/2:3*n+1));}

যমজ প্রাইমস:

n->{t:for(int p,z;;n++){for(z=n;z<n+3;z=z+2)for(p=2;p<z;p++)if(z%p<1)continue t;System.out.print(n+" "+(n+2));break;}}

জাভা 8 উল্লেখ করুন ..
অপ্টিমাইজার 21

1

গণিত, 53 + 29 = 82

কোলাটজ সিকোয়েন্স:

Print/@(NestWhileList[If[OddQ@#,3#+1,#/2]&,#,#>1&]);&

টুইন প্রাইমস প্রোগ্রাম:

Print/@(NestWhile[NextPrime,#,!PrimeQ[#+2]&]+{0,2});&

1

> <> , 116 + 86 = 202

কোলাটজ প্রোগ্রাম (46):

0i:0(?v$a*$'0'-+!
?v6,>:>~:nao:1=?;3*:2%
 >1+^

টুইন প্রাইমস প্রোগ্রাম (116):

0i:0(?v$a*$'0'-+!
v&2+1~<:-2
<v!?%&+1:&:v?=&:&:
 >&~0$2&2+v>&~143.
:&:1+&%?!v>:&:&=?v
0v?*r$0~&< .561~&<.1
:<;noan-2

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

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


3
"গল্ফ ইট, গল্ফ ইট এনএও!" - ন্যানলোল্ড গল্ফজেনেগার এই বলে, প্রশ্নটি বলে মনে হচ্ছে না যে লেভেনস্টাইন দূরত্ব হ্রাস করার জন্য আবর্জনা যোগ করা নিষিদ্ধ, তাই আমি বাদাম হয়ে যাব;)
ফ্রাইআম দ্য এজম্যান

0

সি ++ দূরত্ব = 114 দীর্ঘ দৈর্ঘ্য = 155 স্কোর = 269

কার্যক্রম 1

void c(int N){while(N>1){cout<<N<<' ';N=(N%2==0)?N/2:N*3+1;}cout<<N;}

টাস্ক 2

int p(int x){int z=0;for(int i=2;i<x;i++){if(x%i==0){z=1;break;}}return z;}
void c(int N){N=(N%2==0)?N+1:N+2;int M=N+2;while(p(N)+p(M)>0){N=M;M+=2;}cout<<N<<' '<<M;}

টাস্ক 2 উন্নত

int p(int N){int z=0;for(int i=2;i<N;i++){if(N%i==0){z=1;break;}}return z;}
void c(int N){N=(N%2==0)?N+1:N+2;while(p(N)+p(N+2)>0){N+=2;}cout<<N<<' '<<N+2;}

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

@ অপ্টিমাইজার আমি প্রাইমগুলির জন্য পরীক্ষার অন্য কোনও উপায় সম্পর্কে জানিনা? অন্যান্য ভাষা এই তৈরি করেছি।
bacchusbeale

1
এমনকি আমি আলগো পরিবর্তন করার কথা বলছিলাম না। উদাহরণস্বরূপ, এই int p(int x){int z=0;for(int i=2;1<x;i++){cout<<x<<' ';x=(x%2==0)?x/2:x*3+1;}cout<<x;return z;}
অপ্টিমাইজার
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.