ইতিবাচক পূর্ণসংখ্যার সাথে কম-অসমতার সমাধান করা


16

এমন একটি প্রোগ্রাম বা ফাংশন লিখুন যা অপারেটর ( ) এর চেয়ে কম ব্যবহার করে এমন গাণিতিক বৈষম্যের একটি অকাট্য তালিকার জন্য <। তালিকার প্রতিটি লাইনের ফর্ম থাকবে

[variable] < [variable]

যেখানে একটি [variable]হ'ল ছোট হাতের অক্ষর এজে অক্ষরের কোনও দুর্দান্ত স্ট্রিং হতে পারে। সাধারণ গণিত এবং প্রোগ্রামিংয়ের মতো একই নামের ভেরিয়েবলগুলি অভিন্ন।

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

[variable] = [positive integer]

এবং সমস্ত ভেরিয়েবলগুলি অবশ্যই কোনও ক্রমে ঠিক একবার আসবে।

নোট করুন যে অসমতার সেট করতে অনেকগুলি ইতিবাচক পূর্ণসংখ্যার সমাধান হতে পারে। এর মধ্যে যে কোনও একটি বৈধ আউটপুট।

যদি অসমতার কোনও সমাধান না হয়, তবে হয় কিছু আউটপুট করবেন না বা মিথ্যা মান আউটপুট করবেন না (এটি আপনার উপর নির্ভর করবে)।

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

উদাহরণ

যদি ইনপুট হত

mouse < cat
mouse < dog

তাহলে এই সমস্তগুলি বৈধ আউটপুট হবে:

mouse = 1
cat = 2
dog = 2
mouse = 37
cat = 194
dog = 204
mouse = 2
cat = 2000000004
dog = 3

যদি ইনপুট হত

rickon < bran
bran < arya
arya < sansa
sansa < robb
robb < rickon

তারপরে কোনও অ্যাসাইনমেন্ট সম্ভব হয় না কারণ এটিতে rickon < rickonসিদ্ধ হয়, সুতরাং কোনও আউটপুট বা মিথ্যা আউটপুট হয় না।

সমাধান সহ আরও উদাহরণ:

x < y

x = 90
y = 91

---

p < q
p < q

p = 1
q = 2

---

q < p
q < p

p = 2
q = 1

---

abcdefghijklmnopqrstuvwxyz < abcdefghijklmnopqrstuvwxyzz

abcdefghijklmnopqrstuvwxyz = 123456789
abcdefghijklmnopqrstuvwxyzz = 1234567890

---

pot < spot
pot < spot
pot < spots

pot = 5
spot = 7
spots = 6

---

d < a
d < b
d < c
d < e

d = 1
a = 4
b = 4
c = 5
e = 4

---

aa < aaaaa
a < aa
aaa < aaaa
aa < aaaa
a < aaa
aaaa < aaaaa
aaa < aaaaa
a < aaaaa

aaaa = 4
aa = 2
aaaaa = 5
a = 1
aaa = 3

---

frog < toad
frog < toaster
toad < llama
llama < hippo
raccoon < science
science < toast
toaster < toad
tuna < salmon
hippo < science
toasted < toast

raccoon = 1
frog = 2
toaster = 3
toasted = 4
toad = 5
llama = 6
hippo = 7
science = 8
toast = 9
tuna = 10
salmon = 11

সমাধান না করে আরও উদাহরণ: (খালি লাইন দ্বারা পৃথক)

z < z

ps < ps
ps < ps

q < p
p < q

p < q
q < p

a < b
b < c
c < a

d < a
d < b
d < c
d < d

abcdefghijklmnopqrstuvwxyz < abcdefghijklmnopqrstuvwxyz

bolero < minuet
minuet < bolero

aa < aaaaa
a < aa
aaa < aaaa
aa < aaaa
aaaaa < aaaa
a < aaa
aaaa < aaaaa
aaa < aaaaa
a < aaaaa

g < c
a < g
b < a
c < a

g < b
a < g
b < a
c < a

g < b
a < g
b < a
c < b

g < c
a < g
b < a
c < b

geobits < geoborts
geobrits < geoborts
geology < geobits
geoborts < geology


রানটাইমের কোনও সীমা?
ডাউনওয়েট

@ Vɪʜᴀɴ কোনও lmits নেই।
ক্যালভিনের

ইনপুট শেষ হলে আমরা কীভাবে জানব? খালি লাইন নাকি কিছু আছে?
হ্যানস কার্পিলা 20

@হ্যাঁ. অনুমান করতে পারেন যে এখানে একটি পিছনের নতুন লাইন রয়েছে।
ক্যালভিনের শখ 21

উত্তর:


4

পাইথ, 39 বাইট

V>1f.A<MxMLTN.pS{s=Nm%2cd).zVNjd[H\==hZ

অনলাইনে চেষ্টা করুন: বিক্ষোভ

সমস্ত সম্ভাব্য অনুমানের মাধ্যমে ব্রুট-ফোর্স (এবং তাদেরকে সাজানোর হিসাবে ব্যাখ্যা করুন), তারা অসমতার সাথে মেলে কিনা তা পরীক্ষা করে দেখুন এবং মানগুলি নির্ধারণ করুন 1, 2, ...., n

ব্যাখ্যা

f.A<MxMLTN.pS{s=Nm%2cd).z  
                 m     .z  map each input line d to:
                    cd)       split d by spaces
                  %2          and remove the second element
               =N          save this list of pairs to N
              s            combine these pairs to a big list of variable names
             {             set (remove duplicates)
          .pS              generate all permutations
f                          filter for permutations T, which satisfy:
     xMLTN                    replace each variable in N by their index in T
 .A<M                         check if each pair is ascending

V>1...VNjd[H\==hZ          implicit: Z = 0
 >1                        remove all but the last filtered permutation (if any)
V                          for each permutation N in ^ (runs zero times or once):
      VN                      for each variable H in N:
          [                      generate a list containing:
           H                        H
            \=                      "="
              =hZ                   Z incremented by 1 (and update Z)
        jd                       join this list by spaces and print

3

সিজেম ( 53 52 49 বাইট)

qS-N/'<f/:A:|e!{A{1$1$&=!},!*},:ee{()" = "\N}f%1<

অনলাইন ডেমো

এই নরপশু-বাহিনী স্বতন্ত্র টোকেন সব একাধিক বিন্যাসন, সংখ্যা যারা বরাদ্দকরণ জন্য ফিল্টারিং 0করতে n-1যা সীমাবদ্ধতার সব আনুগত্য কর এবং তারপর তাদের ফরম্যাট, সংখ্যা এবং উপহার প্রথমটি বৃদ্ধিশীল। এটির একটি সমাধান থাকলে এটি অবশ্যই সন্ধান করতে পারে, কারণ এটি মূলত একটি টপোলজিক্যাল সাজান।

3 টি চর জন্য রেটো কোরাদি এবং 1 এর জন্য মার্টিন বাটনারকে ধন্যবাদ ।


@ রেটোকোরাদি, দোহ! প্রকৃতপক্ষে.
পিটার টেলর

2

গণিত, 83 বাইট

Quiet@Check[Equal@@@FindInstance[Join[#,#>0&/@(v=Sequence@@@#)],v,Integers][[1]],]&

অসম্পূর্ণতার তালিকা হিসাবে ইনপুট নেয়। হয় অ্যাসাইনমেন্টগুলির একটি তালিকা আউটপুট দেয় বা Nullযদি এটি অসম্ভব হয়।

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