সুষম ত্রৈমাসিক যুক্তি


11

সুষম ত্রৈমাসিক যুক্তি

তিন স্বাভাবিকভাবে বেস 3, বলতে হয় যে জন্য অন্য নাম, প্রতিটি ডিজিট 0, 1অথবা 2, এবং প্রতিটি জায়গা পরের জায়গা যতটা মূল্য 3 বার হয়।

সুষম তিন তিন একটি পরিবর্তন যার সংখ্যা ব্যবহার করে -1, 0এবং 1। এটিতে কোনও চিহ্নের প্রয়োজন না হওয়ার সুবিধা রয়েছে। প্রতিটি স্থানের মূল্য পরবর্তী স্থানের তুলনায় এখনও 3 গুণ বেশি। প্রথম কয়েক ধনাত্মক পূর্ণসংখ্যা তাই হয় [1], [1, -1], [1, 0], [1, 1], [1, -1, -1]প্রথম কয়েক নেতিবাচক পূর্ণসংখ্যা যখন [-1], [-1, 1], [-1, 0], [-1, -1], [-1, 1, 1]

আপনার তিনটি ইনপুট রয়েছে x, y, zzপারেন হয় -1, 0অথবা 1যখন xএবং yথেকে হতে পারে -3812798742493জন্য 3812798742493সমেত।

প্রথম পদক্ষেপ রূপান্তর হয় xএবং yদশমিক থেকে সুষম তিন হয়। এটি আপনাকে 27 টি ট্রিট (টের্নারি ডিজিটস) দিতে হবে। এর পরে আপনি থেকে trits একত্রিত করতে হবে xএবং yজোড়ায় জোড়ায় একটি তিন অপারেশন ব্যবহার করে এবং তারপর দশমিক কাছে ফলাফলের পিছনে রূপান্তর করুন।

zএই তিনটি ত্রৈমাসিক ক্রিয়াকলাপগুলির মধ্যে একটিতে মানচিত্রের মানগুলি আপনি চয়ন করতে পারেন :

  • A: দুটি শিরোনাম দেওয়া হয়, যদি হয় শূন্য হয় তবে ফলাফলটি শূন্য হয়, অন্যথায় ফলাফল -1 হয় যদি তারা আলাদা হয় বা 1 হয় যদি তারা একই হয়।
  • B: দুটি ট্রিট দেওয়া, যদি হয় শূন্য হয়, তবে ফলাফলটি অন্য ট্রিট হয়, অন্যথায় ফলাফলটি আলাদা হলে শূন্য হয় বা যদি একই হয় তবে উপকার হয়।
  • C: দুটি ট্রিট দেওয়া, ফলাফলগুলি শূন্য হয় যদি তারা আলাদা হয় বা তাদের মান একই হয় তবে।

উদাহরণ। ধরুন xহয় 29এবং yহয় 15। সুষম তিন, এই পরিণত [1, 0, 1, -1]এবং [1, -1, -1, 0]। (বাকি 23 টি শূন্য ট্রিটটি বংশবৃদ্ধির জন্য বাদ দেওয়া হয়েছে)) সংশ্লিষ্ট প্রতিটি অপারেশনের পরে সেগুলি হয়ে যায় A: [1, 0, -1, 0], B: [-1, -1, 0, -1], C:: [1, 0, 0, 0]। রূপান্তরিত ফিরে দশমিক ফলাফল নেই 24, -37এবং 27যথাক্রমে। আরও উদাহরণের জন্য নিম্নলিখিত রেফারেন্স বাস্তবায়ন চেষ্টা করুন:

রেফারেন্স বাস্তবায়ন উপরের বর্ণিত পদক্ষেপগুলি অনুসরণ করে তবে আপনি অবশ্যই কোনও ফলাফলের অ্যালগরিদম ব্যবহার করতে পারেন যা একই ফলাফল তৈরি করে।

এটি , তাই সংক্ষিপ্ততম প্রোগ্রাম বা ফাংশন যা কোনও মানক লফোলগুলি জয় করে না!


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


1
এর মধ্যে zএকটি হতে পারে -1,0,1বা আমরা কোনও তিনটি সুসংগত এবং স্বতন্ত্র মান বেছে নিতে পারি? আমি 1,2,3আমার উত্তরে নির্বাচন করেছি এবং এটি সম্পর্কে কিছু বিভ্রান্তি রয়েছে।
জিউসেপ

2
@ জিউস্পে দুঃখিত, কেবলমাত্র ভারসাম্যযুক্ত বার্ষিক সংখ্যা অনুমোদিত।
নীল

উত্তর:


2

পরিষ্কার , 231 ... 162 বাইট

import StdEnv
$n=tl(foldr(\p[t:s]#d=sign(2*t/3^p)
=[t-d*3^p,d:s])[n][0..26])
@x y z=sum[3^p*[(a+b)/2,[1,-1,0,1,-1]!!(a+b+2),a*b]!!(z+1)\\a<- $x&b<- $y&p<-[0..26]]

ফাংশনটি সংজ্ঞায়িত করে @, তিনটি গ্রহণ Intকরে একটি দিয়ে Int
অপারেটর হিসাবে মানচিত্র 1 -> A, 0 -> B, -1 -> C

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

ফাংশনটি তিনটি অঙ্কের তালিকায় $একটি ল্যাম্বডাকে অঙ্কের জায়গাগুলির উপরে ভাঁজ করে [0..26]। এটি প্রয়োজনীয় তালিকা থেকে বর্তমান মোট পার্থক্য রাখার জন্য তালিকার শীর্ষটি ব্যবহার করে (যার কারণে এটি প্রত্যাবর্তনের পূর্বে লেজযুক্ত হয়) এবং ফলনের জন্য বর্তমান সংখ্যাটি sign(2*t/3^p)নির্ধারণ করে। সাইন ট্রিক সমতুল্য if(abs(2*t)<3^p)0(sign t)


আমি ক্লিন জানি না, তবে আপনি কীভাবে সুষম ত্রৈমাসিকে রূপান্তর করেছেন $n(আমি মনে করি) তাতে আমি আগ্রহী। আপনি কি তার জন্য একটি ব্যাখ্যা যোগ করতে পারেন?
জিউসেপে

@ জিউসেপ একেবারে, সময় পেলেই আমি আজ একটি ব্যাখ্যা যুক্ত করব।
14urous

@ জিউস্পে কি আপনার প্রশ্নের উত্তর দেয়?
16urous

হ্যাঁ! এটা বোধগম্য. বেশ চালাক!
জিউসেপে

1

জেলি , 39 বাইট

×=
×
+ị1,-,0
A-r1¤ṗœs2ṚẎị@ȯµ€Uz0ZU⁹ŀ/ḅ3

একটি পূর্ণ প্রোগ্রাম দুটি যুক্তি গ্রহণ [x,y], এবং z
... যেখানে zহয় {A:-1, B:0, C:1}
যা ফলাফলের ছাপে

এটি অনলাইন চেষ্টা করুন! দ্রষ্টব্য: গল্ফযুক্ত পদ্ধতিটি এটিকে ধীর করে তোলে - এই পরিবর্তিত সংস্করণটি দ্রুত (প্রতিটি কার্টেসিয়ান পণ্যের আগে 3, সিল এবং ইনক্রিমেন্ট দ্বারা লগ)

কিভাবে?

×=       - Link  1 (1), B: list of trits L, list of trits R
×        - L multiplied by... (vectorises):
 =       -   L equal R? (vectorises)

×        - Link -1 (2), A: list of trits L, list of trits R
×        - L multiplied by R (vectorises)

+ị1,-,0  - Link  0 (3), C: list of trits L, list of trits R
+        - L plus R (vectorises)
  1,-,0  - list of integers = [1,-1,0]
 ị       - index into (vectorises) - 1-based & modular, so index -2 is equivalent to
         -                           index 1 which holds the value 1.

A-r1¤ṗœs2ṚẎị@ȯµ€Uz0ZU⁹ŀ/ḅ3 - Main link: list of integers [X,Y], integer Z
              µ€           - for each V in [X,Y]:
A                          -   absolute value = abs(V)
    ¤                      -   nilad followed by link(s) as a nilad:
 -                         -     literal minus one
   1                       -     literal one
  r                        -     inclusive range = [-1,0,1]
     ṗ                     -   Cartesian power, e.g. if abs(V)=3: [[-1,-1,-1],[-1,-1,0],[-1,-1,1],[-1,0,-1],[-1,0,0],[-1,0,1],[-1,1,-1],[-1,1,0],[-1,1,1],[0,-1,-1],[0,-1,0],[0,-1,1],[0,0,-1],[0,0,0],[0,0,1],[0,1,-1],[0,1,0],[0,1,1],[1,-1,-1],[1,-1,0],[1,-1,1],[1,0,-1],[1,0,0],[1,0,1],[1,1,-1],[1,1,0],[1,1,1]]
                           -                   (corresponding to: [-13       ,-12      ,-11      ,-10      ,-9      ,-8      ,-7       ,-6      ,-5      ,-4       ,-3      ,-2      ,-1      ,0      ,1      ,2       ,3      ,4      ,5        ,6       ,7       ,8       ,9      ,10      ,11     ,12     ,13     ] )
        2                  -   literal two
      œs                   -   split into equal chunks           [[[-1,-1,-1],[-1,-1,0],[-1,-1,1],[-1,0,-1],[-1,0,0],[-1,0,1],[-1,1,-1],[-1,1,0],[-1,1,1],[0,-1,-1],[0,-1,0],[0,-1,1],[0,0,-1],[0,0,0]],[[0,0,1],[0,1,-1],[0,1,0],[0,1,1],[1,-1,-1],[1,-1,0],[1,-1,1],[1,0,-1],[1,0,0],[1,0,1],[1,1,-1],[1,1,0],[1,1,1]]]
         Ṛ                 -   reverse                           [[[0,0,1],[0,1,-1],[0,1,0],[0,1,1],[1,-1,-1],[1,-1,0],[1,-1,1],[1,0,-1],[1,0,0],[1,0,1],[1,1,-1],[1,1,0],[1,1,1]],[[-1,-1,-1],[-1,-1,0],[-1,-1,1],[-1,0,-1],[-1,0,0],[-1,0,1],[-1,1,-1],[-1,1,0],[-1,1,1],[0,-1,-1],[0,-1,0],[0,-1,1],[0,0,-1],[0,0,0]]]
          Ẏ                -   tighten                            [[0,0,1],[0,1,-1],[0,1,0],[0,1,1],[1,-1,-1],[1,-1,0],[1,-1,1],[1,0,-1],[1,0,0],[1,0,1],[1,1,-1],[1,1,0],[1,1,1],[-1,-1,-1],[-1,-1,0],[-1,-1,1],[-1,0,-1],[-1,0,0],[-1,0,1],[-1,1,-1],[-1,1,0],[-1,1,1],[0,-1,-1],[0,-1,0],[0,-1,1],[0,0,-1],[0,0,0]]
                           -                   (corresponding to: [1      ,2       ,3      ,4      ,5        ,6       ,7       ,8       ,9      ,10     ,11      ,12     ,13     ,-13       ,-12      ,-11      ,-10      ,-9      ,-8      ,-7       ,-6      ,-5      ,-4       ,-3      ,-2      ,-1      ,0      ] )
           ị@              -   get item at index V (1-based & modular)
             ȯ             -   logical OR with V (just handle V=0 which has an empty list)
                U          - upend (big-endian -> little-endian for each)
                  0        - literal zero           }
                 z         - transpose with filler  } - pad with MSB zeros
                   Z       - transpose              }
                    U      - upend (little-endian -> big-endian for each)
                       /   - reduce with:
                      ŀ    -   link number: (as a dyad)
                     ⁹     -     chain's right argument, Z
                         3 - literal three
                        ḅ  - convert from base

আমি আমার জীবনের জন্য গল্ফিং ভাষা পড়তে পারি না, তাই আপনি যখন 'ধীর' বলবেন তখন সময়ের জটিলতা কতটা খারাপ?
আরিয়াস

এন এর সুষম ত্রৈমাসিকাগুলি পেতে এটি সমস্ত (3 ^ n) দৈর্ঘ্যের অ্যাবস (এন) ট্রাইটের তালিকা (0, -1, এবং 1) তৈরি করে। সুতরাং ও (3 ^ সর্বোচ্চ (অ্যাবস (এক্স), অ্যাবস (ওয়াই)))
জোনাথন অ্যালান

ধন্যবাদ, এবং ব্যাখ্যাটির জন্য আমি দেখতে পাচ্ছি আপনিও যুক্ত করেছেন!
0urous

1
একই পদ্ধতিটি ব্যবহার করে একটি দ্রুত সংস্করণ যুক্ত করা হয়েছে :)
জোনাথন অ্যালান

1

আর , 190 172 151 বাইট

function(a,b,z){M=t(t(expand.grid(rep(list(-1:1),27))))
P=3^(26:0)
x=M[M%*%P==a,]
y=M[M%*%P==b,]
k=sign(x+y)
switch(z+2,x*y,k*(-1)^(x+y+1),k*!x-y)%*%P}

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

সমস্ত ট্রিটের সংমিশ্রণগুলি গণনা করে এবং সঠিকটি নির্বাচন করে। এটি আসলে একটি স্মৃতি ত্রুটি ছুঁড়ে ফেলবে 27, যেহেতু 3^27কিছুটা বড় সংখ্যা, তবে এটি তত্ত্বগতভাবে কাজ করবে। টিআইও লিঙ্কটিতে কেবল 11ট্রিট পূর্ণসংখ্যার সমর্থন রয়েছে; আমি নিশ্চিত না যে এটি কখন বেরিয়ে যায় বা মেমরির ত্রুটিগুলি প্রথমে বেরিয়ে আসে এবং আমি চাই না যে ডেনিস টিআইওর সাথে আপত্তিজনক আচরণ করার জন্য আমার উপর ক্ষিপ্ত হয়!

পুরানো উত্তর, 170 বাইট

এইটি সমস্ত ইনপুটগুলির জন্য কাজ করা উচিত, যদিও কেবল 32-বিট পূর্ণসংখ্যার সাথেই, আর-এ স্বয়ংক্রিয়ভাবে এগুলিতে রূপান্তরিত হবে এমন অনর্থক সম্ভাবনা রয়েছে double

function(a,b,z){x=y={}
for(i in 0:26){x=c((D=c(0,1,-1))[a%%3+1],x)
y=c(D[b%%3+1],y)
a=(a+1)%/%3
b=(b+1)%/%3}
k=sign(x+y)
switch(z+2,x*y,k*(-1)^(x+y+1),k*!x-y)%*%3^(26:0)}

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

-1জন্য A, 0জন্য Bএবং 1জন্য নেয় C

সুষম ত্রৈমাসিকে রূপান্তর করার জন্য এই উত্তরে পদ্ধতির পোর্টগুলি বর্ধিত করা হয়েছে, যদিও যেহেতু আমাদের 27 টিরও বেশি ভারসাম্য ট্র্রিট না থাকার নিশ্চয়তা দেওয়া হয়েছে, এটি তার জন্য অনুকূলিত।

আর , 160 বাইট

function(a,b,z){s=sample
x=y=rep(0,27)
P=3^(26:0)
while(x%*%P!=a&y%*%P!=b){x=s(-1:1,27,T)
y=s(-1:1,27,T)}
k=sign(x+y)
switch(z+2,x*y,k*(-1)^(x+y+1),k*!x-y)%*%P}

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

এই সংস্করণটি অত্যন্ত ধীরে ধীরে শেষ হবে। বেস রূপান্তরটির বোগোসর্ট, এই ফাংশনটি এলোমেলোভাবে ট্রিটগুলি এঁটে দেয় যতক্ষণ না এটি কোনওভাবে যাদুবিদ্যার ( 3^-54এটির সম্ভাবনা হওয়ার) জন্য aএবং bএটি প্রয়োজনীয় ক্রিয়াকলাপটি করে না। এটি মূলত কখনই শেষ হবে না।


আমি zসীমাবদ্ধ মনে করি {-1, 0, 1}
এরিক আউটগলফার

@ এরিকথ আউটগল্ফার এই তিনটি ত্রৈমাসিক ক্রিয়াকলাপের মধ্যে যে কোনও একটিতে মানচিত্রের মানগুলি আপনি বেছে নিতে পারেন z: [...]
ডেনিস

@ ডেনিস zহয় হয় -1, 0বা1 , এবং আমার মনে হয় এগুলি "মানগুলি z" উল্লেখ করা হচ্ছে।
এরিক আউটগলফার

এটা তোলে দুই বাইট পার্থক্য, প্রতিস্থাপন এর switch(z,...)সঙ্গে switch(z+2,...)তাই এটি একটি তুচ্ছ পরিবর্তন নির্বিশেষে হবে।
জিউসেপ

0

জেলি , 47 বাইট

×=
×
N0⁼?ȯȧ?"
ḃ3%3’
0Çḅ3$$⁼¥1#ḢÇṚµ€z0Z⁹+2¤ŀ/Ṛḅ3

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

পুরো প্রোগ্রাম।

-1= C, 0= A, 1=B

তর্ক 1: [x, y]
তর্ক 3:z


আমি মনে করি না xএবং yভারসাম্যযুক্ত ত্রৈমাসিক গ্রহণের অনুমতি দেওয়া হয়েছে: "x এবং y -3812798742493 থেকে 3812798742493 সহ অন্তর্ভুক্ত হতে পারে first প্রথম পদক্ষেপ হল x এবং y দশমিক থেকে ভারসাম্য ত্রৈমাসিকে রূপান্তর করা" "
জোনাথন অ্যালান


... তবে সংখ্যার নেটিভ ফর্ম্যাটটি জেলিতে সুষম ত্রৈমাসিক নয়।
জোনাথন অ্যালান


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