নামপ্যাড শব্দ অনুসন্ধান


20

1 থেকে 999 অন্তর্ভুক্ত সহ একটি পূর্ণসংখ্যা দেওয়া, যদি একটি আদর্শ নম্বর প্যাডে 1-9 অঙ্কের 3x3 বর্গক্ষেত্রে যেকোন জায়গায় বা পিছনের দিকে, অনুভূমিকভাবে, উল্লম্বভাবে বা তির্যকভাবে প্রদর্শিত হয় তবে সত্যবাদী মানের আউটপুট দিন :

789
456
123

যদি নম্বরটি উপস্থিত না হয় তবে একটি মিথ্যা মান আউটপুট করুন।

সত্যের আউটপুট দেওয়ার জন্য আপনাকে যে সঠিক 65 টি সংখ্যা প্রয়োজন তা হ'ল:

1
2
3
4
5
6
7
8
9
12
14
15
21
23
24
25
26
32
35
36
41
42
45
47
48
51
52
53
54
56
57
58
59
62
63
65
68
69
74
75
78
84
85
86
87
89
95
96
98
123
147
159
258
321
357
369
456
654
741
753
789
852
951
963
987

অন্য সব কিছু মিথ্যা।

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



ইনপুটটিতে 0 টি থাকতে পারে, এটি স্ট্রিং হতে পারে।
ক্যালভিনের

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

উত্তর:


16

জাভাস্ক্রিপ্ট (ES6), 83 ... 74 73 বাইট

স্ট্রিং হিসাবে ইনপুট নেয়।

n=>1/([a,b,c]=[...n].map(v=>--v+v/3|0))||45242>>(a^b)&(~c&&n<99|b*2==a+c)

ETH প্রডাকশনগুলির জন্য 3 বাইট সংরক্ষণ করা হয়েছে

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

আমরা সংখ্যার প্যাডটিকে প্রতিটি সংখ্যায় একটি অফসেট প্রয়োগ করে এটির সারি অনুসারে রূপান্তর করি:

  • শীর্ষ সারির জন্য +1
  • মাঝারি সারির জন্য 0
  • নীচের সারির জন্য -1।

নীচের সমস্ত কোড হেক্সাডেসিমাল উপস্থাপন করা হয়।

7 8 9      8 9 A  (+1)
4 5 6  =>  4 5 6  (unchanged)
1 2 3      0 1 2  (-1)

আসুন এই নতুন কী কোডগুলির সমস্ত এক্সওআর সমন্বয় বিবেচনা করুন। সংক্ষিপ্ত কীগুলি বন্ধনী সহ হাইলাইট করা হয়।

XOR|  0   1   2   4   5   6   8   9   A 
---+------------------------------------
 0 |  0  [1]  2  [4] [5]  6   8   9   A 
 1 | [1]  0  [3] [5] [4] [7]  9   8   B 
 2 |  2  [3]  0   6  [7] [4]  A   B   8 
 4 | [4] [5]  6   0  [1]  2  [C] [D]  E 
 5 | [5] [4] [7] [1]  0  [3] [D] [C] [F]
 6 |  6  [7] [4]  2  [3]  0   E  [F] [C]
 8 |  8   9   A  [C] [D]  E   0  [1]  2 
 9 |  9   8   B  [D] [C] [F] [1]  0  [3]
 A |  A   B   8   E  [F] [C]  2  [3]  0 

আমরা দেখতে পাচ্ছি যে দুটি কী সংলগ্ন হয় এবং যদি তাদের কোডগুলি XOR করা নীচের মানগুলির একটির দিকে নিয়ে যায়:

1, 3, 4, 5, 7, C, D, F

এই তালিকাটি নিম্নলিখিত বাইনারি মাস্কগুলিতে প্যাক করা যেতে পারে:

  FEDCBA9876543210
  ----------------
0b1011000010111010 = 0xB0BA = 45242

সুতরাং দুটি কী কোড (ক, খ) দুটি স্বতন্ত্র কীগুলির সাথে মিল রয়েছে কিনা তা নির্ধারণ করার জন্য পরীক্ষা:

45242 >> (a ^ b) & 1

তিনটি কী কোড (ক, খ, সি) এর জন্য আমাদের এই অতিরিক্ত পরীক্ষা দরকার:

b * 2 == a + c

উদাহরণ:

a = 0xA
b = 0x6
c = 0x2

0xB0BA >> (0xA ^ 0x6) & 1 == 0xB0BA >> 0xC & 1 == 1
=> 0xA and 0x6 are contiguous key codes

0x6 * 2 == 0xA + 0x2
=> 0xA, 0x6 and 0x2 are contiguous key codes on the same row, column or diagonal

ডেমো

এই স্নিপেট সত্যবাদী মানগুলির তালিকা প্রকাশ করে।


জবরদস্তি এখানে আপনার বন্ধু: a-.5কোনও aপূর্ণসংখ্যার (শূন্য বা) সম্পন্ন যে কোনও অ্যারের জন্য সত্য প্রত্যাবর্তন করে । n=>([a,b,c]=[...n].map(v=>--v+v/3|0))-.5||n%10&&n<100|b*2==a+c&&45242&1<<(a^b)
ইটিএইচ প্রোডাকশনগুলি

পছন্দ করুন 1/aএমনকি ছোট এবং এটি পাশাপাশি কাজ করা উচিত, আমি মনে করি।
আর্নৌল্ড

5

পাইথন 3, 72 বাইট

lambda n,s="123 456 789 741 852 963 42 753 86 26 159 84 ":n in s+s[::-1]

ইনপুটটি স্ট্রিং হিসাবে নেওয়া হয়।

গল্ফিং পরামর্শ স্বাগত! : ডি


এটি কি স্ট্রিং হিসাবে নম্বর নেয়?
ফ্লিপট্যাক

@ Flp.Tkc হ্যাঁ এটি করে। আমি পোস্টে উল্লেখ করব। ধন্যবাদ!
Yytsi

@ টুকুএক্সএক্স স্ট্রিংয়ে অতিরিক্ত স্থান রয়েছে s, আপনি 1 বাইট সংরক্ষণ করতে পারেন।
গুরুপদ মামাদাপুর

@ গুরুপদমমাদাপুর আমি আপনার 72৪ বাইট সমাধানের জন্য আমার বর্তমান 72২ বাইট সমাধানটি কেন পরিবর্তন করব তা আমি দেখতে পাই না ...: ডি এবং আপনি যদি আমার স্ট্রিংয়ের উল্লেখ করেন s, যার পরে একটি সাদা জায়গা রয়েছে 84, তবে আপনি ভুল করছেন, কারণ এটি প্রয়োজনীয়। যদি এটিতে একটি শ্বেত স্থান না থাকে, ফলস্বরূপ স্ট্রিংয়ের একটি চেইন '8448' থাকে, যা পরীক্ষার ক্ষেত্রে ব্যর্থ হয়ে যায়। পরামর্শের জন্য ধন্যবাদ যদিও!
Yytsi

@ টুক্কাক্স হ্যাঁ, আপনি অতিরিক্ত শ্বেত স্পেস সম্পর্কে ঠিক বলেছেন,
সেটিকে

4

বেফুঞ্জ, 169 161 159 বাইট

38*:2+"*0>DTV{51"3*\3*"kV"3*\3*"{w"3*\3*"mr"v
v:\&+*83:++66:+"c":+"?":+"$":++66:+"W":*6\*4<
_v#:\_v#*-+%+55g00*+55g02\*-g02\*-g00\`9::::p02/+55p00%"d":
0<@.!!<

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

প্রথম দুটি লাইন কেবল টেস্ট সংখ্যাগুলির তালিকাটি স্ট্যাকের উপরে চাপছে। এটি আকারের ক্রম হিসাবে করা হয়, যেহেতু কখনও কখনও সিরিজটিতে আগেরটি থেকে এটি স্ক্র্যাচ থেকে উৎপন্ন না করে অফসেট হিসাবে একটি সংখ্যা উত্পন্ন করা সহজ হতে পারে। একবার আমরা বৃহত সংখ্যায় পৌঁছে ফেলি, আমরা মাঝে মাঝে "kV"3*\3*বাইটগুলি জোড়া তৈরি করে সেভ করতে পারি, যেমন আমাদেরকে নয় বাইটে 258 এবং 321 দেয়, যেখানে স্বতন্ত্রভাবে তারা প্রত্যেকে পাঁচ বাইট নেয় take

মূল লুপটি তিন লাইনে রয়েছে, চারপাশে মোড়ানো দিয়ে ডান থেকে বামে চালিত হয়। এটি কেবল স্ট্যাকের সমস্ত পরীক্ষার সংখ্যার মধ্য দিয়ে পুনরাবৃত্তি করে মানটি, মান% 100 এবং মান / 10 এর সাথে তুলনা করে। যদি এর মধ্যে কোনও ইনপুট নম্বর বা <= 9 সংখ্যার সাথে মেলে তবে আমরা 1 আউটপুট এবং প্রস্থান করব। কোনও মিল না থাকলে আমরা লুপিং চালিয়ে যাচ্ছি। যদি আমরা স্ট্যাকের পরীক্ষার নম্বরগুলি শেষ করে ফেলেছি তবে আমরা 0 আউটপুট এবং প্রস্থান করি।

আমাকে কয়েকটা বাইট বাঁচানোর জন্য মিস্তাহা ফিগিন্সকে ধন্যবাদ ।


আমি মনে করি আপনি 0<@.!!<2 বাইট সংরক্ষণ করতে শেষ লাইনটি পরিবর্তন করতে পারেন । আইপি দ্বিতীয় তীরের উপরে নেমে আসলে এটি শূন্য অ-শূন্য হওয়ার উপর নির্ভর করে। অনলাইনে চেষ্টা করে দেখুন!
মাইল্ডলি মিল্কিটোস্ট

3

জেলি , 29 24 19 বাইট

@ ডেনিসের পরামর্শের জন্য Kএবং 5 টি বাইট সংরক্ষণ করেছেন Ɠ

9s3µUŒD;;Z;ŒDµ;UKƓẇ

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

ব্যাখ্যা

9Rs3µUŒD;;Z;ŒDµ;UKƓẇ  Main link. Argument: number
9s3                   Split [1..9] into [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
   µ                  New monadic chain
    U                 Reverse the rows
     ŒD               Take the diagonals of the result
       ;              Append the original rows
        ;Z            Append the original columns
          ;ŒD         Append the original diagonals
             µ        New monadic chain
              ;U      Append the reverse of everything
                K     Join by spaces
                 Ɠẇ   Check if a line from STDIN is in the result

আপনি এসটিডিআইএন থেকে ইনপুটটি পড়লে 9s3µUŒD;;Z;ŒDµ;UKƓẇ5 বাইট সাশ্রয় করে।
ডেনিস

আপনার কি সারিগুলি বিপরীত করা দরকার? তারা এগিয়ে অথবা পিছন প্রদর্শিত করতে পারেন, তাই 123,456,789হিসাবে একই হতে হবে789,456,123
রিলে

@ রিলে আমি প্রতিটি সারি বিপরীত করি, সারিগুলি অ্যারে হিসাবে নয়। আমার ধারণা আমি সেখানে আরও পরিষ্কার হতে পারতাম। যাইহোক, এটি ত্রিভুজটির অর্ধেক পাওয়ার জন্য সম্পন্ন হয়েছে।
পূর্কাকুডারী

2

রুবি, 77 বাইট

->n{!!((s='123 456 789 147 258 369 753 951 86 62 24 48 ')+s.reverse)["#{n}"]}

আপনি একটি স্ট্রিং তৈরি করছেন যা '123 456 789 147 258 369 753 951' + একই স্ট্রিংটি বিপরীত হয়েছে এবং প্যারামিটারটি স্ট্রিংয়ে পাওয়া গেছে কিনা, তা পরীক্ষা করছেন? যদি এটি হয় তবে এই সমাধানটি অবৈধ। উদাহরণস্বরূপ, 86এবং 24ব্যর্থ হবে।
Yytsi

বিধিগুলি বলে যে আপনার কেবলমাত্র সত্যবাদী বা মিথ্যা মান আউটপুট প্রয়োজন, যাতে আপনার প্রয়োজন হয় না !!বা পরিচারক প্রথম বন্ধনী।
জর্ডান

0

বাশ, 75

printf %s\\n 123 456 789 741 852 963 42 753 86 26 159 84|tee >(rev)|grep $1

কিছু আউটপুট করে এবং সেই তালিকার সমস্ত মানের জন্য 0 প্রদান করে

কিছুই মুদ্রণ করে এবং অন্যান্য ক্ষেত্রে 1 প্রদান করে


0

জাভা, 397 বাইট

public class Numpad {public static void main(String[] args){Scanner input=new Scanner(System.in);int in=input.nextInt();int h=in/100;int u=in%10;int t=(in%100)/10;boolean out=false;input.close();if(in<10)out=true;else if( h==0){int decider=Math.abs(t-u);if((decider==1)||(decider==3)||(decider==4))out=true;}else{if ( Math.abs(h-t) == Math.abs(t-u))out=true;}System.out.println("RESULT : "+out);}}

আমি এই নতুন .. দয়া করে কোন বিস্মৃততা ক্ষমা।
নেফি নোমোর

হ্যালো, এবং সাইটে আপনাকে স্বাগতম! আমি আপনার পোস্টটি সম্পাদনা করেছি যাতে কোড বিভাগটি কোড হিসাবে প্রদর্শিত হয় এবং একটি বাইট গণনা যোগ করে, যা এখানে উত্তরগুলির জন্য আদর্শ। এই প্রতিযোগিতাটি একটি কোড-গল্ফ প্রতিযোগিতা, যার অর্থ চূড়ান্ত লক্ষ্য আপনার কোডটি যতটা সম্ভব সংক্ষিপ্ত করে তোলা। উদাহরণস্বরূপ, আপনি সংক্ষিপ্ত পরিবর্তনশীল নামগুলি ব্যবহার করতে পারেন এবং একটি পূর্ণ শ্রেণীর পরিবর্তে কোনও ফাংশন সংজ্ঞায়িত করতে পারেন। আমি জাভাতে দুর্দান্ত নই, তবে আরও কয়েকটি টিপস এখানে পাওয়া যায় । আপনার কোডটি আরও খাটো করার চেষ্টা করা উচিত এবং তারপরে আপনার পোস্টে নতুন সংস্করণটি সম্পাদনা করা উচিত।
ডিজেএমসিএমহেম
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.