দৃশ্যমান ডাইস ফেস


21

একটি traditionalতিহ্যবাহী ওয়েস্টার্ন ডাই একটি ঘনক্ষেত্র, যার উপরে 1 থেকে 6 টি পূর্ণসংখ্যার মুখগুলি চিহ্নিত থাকে। 7 টি যুক্ত জোড়গুলি বিপরীত মুখগুলিতে স্থাপন করা হয়।

এটি কিউব হিসাবে, আমরা যে কোনও সময়ে কেবল 1 থেকে 3 মুখ (সমেত) 1 দেখতে পাচ্ছি । বিপরীত মুখগুলি কখনই একই সাথে দেখা যায় না।

আপনার কাজটি এমন একটি প্রোগ্রাম বা ফাংশন লিখতে হয় যা মরা পক্ষের প্রতিনিধিত্বকারী পূর্ণসংখ্যার একটি তালিকা দেওয়া হলে নির্ধারণ করে যে একই সাথে এই মুখগুলি দেখা সম্ভব কিনা।

1 ঠিক আছে, আপনি এক জোড়া চোখের সাথে 4 বা 5 মুখ দেখতে পাচ্ছেন, তবে এই চ্যালেঞ্জের জন্য আমরা একক বিন্দু থেকে ডাই পর্যবেক্ষণ করছি।


নিয়মাবলী:

  • আপনার জমাটি ইনপুট তালিকাটি ধরে নিতে পারে:
    • খালি নয়।
    • কেবল সেই মানগুলিতে থাকে যা সন্তুষ্ট হয় 1 ≤ n ≤ 6
    • কোনও সদৃশ উপাদান নেই।
  • আপনি ধরে নিতে পারবেন না যে ইনপুটটি সাজানো হয়েছে।
  • আপনার জমা দিতে সত্যবাদী / মিথ্যা মান আউটপুট করা উচিত : সত্যতা হ'ল মুখগুলি একই সাথে দেখা যায়, অন্যথায় মিথ্যা।
  • এটি , তাই সংক্ষিপ্ত উত্তরটি (বাইটে) জিতেছে!
  • স্ট্যান্ডার্ড লুফোলগুলি ডিফল্টরূপে নিষিদ্ধ।

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

Truthy:

[6]                 (One face)
[6, 2]              (Share a side)
[1, 3]              (Share a side)
[2, 1, 3]           (Share a vertex)
[3, 2, 6]           (Share a vertex)

Falsy:

[1, 6]              (1 and 6 are opposite)
[5, 4, 2]           (2 and 5 are opposite)
[3, 1, 4]           (3 and 4 are opposite)
[5, 4, 6, 2]        (Cannot see 4 faces)
[1, 2, 3, 4, 5, 6]  (Cannot see 6 faces)


দেখে মনে হচ্ছে যে শেষ দুটি মিথ্যা মামলা 3 টিরও বেশি দীর্ঘায়নের কোনও তালিকায় বিরোধী মান থাকবে না, তাই না?
ওয়েকার ই।

@ উইকার হ্যাঁ, স্পষ্টতই - আপনার যদি উত্তরগুলি একবার দেখে থাকেন তবে তারা সকলেই এটি ব্যবহার করে। এটি লেখার পক্ষে সহজ ব্যাখ্যা ছিল।
ফ্লিপট্যাক

@ ফ্লিপট্যাক আসলে আপনাকে দৈর্ঘ্যটি মোটেও পরীক্ষা করতে হবে না, 3 টিরও বেশি দৈর্ঘ্যের প্রতিটি তালিকায় কমপক্ষে একজোড়া বিপরীত দিক রয়েছে।
এরিক আউটগলফার

1
ব্ল্যাকহোলের মতো ভারী কিছু দিয়ে হালকা তরঙ্গগুলি বাঁকানো থাকলে আপনি একক পয়েন্ট থেকে এখনও পর্যন্ত 5 টি মুখ দেখতে পারবেন
ফেরিবিগ

উত্তর:



14

জাভাস্ক্রিপ্ট (ES6),  38 34 30 29  28 বাইট

যে কোনও সংখ্যক পৃথক পরামিতি হিসাবে ইনপুট নেয়। রিটার্ন 0বা 1

(a,b,c,d)=>!(d|(a^b^c)%7)^!c

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

কিভাবে?

নীচে প্রদত্ত প্যারামিটারের সংখ্যা অনুসারে মূল এক্সপ্রেশনটির সরলীকৃত সংস্করণ রয়েছে, অপরিজ্ঞাত ভেরিয়েবলগুলি 0 বা মিথ্যা দ্বারা জোর করা হচ্ছে :

# of param. | simplified expression        | comment
------------+------------------------------+---------------------------------------------
     1      | !(a % 7) ^ 1                 | always true
     2      | !((a ^ b) % 7) ^ 1           | false for (1,6), (2,5) and (3,4)
     3      | !((a ^ b ^ c) % 7)           | see the table below
     4+     | !(d | (a ^ b ^ c) % 7)       | always false

এনবি : (ক, খ, সি) এর ক্রম কিছু যায় আসে না কারণ তারা সবসময় একসাথে থাকে।

সবচেয়ে জটিল ঘটনা তৃতীয়টি। এখানে একটি টেবিলটি সমস্ত সম্ভাব্য সংমিশ্রণগুলি দেখায়:

a | b | c | a^b^c | %7 | =0? | faces that sum to 7
--+---+---+-------+----+-----+--------------------
1 | 2 | 3 |   0   |  0 | Yes | none
1 | 2 | 4 |   7   |  0 | Yes | none
1 | 2 | 5 |   6   |  6 | No  | 2 + 5
1 | 2 | 6 |   5   |  5 | No  | 1 + 6
1 | 3 | 4 |   6   |  6 | No  | 3 + 4
1 | 3 | 5 |   7   |  0 | Yes | none
1 | 3 | 6 |   4   |  4 | No  | 1 + 6
1 | 4 | 5 |   0   |  0 | Yes | none
1 | 4 | 6 |   3   |  3 | No  | 1 + 6
1 | 5 | 6 |   2   |  2 | No  | 1 + 6
2 | 3 | 4 |   5   |  5 | No  | 3 + 4
2 | 3 | 5 |   4   |  4 | No  | 2 + 5
2 | 3 | 6 |   7   |  0 | Yes | none
2 | 4 | 5 |   3   |  3 | No  | 2 + 5
2 | 4 | 6 |   0   |  0 | Yes | none
2 | 5 | 6 |   1   |  1 | No  | 2 + 5
3 | 4 | 5 |   2   |  2 | No  | 3 + 4
3 | 4 | 6 |   1   |  1 | No  | 3 + 4
3 | 5 | 6 |   0   |  0 | Yes | none
4 | 5 | 6 |   7   |  0 | Yes | none

অল্টার। সংস্করণ # 1, 32 বাইট

অ্যারে হিসাবে ইনপুট নেয়। একটি বুলিয়ান ফেরত দেয়।

a=>a.every(x=>a.every(y=>x+y-7))

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


অল্টার। সংস্করণ # 2, ক্রোম / ফায়ারফক্স, 34 বাইট

এটি ক্রোম এবং ফায়ারফক্সের বাছাই পদ্ধতিগুলিকে আপত্তি করে। এটি এজ দিয়ে কাজ করে না।

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

a=>a.sort((a,b)=>k&=a+b!=7,k=1)&&k

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



5

এপিএল (ডায়ালগ) , 7 বাইট

~7∊∘.+⍨

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

∘.+⍨ - সংযোজন সারণী (প্রতিটি উপাদান সহ প্রতিটি উপাদান)

7∊ - 7 বিদ্যমান?

~ - নিন্দিত করা


এপিএল (ডায়ালগ) , 7 বাইট

⍬≡⊢∩7-⊢

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

7-⊢ - 7 থেকে প্রতিটি উপাদান বিয়োগ করুন

⊢∩ - মূল অ্যারে দিয়ে ছেদ করুন

⍬≡ - খালি?


5

আর , 27 বাইট

বাগ ঠিক করার জন্য গ্রেগরকে ধন্যবাদ thanks

function(d)!any((7-d)%in%d)

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

চ্যাস ব্রাউন এর উত্তর পোর্ট । ভেক্টরাইজড ক্রিয়াকলাপগুলি আর এটিকে আরও খাটো করতে সহায়তা করে


আমার মনে হয় আপনার আশেপাশে কিছু প্যারেন দরকার (7-d), অন্য বুদ্ধিমানদের d%in%dঅগ্রাধিকার লাগে।
গ্রেগর

@ গ্রেগর আপনি একদম ঠিক বলেছেন
জিউসেপ



3

আমি শপথ করে বলতে পারি যে আমি এই দুই মিনিট আগে চেষ্টা করেছিলাম এবং এটি কার্যকর হয়নি ... হু আশ্চর্য হয়েছি কী ভুল হয়েছে
মিঃ এক্সকডার

প্রথম জিনিস আমি ভেবেছিলাম? দ্য স্যান্ডলট
ম্যাক্সথ হাজার হাজার



3

রেটিনা , 21 20 বাইট

O`.
M`1.*6|2.*5|34
0

এটি অনলাইন চেষ্টা করুন! লিঙ্কে পরীক্ষার কেস অন্তর্ভুক্ত রয়েছে। সম্পাদনা করুন: @ মার্টিনইেন্ডারে ধন্যবাদ 1 বাইট সংরক্ষণ করা হয়েছে। ব্যাখ্যা:

O`.

ইনপুট বাছাই করুন।

M`1.*6|2.*5|34

বিপরীত দিকের একজোড়া (3 এবং 4 একে অপরের পাশে বাছাই করুন) পরীক্ষা করুন। এটি একটি অবৈধ ডাইয়ের জন্য 1 বা বৈধের জন্য 0 প্রদান করে।

0

যৌক্তিকভাবে ফলাফল প্রত্যাখ্যান।



2

অ্যালিস , 18 বাইট

/..y1nr@ 
\iReA6o/

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

Jabberwockyবৈধ ইনপুট এবং অন্যথায় কিছুই জন্য প্রিন্ট ।

ব্যাখ্যা

জিগজ্যাগ নিয়ন্ত্রণ প্রবাহ উন্মোচিত, প্রোগ্রামটি সত্যই:

i.e16r.RyAno

i.  Read all input and duplicate it.
e16 Push "16".
r   Range expansion to get "123456".
.R  Duplicate and reverse.
y   Transliterate, replaces each face with its opposite.
A   Intersection with input.
n   Logical NOT, turns empty strings into "Jabberwocky"
    and everything else into an empty string.





1

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

T`_654`d
M`(.).*\1
0

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

নীলের পদ্ধতির বিকল্প

ব্যাখ্যা

T`_654`d

চালু করুন 6, 5, 4মধ্যে 1, 2, 3যথাক্রমে।

M`(.).*\1

বারবার অক্ষরগুলি খুঁজে বের করার চেষ্টা করুন এবং মিলগুলির সংখ্যা গণনা করুন।

0

ফলাফলটি শূন্য হয়েছে তা নিশ্চিত করুন (কার্যকরভাবে একটি যৌক্তিক অবহেলা)।



1

জিএনইউ সেড , 37 22 + 1 = 23 বাইট

-rপতাকা জন্য +1 বাইট । অঙ্ক হিসাবে ইনপুট লাগে; সত্য এবং মিথ্যাচারের জন্য ইনপুট মুদ্রণ করে 0

-10 বাইটস @ মার্টিনএেন্ডারকে ধন্যবাদ।

y/123/654/
/(.).*\1/c0

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

ব্যাখ্যা

@ মার্টিনএেন্ডারের এলিস উত্তরের মতো

y/123/654/   # Transliterate 1-3 to 6-4
/(.).*\1/c0  # If a digit appears twice, replace the pattern space with 0

এটি সত্যের জন্য সঠিকভাবে ইনপুট প্রিন্ট করে না, এটি ইনপুটটি 6-4 দ্বারা প্রতিস্থাপিত 1-3 দিয়ে মুদ্রণ করে।
অ্যান্ড্রু বলছেন মনিকাকে

1

পার্ল 6 , 18 বাইট

!(1&6|2&5|3&4∈*)

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

1 & 6 | 2 & 5 | 3 & 41 এবং 6 সংখ্যার সমন্বয়ে একটি সংযোগস্থল, বা 2 এবং 5, বা 3 এবং 4 সংখ্যাটি এই সংযোগটি ( ) ইনপুট তালিকার একটি উপাদান *এটিতে যদি 1 এবং 6, অথবা 2 এবং 5, বা 3 থাকে এবং ৪. তারপরে !প্রয়োজনীয় বুলিয়ান মান পাওয়ার জন্য এই ফলাফলটি উপেক্ষিত হবে ( )।


0

হাস্কেল, 46 41 37 বাইট

f z=all ((/=7).sum) [[x,y]|x<-z,y<-z]

তালিকার কারটিশিয়ান পণ্যটিকে নিজের সাথে নিয়ে যায়, তারপরে ফলাফলগুলি সমস্ত তালিকার sum এর সমষ্টি না হয় কিনা তা পরীক্ষা করে দেখায় (যদি তাদের কোনওরকম to টি সংখ্যার যোগ করা হয়, তবে বিপরীত মুখগুলি দৃশ্যমান হবে এবং "সমস্ত কিছু না" "এর চেয়ে ছোট হবে" যে কোন কাজ "।)



0

আইবিএম / লোটাস নোটস সূত্র, 7 বাইট

!7-i*=i

একটি বহু-মান নম্বর ক্ষেত্র থেকে ইনপুট নেয় i।

I এর প্রতিটি মান পুনরাবৃত্তভাবে 7 থেকে বিয়োগ করে এবং এটি তালিকায় আসল তালিকায় আছে কিনা তা পরীক্ষা করে। ! এটি যদি 0 তে হয় তবে 1 টি পরিবর্তন করুন (সমস্ত মুখ দেখা যাবে না)।

পরীক্ষার কেস (নোট সূত্রের জন্য কোনও টিআইও উপলব্ধ নেই)

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


0

পরিষ্কার , 49 বাইট

import StdEnv
f l=and[(a+b)<>7\\(a,b)<-diag2 l l]

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


1
@ স্টেফেনলেপপিক আমার ধারণা নেই যে এই উত্তরটি প্রয়োজনীয় তথ্য সংরক্ষণের জন্য ফাইলের নামটি ব্যবহার করছে ।
স্টিডিবক্স

@ স্টেফেনলেপিক ওহ ফেয়ার পয়েন্ট, আমদানি প্রয়োজন তবে নির্দিষ্ট মডিউলে ফাংশনটি ঘোষণার দরকার নেই। ধন্যবাদ।
ousurous

0

সুইফ্ট , 46 বাইট

f(a:Int)->[Int]{!a.contains{a.contains(7-$0)}}

[Int](পূর্ণসংখ্যার অ্যারে) হিসাবে ইনপুট নেয় এবং একটি Bool(বুলিয়ান) প্রদান করে।

সংক্ষিপ্ত বিবরণ (অবরুদ্ধ)

f(a:Int)->[Int]{
    !a.contains (where: {n in    // The input doesn't have an element where
        a.contains(7 - n)        //    the opposite side is in the input
    })
}

0

ক্লোজার , 89 80 72 বাইট

-9 বাইট কারণ আমি উপলব্ধি ব্যবহার reduced অপ্রয়োজনীয়

-8 ব্যবহার থেকে পরিবর্তন করে বাইট reduceব্যবহার করেsome

#(if(< 0(count %)4)(not(some(fn[[a b]](=(+ a b)7))(for[a % b %][a b]))))

অন্যান্য উত্তরগুলি ব্যবহারের কৌশলগুলি না দেখে আমি এটি লেখার চেষ্টা করেছি। আমি পরে এটি উন্নতি করতে সক্ষম হতে পারে।

রিটার্নস trueসত্য মামলা জন্য, falseকোনো পক্ষই 7 যোগফল, এবং যদি nilপক্ষের সংখ্যা বেআইনি পারেন।


(defn can-see? [dice-sides]
  ; Ensure its a valid length
  (if (< 0 (count dice-sides) 4)

    ; Then check if any of the permutations sum to 7
    (not (some (fn [[a b]]
                 (= (+ a b) 7))

               ; Generate all permutations
               (for [a dice-sides, b dice-sides] [a b])))))
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.