আমি ওগুলি এবং শূন্যগুলির সঠিক কম্বোটি পাঠ্য


9

আমি সম্প্রতি গানের তালিকায় রেখেছি যখন আমি ড্রাইভিংয়ের সময় পাঠ্য সম্পর্কে টেক্সট पर्ট এবং গানের একটি বিশেষ লাইন এই চ্যালেঞ্জকে অনুপ্রাণিত করে।

আমি ফটোগুলি টেক্সট করতে এত নীচু হই না / পরিবর্তে আমি সেগুলি এবং শূন্যগুলির সঠিক কম্বো পাঠ্য করি

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

আপনার কাজ হ'ল ডাইমেনশন 500x500পিক্সেল সহ একটি চিত্র ফাইলের নাম নেওয়া এবং ফাইলটিকে বাইনারি হিসাবে আউটপুট করা। আপনি যদি ভাষা সমর্থন করে তবে আপনি কোনও চিত্রও ইনপুট হিসাবে নিতে পারেন।

আপনি এক্সটেনশন সহ চিত্র ফাইলগুলি ব্যবহার করতে পারেন

  • .jpg
  • .png
  • .gif
  • .bmp
  • .svg

আমাকে কী বোঝাতে চাইছে না তাদের জন্য, কীভাবে কোনও চিত্রকে বাইনারি রূপান্তর করতে হয় তা আমাকে প্রদর্শনের অনুমতি দিন।

ধাপ 1

ফাইলটিতে প্রথম পিক্সেল নিন এবং এর আরজিবি মানটি 3 দশমিক সংখ্যার হিসাবে পুনরুদ্ধার করুন: আর, জি এবং বি। উদাহরণস্বরূপ, ধরে নেওয়া যাক প্রথম পিক্সেলটি 255,0,0(লাল)।

ধাপ ২

প্রতিটি সংখ্যাটিকে তার 8-বিট বাইনারি উপস্থাপনায় রূপান্তর করুন এবং একক 24-বিট সংখ্যায় যুক্ত করুন। উদাহরণস্বরূপ, এই ফলন111111110000000000000000

ধাপ 3

চূড়ান্ত আউটপুটটিতে এই 24-বিট নম্বর যুক্ত করুন। অতএব, চূড়ান্ত আউটপুটটি 6000000সংখ্যা দীর্ঘ হওয়া উচিত এবং সম্পূর্ণরূপে 1এবং থাকা উচিত0

এটা একটা এত সংক্ষিপ্ততম কোড জয়!


1
আপনি দয়া করে ইনপুট নির্দিষ্ট করতে পারেন? ফাইলের নামটি কি কেবলমাত্র সম্ভাব্য ইনপুটটিতে কাজ করতে পারে বা যে ভাষাগুলি চিত্রগুলিকে ইনপুট হিসাবে মঞ্জুরি দেয় তা কি ব্যবহার করতে পারে?
ইয়ান মিলার

কোন ধরণের চিত্র বিন্যাসগুলি সমর্থন করা প্রয়োজন? আমি কি একটি চিত্র বিন্যাস চয়ন করতে (বা আবিষ্কার) করতে পারি?
L3viathan

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

@ ইয়ানমিলার আউটপুট এখানে যে কোনও গ্রহণযোগ্য পদ্ধতি হতে পারে এবং যদি আপনি এটি সমর্থন করেন তবে ইনপুটটি কোনও ফাইলের নাম বা কোনও চিত্র হতে পারে।
ইয়ার 17'9

আপনার কি কোনও টেস্টকেস আছে?
এরিক আউটগলফার

উত্তর:


4

পাইথ , 14 13 বাইট

-1 বাইট ধন্যবাদ এরিক দি আউটগল্ফারকে ( zঅন্তর্নিহিত ইনপুটটির জন্য সরানো যেতে পারে) to

sm.[\08.Bd.n'

ব্যাখ্যা

sm.[\08.Bd.n'

            '    # Open the path/URL given as implicit input. Return list of color triples for color images: [(255, 125, 23), ...]
          .n     # Flatten the list
 m     .Bd       # For each element of the list, convert to binary
  .[\08          # Pad with zeros on the left up to 8 characters
s                # Concatenate the list of bytes

দুর্ভাগ্যক্রমে, সুরক্ষার কারণে, এটি অনলাইন দোভাষী দিয়ে পরীক্ষা করা যায় না ; এটি আপনার নিজের কম্পিউটারে পরীক্ষা করার জন্য আপনাকে পাইথ ক্লোন করতে হবে।


1
আপনি উদ্ধৃত ইনপুট ধরে এবং সরিয়ে নিতে পারেন z
এরিক আউটগল্ফার

4

এমএটিএল , 13 12 বাইট

YiH&!8&YB!1e

ইনপুট হিসাবে একটি স্ট্রিং হিসাবে একটি ফাইল নাম গ্রহণ করে। আউটপুট 24-বিট সংখ্যাগুলি সারি-প্রধান ক্রমে প্রদর্শিত হয়।

দুর্ভাগ্যক্রমে সুরক্ষা কারণে অনলাইন দোভাষীগুলিতে এটি কাজ করে না। আমার স্থানীয় মেশিনে এটির স্ক্রিনশট কাজ করছে

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

এখানে একটি সামান্য পরিবর্তিত সংস্করণ দেওয়া হয়েছে যাতে আমি ম্যানুয়ালি একটি 2 x 2 x 3 চিত্র তৈরি করি এবং তারপরে প্রক্রিয়া করার জন্য একই কোডটি ব্যবহার করি (প্রায়)।

ব্যাখ্যা

        % Implicitly grab input as a string
Yi      % Read in as an M x N x 3 image
H&!     % Permute the dimensions of the image to be 3 x N x M
8&YB    % Convert to a binary string using 8 bits for each element
!       % Transpose the result
1e      % Reshape to a row vector
        % Implicitly display the result

2

গণিত, 103 বাইট

F=Flatten;Export["x.txt",FromDigits@F[IntegerDigits[#,2,8]&/@F[ImageData[Import["x.bmp"],"Byte"],1],2]]


একটি চিত্র x.bmp (বা অন্য কোনও) নেয় এবং এটিকে x.txt ফাইলে রূপান্তর করে


পরিবর্তে PadLeft, আপনি তৃতীয় যুক্তিটি ব্যবহার করতে পারেন IntegerDigits(অর্থাত্IntegerDigits[#,2,8]&
জংহওয়ান মিন

তুমি একদম সঠিক! আমি ভুলে গিয়েছিলাম আমি এই ব্যবহার করতে পারে!
J42161217

শুধুমাত্র ভুলটি ছিল "ইমপোর্ট []" অনুপস্থিত ছিল কারণ আমি এটি একটি চিত্র দিয়ে পরীক্ষা করছিলাম very এখন সবকিছু ঠিকঠাক কাজ করে। আমি প্যাডলিফ্ট
J42161217

ওফস, আমি রিফ্রেশ করি নি তাই আমি পুরানো সংস্করণটির দিকে চেয়েছিলাম।
ইয়ান মিলার

নিয়মের উপর ভিত্তি করে আপনি একটি ফাংশন হিসাবে লিখে একটি গোছা বাইট সংরক্ষণ করতে পারেন যা কোনও চিত্র এবং Importইনপুট` ব্যবহার না করে স্ট্যান্ডার্ড আউটপুট আউটপুট দেয় `
ইয়ান মিলার

2

সি #, 309 বাইট

আমার দ্বিতীয় কোড গল্ফ, আপনি যদি বলতে না পারেন। X.jpg একটি ছবি নেয় ...

using System;using System.Drawing;using System.Linq;class Program{static void Main(string[]a){Bitmap b=(Bitmap)Image.FromFile("x.jpg");Console.WriteLine(string.Join("",from i in Enumerable.Range(0,250000)select Convert.ToString(Convert.ToInt32(b.GetPixel((int)Math.Floor((double)i/500),i%500).Name,16),2)));}}

চমৎকার প্রচেষ্টা এবং সাইটে স্বাগতম! আমি সি # জানি না তাই আপনাকে কোনও গল্ফ দিতে পারে না তবে আমি নিশ্চিত অন্যরাও তা করবে!
সিআরড coinheringaahing

1

অক্টাভা, 46 বাইট

@(x)dec2bin(permute(imread(x),[3,1,2]),8)'(:)'

নামে একটি বেনামি ফাংশন তৈরি করে ansযা কোনও ফাইলের নাম ( ans('file.png')) বা একটি URL ( ans('http://image.png')) দিয়ে কল করা যেতে পারে

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