আরোহী ম্যাট্রিক্স


17

"আরোহী ম্যাট্রিক্স" হ'ল সম্পূর্ণ সংখ্যাগুলির একটি অসীম ম্যাট্রিক্স (0 টি অন্তর্ভুক্ত) যার মধ্যে যে কোনও উপাদানই সর্বাধিক সহজলভ্য উপাদান যা পূর্বে সম্পর্কিত সারি এবং কলামে ব্যবহৃত হয়নি:

  | 1 2 3 4 5 6 ...
--+----------------
1 | 0 1 2 3 4 5 ...
2 | 1 0 3 2 5 4 ...
3 | 2 3 0 1 6 7 ...
4 | 3 2 1 0 7 6 ...
5 | 4 5 6 7 0 1 ...
6 | 5 4 7 6 1 0 ...
. | ...............

আপনার কাজটি এমন একটি প্রোগ্রাম লেখা যা ইনপুট দ্বারা নির্দিষ্ট করা সারি এবং কলামে পাওয়া উপাদানটিকে আউটপুট দেয়। (স্ট্যান্ডার্ড ইনপুট এবং আউটপুট)

পরীক্ষার কেস:

5 3 -> 6
2 5 -> 5

কোড গল্ফ বিধি প্রয়োগ - সংক্ষিপ্ততম কোড জয়।

পিএস এর যদি একটি অ্যালগরিদমিক প্রকৃতি থাকে তবে কোডটি খুব খুব সংক্ষিপ্ত হতে পারে ।

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

সুতরাং, হ্যাঁ, আমি মনে করি যে কেউ এখন 5 টি চরিত্রের চিহ্নকে পরাজিত করতে পারে না — তাই আমি স্মার্ট এবং সংক্ষিপ্ততম সমাধানের জন্য ইলমারি করোনেনকে অভিনন্দন জানাই। তবে সামনে একটি নতুন চ্যালেঞ্জ রয়েছে: সংক্ষিপ্ততম অ্যালগরিদমিক সমাধান লিখুন


5
জোর আলগোরিদিমিক।
পিটার টেলর

উত্তর:


10

গল্ফস্ক্রিপ্ট, 5 টি অক্ষর

~(\(^

প্রকৃতপক্ষে, আপনি প্যাটার্নটি সনাক্ত করার পরে এই কাজটি খুব সহজ। একমাত্র বিশ্রী বিটটি হ'ল 1-ভিত্তিক সূচক - যদি ইনপুট সূচকগুলি শূন্য-ভিত্তিক হয় তবে এই 2-চরিত্রের সমাধানটি যথেষ্ট হবে:

~^

এটি গল্ফস্ক্রিপ্টের সাথে অপরিচিত পাঠকদের বোঝাতে, ~কমান্ডটি দুটি নম্বর স্ট্যাকের মধ্যে রেখে ইনপুটটি দেখায়। ^তারপরে আউটপুটটির জন্য ফলাফল রেখে একসাথে স্ট্যাকের দুটি শীর্ষতম সংখ্যার এক্সওআরস করে। 1-ভিত্তিক ইনপুট নিয়ে কাজ করার জন্য, আরও দুটি কমান্ডের প্রয়োজন: (স্ট্যাকের শীর্ষস্থানীয় সংখ্যা এক এক করে হ্রাস করে, যখন স্ট্যাকের \শীর্ষ দুটি আইটেমকে অদলবদল করে।


1
আপনি দয়া করে ব্যাখ্যা করতে পারেন ^? আমি গল্ফস্ক্রিপ্ট বিল্ট-ইন পৃষ্ঠা এবং প্রতিসম পার্থক্য উল্লেখ করেছি ; দুটি সেট অ্যারে দিয়ে এই অপারেশনটি ব্যবহার করা অর্থবোধ করে, তবে কীভাবে এটি কেবল দুটি পৃথক সংখ্যার জন্য কাজ করে তা আমি বুঝতে পারি না।
রব

1
@ মাইক: সংখ্যায় প্রয়োগ করা হলে ^অপারেটর তাদের বিটওয়াইজ এক্সওআর প্রদান করে
ইলমারি করোনেন

এটি একটি দুর্দান্ত সম্পর্ক :)
beary605

1
আপনি আমার প্রতিক্রিয়া মূল্যায়নের ক্ষেত্রে সঠিক ছিলেন, যা আমি চ্যালেঞ্জটির ভুল-মিথ্যা ভিত্তিক ভিত্তিতে সরিয়ে দিয়েছি।
ডেভিডসি

2

গণিত 10 44

সম্পাদন করা

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

ব্যবহার

f[n___, 1, n___] := n - 1;
j_~f~k_ := BitXor[j - 1, k - 1]

@ ইলমারি কারোনেন আমি মনে করি এই মুহূর্তে এটি পেয়েছি got তবে এটি আপনার সমাধানের আকারের কাছেও আসে না।
ডেভিডসি

2

কে, 31

{0b/:{(x|y)&~x~y}. 0b\:'-1+x,y}

ইলমারি করোনেনের এক্সওআর লজিকটি চুরি করে নিয়েছিল, যা আমি কখনই নিজেকে চিহ্নিত করতে পারতাম না।


2

পিএইচপি, 38

ইলমারি করোননের এক্সওআরটির কেবল একটি সহজ বাস্তবায়ন

<?php echo --$_GET['a']^--$_GET['b']?>

ব্যবহার:

... / xor.php? একটি = 4 & B = 7

6 মুদ্রণ করবে


2

হাসেল 174

অনুভূত আমি এমন একটি সমাধান করব যা XOR এর উপর নির্ভর করে না। এটি সঠিকভাবে গল্ফ করতে খুব অলস।

a 0 0=0
a b c
 |m==n=a(b-m)(c-n)
 |m>n=m+a(b-m)c
 |m<n=n+a b(c-n)
 where{g f=until(>f)(*2)1`div`2;m=g b;n=g c;}
main=do
 [x,y]<-fmap(map read.words)getLine
 print$a(x-1)(y-1)

সম্পাদনা: আমি একদিন পরে বুঝতে পারি যে এটি কেবল এক্সওআর গণনা করছে। সুতরাং যদি এটি একটি অ্যালগোরিদমিক সমাধান হিসাবে গণনা করা হয়, তাই ইলমারি করোনেনের উচিত।


2
এটি সঠিকভাবে গল্ফ করতে খুব অলস। - এটি গুরুতর প্রতিযোগী হওয়ার জন্য দয়া করে আপনার জমাটি গল্ফ করুন।
জোনাথন ফ্রেচ

2

পাইথন 2, 36

আমি এখন থেকেই পাইথন শিখতে শুরু করি যে এটি ব্যবহার করে আমার প্রথম উত্তরটি জমা দেওয়ার উপযুক্ত সময় হবে (এবং পাইথন ব্যবহার করে কেউ উত্তর দেয়নি) এবং সম্ভবত আমি কিছু প্রতিক্রিয়া পেতে পারি receive

খুব শীতল শর্টকাটের জন্য আপনাকে @ ইলমারি কারনেন ধন্যবাদ।

আপনাকে নীচের কোডটির জন্য @ গ্যারেথ ধন্যবাদ Thank

import sys
print(input()-1^input()-1)

পাইথন 3, 56

আমি যে মূল প্রোগ্রামটি লিখেছিলাম।

import sys
x=int(input())
y=int(input())
x-=1
y-=1
print(x^y)

আইডোনটি 2 এবং 5 দিয়ে

3 এবং 3 দিয়ে আইডিয়োন


আমি পাইথন 3 এর পরিবর্তে পাইথন 2 ব্যবহার করার জন্য ধরে নিচ্ছি - যদি এই মন্তব্যটিকে উপেক্ষা না করা হয়। inputইতিমধ্যে ইনপুটটি মূল্যায়ন করে যাতে int()প্রয়োজনীয় হওয়া উচিত নয়। এছাড়াও যেহেতু আপনি সরাসরি কোনও ইনট পেয়ে যাচ্ছেন সরাসরি তা সরাসরি input()করতে পারেন -1। আপনি মধ্যস্থতাকার ভেরিয়েবলগুলি সম্পূর্ণরূপে পরিত্রাণ পেতে এবং ডানদিকে যেতে পারেন print(input()-1^input()-1)। আমদানি করা দরকার কি না - এই সাইটের অন্যান্য পাইথন ব্যবহারকারীরা এটি ব্যবহার করে এমন প্রোগ্রামগুলির জন্য এটি অন্তর্ভুক্ত করেন না input(), তবে আমি পাইথন প্রোগ্রামার নই তাই এটি প্রয়োজনীয় কিনা আমি তা বলতে পারি না।
গ্যারেথ

@ গ্যারেথ আসলে আমি পাইথন 3 ব্যবহার করছিলাম তবে আপনার পরামর্শটি আমি ব্যবহার করতে চাই print(input()-1^input()-1)। সাহায্যের জন্য আপনাকে ধন্যবাদ!
রব

আমি জিজ্ঞাসা করতে পারি কেন আপনি আমদানি করেন sys?
জোনাথন ফ্রেচ

2

এমএটিএল , 2 বাইট

Z~

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

এমএটিএল বেশ কয়েক বছর পরে চ্যালেঞ্জের তারিখের তারিখ দেয়, তবে, আরে, প্রাকৃতিক 1-ভিত্তিক সূচক এবং কিছুটা জোর করে ফাংশন এটি সুন্দর এবং ঝরঝরে করে তোলে!




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