চতুর্থটি ফ্লুতে থাকতে পারে


12

যেহেতু আগামীকাল ৪ ই মে, আগামীকাল আগত সমস্ত খারাপ রসিকতার জন্য আপনাকে মানসিকভাবে প্রস্তুত করতে এখানে একটি সামান্য স্টার ওয়ার্স থিমযুক্ত পোস্ট post

গল্পের

গ্যালাকটিক সিনেটের একটি অধিবেশন চলাকালীন সমস্ত সিনেটর একটি n*nগ্রিডে বসে আছেন । হঠাৎ জারজার ফ্লু (যা চিরকাল স্থায়ী হয় এবং সংক্রামিতাকে জারজার বিঙ্কসের মতো কথা বলতে বাধ্য করে) এর ফলে হঠাৎ কিছু সিনেটর সংক্রামিত হয়।

এখানে একটি 6*6গ্রিডের একটি উদাহরণ যেখানে Xসংক্রামিত সেনেটর রয়েছে, সম্পর্কিত তালিকাটি হ'ল [[0,5],[1,4],[2,3],[2,1],[3,3],[3,0],[4,5],[0,5]]:

এখানে চিত্র বর্ণনা লিখুন

এর পরে সংক্রমণটি ধাপে ধাপে ছড়িয়ে পড়তে শুরু করে। দুটি সিনেটর সংলগ্ন যদি তারা গ্রিডের উপরে একটি সম্পূর্ণ প্রান্ত ভাগ করে নেয় (অর্থাত্ শীর্ষ, নীচে, ডান, বাম), যার অর্থ আমরা ত্রিভুজ বাদ দিই।

আমরা সিদ্ধান্ত নিতে পারি যে কোনও সিনেটর 2,3 বা 4 অন্যান্য সিনেটর সংলগ্ন হতে পারে এবং সংক্রমণের জন্য নিম্নলিখিত নিয়মগুলি দাবি করতে পারি:

  • সংক্রামিত একটি সিনেটর চিরকাল সংক্রামিত থাকে
  • পূর্ববর্তী পদক্ষেপে কোনও সিনেটর 2 বা ততোধিক সংক্রামিত সিনেটর সংলগ্ন থাকলে একটি পদক্ষেপে সংক্রামিত হয়

পূর্ববর্তী গ্রিডের সাথে এখানে উদাহরণ রয়েছে যা সংক্রমণের 2 টি প্রথম ধাপটি দেখায়:

এখানে চিত্র বর্ণনা লিখুন

নেেক্সটসের পদক্ষেপের পরে সমস্ত সিনেট সংক্রামিত হবে

তোমার কাজ

আপনার কোডের চেয়ে অকার্যকর ইনপুটগুলি কোনও তালিকার চেয়ে বড় n*nবা স্থানাঙ্কের চেয়ে বেশি হ্যান্ডেল করার দরকার নেই ।

আপনার কোডটি ইনপুট হিসাবে পূর্ণসংখ্যার দম্পতির (বা একটি বাইনারি গ্রিড বা আপনার ভাষা অনুসারে অন্য কোনও ফর্ম্যাট) এবং একটি পূর্ণসংখ্যা n(যা আপনি তালিকার চেয়ে অন্য ফর্ম্যাটটি ব্যবহার করলে অপ্রয়োজনীয় হতে পারে) এর তালিকা নেবে:

8 [[1,2],[1,1],[7,4],[2,7],[4,3]]

n গ্রিডের পাশ হওয়া যার অর্থ গ্রিডটি একটি * এন গ্রিড হবে এবং ইনটিজিটার দম্পতির তালিকাটি ইনটিলিটি আক্রান্ত সিনেটরগুলির কোষের স্থানাঙ্ক হতে পারে।

গ্রিডের নীচে বামটি [0,0] এবং উপরের ডানদিকে [এন -1, এন -1]। উপরের বামটি হল [0, n-1]।

আপনার কোড অবশ্যই একটি পূর্ণসংখ্যা আউটপুট:

-1 অথবা একটি মিথ্যা মান বা একটি ত্রুটি যদি পুরো গ্রিডটি কখনই পুরোপুরি সংক্রামিত হয় না বা পুরো গ্রিডকে সংক্রামিত করতে প্রয়োজনীয় ন্যূনতম সংখ্যার সংখ্যা

পরীক্ষার মামলা

6 [[0,5],[1,4],[2,3],[2,1],[3,3],[3,0],[4,5],[5,0]] => 7

4 [[1,1][0,3][1,0][3,0][3,3]] => 9

মনে রাখবেন যে এটি , এইভাবে বাইটের মধ্যে সংক্ষিপ্ত উত্তর!




এর সর্বনিম্ন মূল্য কত n? সর্বাধিক মান আছে?
mbomb007

@ mbomb007 তত্ত্বের কোনও সর্বোচ্চ মূল্য নেই তবে এটি গণনাযোগ্য হওয়া উচিত। সর্বনিম্ন মানটির জন্য আমি 1 বলব যা 0 বা -1 আউটপুট দেয়

2
ম্যাথমেটিকাদের জন্য চাকরির মতো মনে হচ্ছে CellularAutomaton...
mbomb007

উত্তর:


2

এমএটিএল, 29 28 বাইট

tn:"tlY6Z+1>Z|t?@.]]Nl=?l_]&

ইনপুটটি 1 এবং 0 এর 2D ম্যাট্রিক্স আকারে

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

ব্যাখ্যা

        % Implicitly grab user input as a 2D matrix
t       % Duplicate the inputs
n:      % Count the number of elements in the input (N) and create the array [1...N]
"       % Loop this many times (maximum number of steps we analyze)
  t     % Duplicate the top element
  lY6   % Push the 2D array => [0 1 0; 1 0 1; 0 1 0]
  Z+    % Perform 2D convolution (and maintain the size)
  l>    % Find all values that are >= 2
  Z|    % Perform an element-wise OR with the previous state
  t?    % If all elements are 1's
    @.  % Push the current index and break out of the loop
  ]     % End of if 
]       % End of for loop
Nl=?    % If there is only one element on the stack
  l_    % Push a negative one
]       % End of if statement
&       % Display the top stack element

@ লুইস মেন্ডো দুর্ভাগ্যক্রমে আমি এমনটি ভাবি না কারণ সমাপ্তির আউটপুটে কিছু 0 আছে যা -1 হয়ে যায় এবং তাই "সত্য" হতে পারে
স্যুভার

কীভাবে tn:"tlY6Z+1>Z|t?x@D.]]N?xl_? (আমি খুব বেশি পরীক্ষা করিনি)। সমস্ত উপাদান যদি এক পর্যায়ে 1 হয় তবে অবিলম্বে লুপ সূচকটি প্রদর্শন করুন এবং স্ট্যাকটি মুছুন। লুপের শেষে, যদি স্ট্যাকটি খালি থাকে না তবে মুছুন এবং চাপ দিন-1
লুইস মেন্ডো

3

এপিএল (ডায়ালগ 16.0), 54 টি অক্ষর বা 60 বাইট

সংযুক্ত ম্যাট্রিক্সকে আর্গুমেন্ট হিসাবে গ্রহণ করে, সংক্রমণের সম্পূর্ণকারী ধাপ সংখ্যাটি প্রদান করে, অর্থাৎ 1 = ইতিমধ্যে সম্পূর্ণরূপে সংক্রামিত। 0 = সম্পূর্ণরূপে ছড়িয়ে যায় না, যা কেবল 1 + অপের সংখ্যা।

54 টি অক্ষর (ইউনিকোড):

(≢×0=0∊⊃){(⊢≡f←⊢∨2≤{+/,⍵×3 3⍴0 1}⌺3 3)⊃⍵:⍵⋄(⊂f⊃⍵),⍵}⍣≡

60 বাইট (ক্লাসিক):

(≢×0=0∊⊃){(⊢≡f←⊢∨2≤{+/,⍵×3 3⍴0 1}⎕U233A 3 3)⊃⍵:⍵⋄(⊂f⊃⍵),⍵}⍣≡

সমতুল্য ⎕U233A

উদাহরণস্বরূপ:

      g←(≢×0=0∊⊃){(⊢≡f←⊢∨2≤{+/,⍵×3 3⍴0 1}⌺3 3)⊃⍵:⍵ ⋄ (⊂f⊃⍵),⍵}⍣≡
      ⎕IO←0
      b←⊂⊖⍉~@(⎕JSON'[[0,5],[1,4],[2,3],[2,1],[3,3],[3,0],[4,5],[5,0]]')⊢0⍴⍨2⍴6
      g b
8
      b←⊂⊖⍉~@(⎕JSON'[[1,1],[0,3],[1,0],[3,0],[3,3]]')⊢0⍴⍨2⍴4
      g b
10

নিম্নরূপ পদক্ষেপ:

┌─────────────┬─────────────┬─────────────┬─────── ──────┬─────────────┬─────────────┬─────────────┬─ ────────────┐
│ XX │ XXXXX │ XXXX │ XXXXX │ XXXXX │ XXXXX │ XXXXX │ XXXXXX │
│ এক্স │ এক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্স
│ XX │ XXXXX │ XXXX │ XXXX │ XXXXX │ XXXXXX │ XXXXXX │ XXXXXX │
│ │ এক্স │ এক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্স
│ এক্স │ এক্সএক্স │ এক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্স
│ XX │ XXXX │ XXXX │ XXXX │ XXXXX │ XXXXXX │ XXXXXX │ XXXXXX │
└─────────────┴─────────────┴─────────────┴─────── ──────┴─────────────┴─────────────┴─────────────┴─ ────────────┘
┌─────────┬─────────┬─────────┬─────────┬───────── ┬─────────┬─────────┬─────────┬─────────┬───────── ┐
│ XX │ XX │ XX │ XX │ XX │ XX │ XX │ XXX │ XXXX │ XXXX │ XXXX │
এক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্স
│ এক্স │ এক্স │ এক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্স
│ এক্সএক্স │ এক্সএক্সএক্স, এক্সএলএক্স, এক্সএল, এক্স, এক্স, এক্স, এক্স, এক্স, এক্স, এক্স, এক্স, এক্স, এক্স, এক্স, এক্স
└─────────┴─────────┴─────────┴─────────┴───────── ┴─────────┴─────────┴─────────┴─────────┴───────── ┘


2

পাইথন, 231 বাইট

g=input()
q=lambda r,c:g[r][c]if(0<=r<m)*(0<=c<m)else 0
m=len(g);p=t=0;n=range(m)
while not all([r for k in g for r in k]):h=[[g[r][c]or sum([q(r+1,c),q(r-1,c),q(r,c+1),q(r,c-1)])>1 for c in n] for r in n];t+=1;0/(g!=h);g=h
print t

এটি সম্ভব না হলে এটি একটি ত্রুটি উত্থাপন করে।

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


0/0থেকে দুটি বাইট সংরক্ষণ করুন raise। হয়তো 1/(g!=h)কাজ করবে? (তারপরে whileপুরোটিও অন্তর্ভুক্ত করা যেতে পারে)।
জোনাথন অ্যালান

@ জোনাথান অ্যালান আমি এটি আপডেট করেছি, ইনপুটটির জন্য ধন্যবাদ।
নিল

q=lambda r,c:g[r][c]if(0<=r<m)*(0<=c<m)else 0সংরক্ষণ 12. আপনি মধ্যে (ক) স্থান অপসারণ করতে পারেন 1এবং forএবং (খ) ]এবং forখুব।
জোনাথন অ্যালান

@ জোনাথান অ্যালান আবার আপডেট হয়েছে। ধন্যবাদ
নীল

1

জাভাস্ক্রিপ্ট (ES6), 132 বাইট

f=s=>(w=s.search`\n`,t=` `.repeat(w+1),t+=s+t,t=s.replace(/0/g,(_,i)=>1-t[i]-t[i+=w]-t[i+=2]-t[i+w]>>>31),t==s?0/!/0/.test(s):1+f(t))

যেখানে \nআক্ষরিক নিউলাইন চরিত্রের প্রতিনিধিত্ব করে। একটি নিউলাইন-বিস্মৃত অ্যারেতে 0এস এবং 1এর স্ট্রিং হিসাবে ইনপুট নেয় । রিটার্নস NaNযদি গ্রিড কখনো হয়ে যাবে সম্পূর্ণরূপে আক্রান্ত।

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