একটি 7-বিভাগের প্রদর্শন ডিকোড করুন


17

আপনি সম্ভবত 7-সেগমেন্টের ডিসপ্লেটি জানেন যা অন্যান্য বিষয়ের মধ্যে 09 থেকে সমস্ত অঙ্ক প্রদর্শন করতে পারে :

7-বিভাগের প্রদর্শন (উইকিপিডিয়া.org)

চ্যালেঞ্জ

আমরা কেবল বিভাগগুলি একজন...জি বিবেচনা করি , আপনার কাজটি কোন বিভাগগুলি চালু আছে তা প্রদত্ত একক অঙ্কের ডিকোড করা।

এটি একটি 8-বিট পূর্ণসংখ্যা হিসাবে এনকোড করা যেতে পারে, এখানে তাদের বাইনারি উপস্থাপনা এবং সংশ্লিষ্ট ছোট-এন্ডিয়ান এবং বড়-এন্ডিয়ান মানগুলির সাথে প্রতিটি অঙ্কের একটি টেবিল রয়েছে:

Digit.ABCDEFGLittle-endianBig-endian0011111101260x7E1260x7E100110000480x30120x0C2011011011090x6D1820xB63011110011210x791580x9E400110011510x332040xCC501011011910x5B2180xDA601011111950x5F2500xFA7011100001120x70140x0E8011111111270x7F2540xFE9011110111230x7B2220xDE

বিধি ও আই ​​/ ও

  • ইনপুট একটি হবে
    • একক পূর্ণসংখ্যা (প্রদত্ত দুটি আদেশের একটির উপরে টেবিলের মতো)
    • বিটগুলির একটি তালিকা / অ্যারে / ..
    • অক্ষর সমন্বিত একটি স্ট্রিং ABCDEFG(আপনি ধরে নিতে পারেন এটি এর সাজানো হয়েছে, উদাহরণ হিসাবে ABCএনকোড 7 ), তাদের ক্ষেত্রে আপনার পছন্দ (মিশ্র-ক্ষেত্রে নয়)
  • আউটপুটটি হ'ল এটির কোডটি অঙ্ক হবে
  • আপনি কোনও অবৈধ ইনপুট ধরে নিতে পারবেন না (অবৈধ মানে কোনও সম্পর্কিত অঙ্ক নেই)

টেস্ট

যেহেতু এই চ্যালেঞ্জটি একাধিক উপস্থাপনের অনুমতি দেয়, দয়া করে টেবিলটি দেখুন।



আমরা কোনও নির্দিষ্ট বিট-অর্ডারে একটি পূর্ণসংখ্যা (বা অ্যারে) গ্রহণ করতে পারি বা কেবল দুটি দেখানো হয়েছে?
জোনাথন অ্যালান

@ জোনাথান অ্যালান: আমি পরিষ্কার করব, কেবল ইতিমধ্যে প্রদর্শিত হয়েছে।
3

ওহহহহহহহহহহহহহহহহহহহহহহহহذتمالالذب هذه اذهب هذه هذا هذا هذا الغضب কেবল মাত্র একটি? ওহো ...
ম্যাজিক অক্টোপাস Urn

@ ম্যাজিক অ্যাক্টোপাস উর্ন: হ্যাঁ সত্যই :)
ბიმო

উত্তর:




7

ওল্ফ্রাম ভাষা (ম্যাথমেটিকা) , 41 বাইট

9[,6,0,8,2,3,1,7,5,4][[#~Mod~41~Mod~11]]&

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

সংখ্যার স্বল্প-এডিয়ান কলামটি ইনপুট হিসাবে ব্যবহার করে। সিনট্যাক্স সতর্কতা উপেক্ষা করুন।

একটি ইনপুট এক্সের জন্য, আমরা প্রথমে এক্স মড 41 নিয়ে থাকি এবং তারপরে ফলাফলটি মোড ১১ গ্রহণ করি distin ফলাফলগুলি পৃথক Mod 11, সুতরাং আমরা সেগুলি একটি টেবিল থেকে বের করতে পারি। উদাহরণস্বরূপ, 126 mod 41 mod 11 3 হয়, সুতরাং আমরা যদি 3 টি 0 এর সমান করি, তবে আমরা 126 এর ইনপুটটির সঠিক উত্তর পাই।

টেবিলটি হ'ল 9[,6,0,8,2,3,1,7,5,4]। পার্ট 0 মাথা, যা হয় 9। পার্ট 1 অনুপস্থিত, তাই এটি Nullএকটি বাইট সংরক্ষণ করুন: আমাদের কখনই 1 অংশ নেওয়ার দরকার নেই Then অংশ 2 হ'ল 6, অংশ 3 0, যথারীতি on


জনাথন অ্যালানের উত্তর আমাদের দেয় 1[4,9,8,6,2,0,5,3,7][[384~Mod~#~Mod~13]]&। এটি কোনও ছোট নয়, তবে এটি সিনট্যাক্স সতর্কতা এড়ায় না!


ওল্ফ্রাম ভাষা (গণিত) , 27 25 বাইট a

Mod[Hash[")dD}"#]+2,11]&

(এখানে এমন কিছু চরিত্র রয়েছে যা পুরোপুরি দেখা যায় না, দুঃখিত। নীচের লিঙ্কটিতে ক্লিক করুন এবং আপনি এটি দেখতে পাবেন))

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

এটি হ'ল কিছু স্ট্রিংটি ভিতরে যেতে বাধ্য করা সম্পর্কে Hashযাতে হ্যাশগুলি সঠিক মানগুলি মোড ১১-এর সাথে শেষ হয় More আরও নিষ্ঠুরভাবে বাধ্য করা আমাদের সম্ভবত একটি এমনকি সংক্ষিপ্ত সমাধানে নিয়ে যেতে পারে।


আপনি দয়া করে এই উত্তরটি কিছুটা ব্যাখ্যা করতে পারেন, এমন কেউ যারা ম্যাথমেটিকাকে জানেন না?
jrook

আমি ভেবেছিলাম এটি কারও পক্ষে পঠনযোগ্য হবে তবে ঠিক আছে, আমি একটি ব্যাখ্যাতে সম্পাদনা করব।
মিশা লাভরভ

অভিনন্দন; 41 বাইট সলিউশনটি আমার ম্যাথেমেটিকা ​​সংক্ষেপককে ভেঙে ফেলে।
lirtosiast



4

জাভা (জেডিকে) , 32 বাইট

n->"99608231754".charAt(n%41%11)

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

ক্রেডিট



ধন্যবাদ, @ জোনাথন অ্যালান! অনেক প্রশংসিত!
অলিভিয়ার গ্রাগোয়ার


3

হোয়াইটস্পেস , 152 বাইট

বাধ্যতামূলক "এস এর, টি এবং এল এর সত্যিকার অর্থে সেখানে নেই, তারা কেবলমাত্র আদেশের দৃশ্যমান উপস্থাপনা"।

S S S T	S S L
S S S T	S T	L
S S S T	T	T	L
S S S T	L
S S S T	T	L
S S S T	S L
S S S T	S S S L
S S S L
S S S T	T	S L
S S S L
S S S T	S S T	L
S S S L
S L
S T	L
T	T	T	T	T	S S S T	S T	S S T	L
T	S T	T	S S S T	S T	T	L
T	S T	T	L
S S L
S L
S L
T	S S L
S T	L
S T	L
S S S T	L
T	S S T	L
S L
L
L
S S S L
S L
L
T	L
S T	

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

একটি ত্রুটি শেষ হয়।

সমতুল্য সমাবেশের মতো সিনট্যাক্স:

	push 4
	push 5
	push 7
	push 1
	push 3
	push 2
	push 8
	push 0
	push 6
	push 0
	push 9
	push 0
	dup
	readi
	retrieve
	push 41
	mod
	push 11
	mod
slideLoop:
	dup
	jz .slideLoop
	slide 1
	push 1
	sub
	jmp slideLoop
.slideLoop:
	drop
	printi

3 টি বাইট সংরক্ষণ করতে আপনি তিনটি ট্রেলিং নিউলাইনগুলি সরাতে পারেন। এটি এসটিডিআরআরে একটি ত্রুটি দেয় তবে প্রোগ্রামটি এখনও কাজ করে এবং এটি মেটা-বিধি দ্বারা অনুমোদিত
কেভিন ক্রুইজসেন

3

ব্রেনফাক , 474 176 154 151 149 137 বাইট

এর একটি ইনপুট স্ট্রিং লাগে আট 0 এবং 1প্রথম সহ 0দশমিক বিন্দু জন্য।

(পোস্টের টেবিলের দ্বিতীয় কলামের মতো)

0 থেকে 9 পর্যন্ত আউটপুট ডিজিট।

,>,>,>,,,>,>,>+[[->]<++<<<<<<]>[>[>[>[->[>++++++<-<]>[--<]<]>>.>>]<[>
>[>->++<<-]>-[+>++++<]>+.>]]>[>>>+<<<-]>[>>+++.>]]>[>>>[>+++<-]>-.>]

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

অ্যালগরিদম

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

                                         0,1,2,3,4,5,6,7,8,9
                                                  |    
                                         /-------[A]-------------------------\
                                 0,2,3,5,6,7,8,9                             1,4
                                        |                                     |
                         /-------------[B]----------------\             /----[G]----\
                   0,2,3,7,8,9                            5,6          4             1   
                        |                                  |
              /--------[E]--------\                  /----[E]----\    
            0,2,8                3,7,9              6             5
              |                    |
        /----[F]----\        /----[F]----\
      0,8            2      9            3,7   
       |                                  |
 /----[G]----\                      /----[G]----\
8             0                    3             7

গল্ফ করার জন্য দরকারী কিছু পর্যবেক্ষণ

  1. বিটস সি এবং ডি অপ্রয়োজনীয় এবং এড়ানো যায়।
  2. শীর্ষস্থানীয় শূন্য (দশমিক পয়েন্টের জন্য বিট) 48 (মান) 48 হিসাবে ব্যবহৃত হতে পারে, ইনপুট পার্সিং এবং আউটপুট প্রস্তুতের জন্য উভয়ই গুরুত্বপূর্ণ।
  3. যখন পাতায় পৌঁছে যায় এবং অঙ্ক মুদ্রণ করা হয়, তখন আমাদের কেবলমাত্র সমস্ত শর্ত বাদ দেওয়া উচিত। এটি জিরোসের অঞ্চলে ডেটা পয়েন্টারটি যথেষ্ট পরিমাণে সরিয়ে দিয়ে করা যায় যাতে এটি ফিরে না আসতে পারে।
  4. সামঞ্জস্যের জন্য ডানদিকে শূন্যগুলি ব্যবহার করা ভাল, কারণ কিছু বিএফ বাস্তবায়ন নেতিবাচক ডেটা পয়েন্টারগুলিকে সমর্থন করে না।
  5. সুতরাং ডানদিকের ঘরে আউটপুট মান সংরক্ষণ করা ভাল, তাই আমরা শূন্যের ক্ষেত্রটি সহজেই ডানদিকে পৌঁছাতে পারি।
  6. সুতরাং বাম থেকে ডানে বিটগুলি পরীক্ষা করা ভাল: A, B, E, F, G যাতে আমরা আউটপুট সেলটি আরও সহজে পৌঁছাতে পারি।
  7. বিভিন্ন সংখ্যা আউটপুট কোড ভাগ করতে পারে। উদাহরণস্বরূপ, 5 এবং 6 একই সাবট্রিতে রয়েছে। আমরা +++++উভয় মানের জন্য এবং তারপরে +কেবল ছয়টির জন্য করতে পারি ।
  8. আমরা +যদি আগে থেকে আউটপুট মান 2 যোগ করি তবে আমরা কমান্ডের সংখ্যা হ্রাস করতে পারি। সেক্ষেত্রে আমাদের এটিকে কেবল এবং কেবল হ্রাস করতে হবে 0এবং 1অন্যান্য সংখ্যার জন্য সুবিধা পেতে হবে।

2

রেটিনা , 96 বাইট

^(A)?(B)?C?(D|())(E|())(F)?(G)?
$.($.5*$.8*$(6*$7$2$2)$#6*$.3*$($.2*$(___$7)5*$7)$#4*$(6*$1_3*$8

এটি অনলাইন চেষ্টা করুন! সেরা উপায় নাও হতে পারে তবে এটি রেটিনার প্রোগ্রামিংয়ের একটি আকর্ষণীয় উপায়। ব্যাখ্যা:

^(A)?(B)?C?(D|())(E|())(F)?(G)?

আকর্ষণীয় মামলাগুলি ক্যাপচার করার চেষ্টা করে। ইতিবাচক ক্যাপচারগুলি উপস্থিত থাকলে চিঠিটি ক্যাপচার করে। ক্যাপচারের দৈর্ঘ্য সুতরাং উপস্থিত থাকলে 1 এবং এটি অনুপস্থিত থাকলে 0 হয়। বিশেষ ক্ষেত্রে 4 এবং 6 টি ক্যাপচার করা হয় যা কেবলমাত্র ডি বা ই অনুপস্থিত থাকলেই বিদ্যমান থাকে। এগুলি কেবল দশমিক হিসাবে প্রকাশ করা যেতে পারে $#4এবং $#6আমাদের এখানে এখানে কেবল প্রয়োজন। ক্যাপচারগুলি তারপরে একটি স্ট্রিংয়ে তৈরি করা হয় যার দৈর্ঘ্য কাঙ্ক্ষিত সংখ্যা। উদাহরণস্বরূপ, যদি আমরা লিখি 6*$1তবে এ স্ট্রিংটির দৈর্ঘ্য 6 থাকলে এ উপস্থিত থাকলে 6 এবং এটি অনুপস্থিত থাকলে 0 হয়। বিভিন্ন অভিব্যক্তিগুলির মধ্যে চয়ন করার জন্য আমরা হয় $.(ধনাত্মক ক্যাপচারগুলির জন্য) বা $#(নেতিবাচক ক্যাপচারগুলির জন্য) ব্যবহার করি যা 0 বা 1 এর মূল্যায়ন করে এবং এটি এ পর্যন্ত স্ট্রিং দ্বারা গুণিত হতে পারে।

$.5*$.8*$(6*$7$2$2)

F6 বার এবং Bদু'বার পুনরাবৃত্তি করা হয় (এটি গল্ফায়ার হিসাবে সংক্ষেপে)। যাইহোক, ফলাফলের উভয় যদি না উপেক্ষা করা হয় Eএবং Gউপস্থিত থাকে। এটি 2, 6এবং এর কেসগুলি পরিচালনা করে 8

$#6*$.3*$($.2*$(___$7)5*$7)

F5 বার পুনরাবৃত্তি করা হয়, এবং যদি Bএটি উপস্থিত থাকে তবে এটি ষষ্ঠবার এবং অতিরিক্ত 3 যুক্ত হয় (3 দৈর্ঘ্যের ধ্রুব স্ট্রিং দ্বারা প্রতিনিধিত্ব করা হয়)। তবে Dউপস্থিত না থাকলে এবং Eঅনুপস্থিত থাকলে ফলাফল উপেক্ষা করা হবে । এটি 3, 5এবং এর কেসগুলি পরিচালনা করে 9

$#4*$(6*$1_3*$8

A6 বার পুনরাবৃত্তি হয়, এবং G3 বার পুনরাবৃত্তি হয়, এবং একটি অতিরিক্ত 1যুক্ত হয় (এটি গল্ফায়ার কারণ উভয়ের মধ্যে একটি ধ্রুবক চরিত্র দ্বারা প্রতিনিধিত্ব করা হয়)। তবে Dঅনুপস্থিত না থাকলে ফলাফল উপেক্ষা করা হবে । এটি 1, 4এবং এর কেসগুলি পরিচালনা করে 7

$.(

উপরের স্ট্রিংগুলি পরে সংক্ষিপ্ত করা হয় এবং দৈর্ঘ্য নেওয়া হয়। যদি উপরের কোনওটি প্রয়োগ না করে তবে কোনও স্ট্রিং উত্পন্ন হয় না এবং এর দৈর্ঘ্য তাই 0

ফলাফলের স্ট্রিংগুলি (দৈর্ঘ্য নেওয়ার আগে) নিম্নরূপ:

1   _
2   BB
3   ___
4   _GGG
5   FFFFF
6   FFFFFF
7   AAAAAA_
8   FFFFFFBB
9   ___FFFFFF

2

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

'/lx2Z^o~z'Q&m

ইনপুট হ'ল সংক্ষিপ্ত-এডিয়ান বিন্যাসে বিভাগগুলি উপস্থাপন করে এমন একটি সংখ্যা।

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

ব্যাখ্যা

'/lx2Z^o~z'  % Push this string
Q            % Add 1 to the codepoint of each char. This gives the array
             % [48 109 ... 123], corresponding to numbers 1 2 ... 9. Note that
             % 0 is missing
&m           % Implicit input. Call ismember function with second output. This
             % gives the 1-based index in the array for the input, or 0 if the
             % input is not present in the array.
             % Implicit display



1

জাপট, 15 বাইট

বিগ-এন্ডিয়ান মানটিকে ইনপুট হিসাবে গ্রহণ করে।

"~¶ÌÚúþÞ"bUd

চেষ্টা করে দেখুন


ব্যাখ্যা

স্ট্রিংটিতে বিগ-এন্ডিয়ান মানগুলির প্রতিটি কোডপয়েন্টে অক্ষর রয়েছে; Udইনপুট এর কোডপয়েন্টে চরিত্রটি bপায় এবং স্ট্রিংয়ের সূচকটি খুঁজে পায়।




1

টিআই-বেসিক (টিআই -83 + / 84 + সিরিজ), 15 বাইট

int(10fPart(194909642ln(Ans

লিটল-এড়িয়ান ইনপুট ব্যবহার করে। টিআই-বেসিকগুলিতে হ্যাশগুলি মোটামুটি সাধারণ, তাই আমি এই জাতীয় কেসের জন্য হ্যাশ ফাংশন ব্রুট- ফোরার লিখেছিলাম ।

গুণকটি প্রত্যাশিত 10 এর পরিবর্তে 9 অঙ্ক দীর্ঘ হওয়ায় আমরা এখানে কিছুটা ভাগ্যবান হয়ে উঠছি।

      fPart(194909642ln(Ans   hash function mapping onto [0,1)
int(10                        take first digit after decimal point

1

05 এ বি 1 , 17 16 15 12 বাইট

•NŽyf¯•I41%è

-1 থেকে বাইট ধন্যবাদ @ErikTheOutgolfer@ মিশা লাভরভের ম্যাথেমেটিক জবাবের
একটি বন্দর তৈরি করে -1 বাইট । -3 বাইটস @ গ্রিমিকে ধন্যবাদ ।

এটি অনলাইনে চেষ্টা করুন বা সমস্ত পরীক্ষার কেস যাচাই করুন

ব্যাখ্যা:

NŽyf¯•       # Push compressed integer 99608231754
       I41%   # Push the input modulo-41
           è  # Index this into the integer (with automatic wraparound)
              # (and output the result implicitly)

আমার এই 05AB1E ডগা দেখুন (অধ্যায় ইপিএসে দক্ষিন কোরিয়ায় কিভাবে পূর্ণসংখ্যার কম্প্রেস কিভাবে? ) কেন বুঝতে •NŽyf¯•হয় 99608231754



@EriktheOutgolfer আহ, অবশ্যই .. কাকতালীয়ভাবে এটি 128в। ভুলে গেছেন জন্য builtin আছে 128অর্ধেক হচ্ছে 256। ধন্যবাদ!
কেভিন ক্রুইজসেন

আমি কিছু অদ্ভুত জিনিস চেষ্টা করেছি খুব কম 15 এর অধীনে পেতে পারে না। ফ্রিকিয়েস্ট প্রচেষ্টা: ¦C•26¤æÈÛµÀš•2ô₂+sk(19)।
ম্যাজিক অক্টোপাস উর্ন

1
@ গ্রিমি ধন্যবাদ! এখন আমি এটি স্পষ্ট দেখতে পাচ্ছি, যেহেতু সংকোচিত পূর্ণসংখ্যাটি আকার 11 এবং মোড়কে লাথি দেয়
কেভিন ক্রুইজসেন

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