সংখ্যা বাছাই


21

ইউনিকোড চরিত্রগুলির অবসন্নতার মধ্যে, "সংখ্যা ফর্ম" নামে একটি 63 টি অক্ষর (বর্তমানে) এর একটি ইউনিকোড ব্লক উপস্থিত রয়েছে, যার মধ্যে এমন অক্ষর রয়েছে যার মধ্যে রোমান সংখ্যা Ⅻ, gar বা like এর মতো অশ্লীল ভগ্নাংশ বা অদ্ভুত অংশগুলি রয়েছে ↊ (10) বা ↈ (100000)।

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

অক্ষর এবং মানগুলির একটি (বাছাইযোগ্য) তালিকা উইকিপিডিয়া পৃষ্ঠায় পাওয়া যাবে ।

যদিও নিজেকে অন্তর্ভুক্ত রাখতে এখানে কোডপয়েন্ট এবং তাদের মানগুলির তালিকা রয়েছে:

Hex     Char   Value
0x00BC: ¼   = 1/4 or 0.25
0x00BD: ½   = 1/2 or 0.5
0x00BE: ¾   = 3/4 or 0.75
0x2150: ⅐   = 1/7 or 0.142857
0x2151: ⅑   = 1/9 or 0.111111
0x2152: ⅒   = 1/10 or 0.1
0x2153: ⅓   = 1/3 or 0.333333
0x2154: ⅔   = 2/3 or 0.666667
0x2155: ⅕   = 1/5 or 0.2
0x2156: ⅖   = 2/5 or 0.4
0x2157: ⅗   = 3/5 or 0.6
0x2158: ⅘   = 4/5 or 0.8
0x2159: ⅙   = 1/6 or 0.166667
0x215A: ⅚   = 5/6 or 0.833333
0x215B: ⅛   = 1/8 or 0.125
0x215C: ⅜   = 3/8 or 0.375
0x215D: ⅝   = 5/8 or 0.625
0x215E: ⅞   = 7/8 or 0.875
0x215F: ⅟   = 1
0x2160: Ⅰ   = 1
0x2161: Ⅱ   = 2
0x2162: Ⅲ   = 3
0x2163: Ⅳ   = 4
0x2164: Ⅴ   = 5
0x2165: Ⅵ   = 6
0x2166: Ⅶ   = 7
0x2167: Ⅷ   = 8
0x2168: Ⅸ   = 9
0x2169: Ⅹ   = 10
0x216A: Ⅺ   = 11
0x216B: Ⅻ   = 12
0x216C: Ⅼ   = 50
0x216D: Ⅽ   = 100
0x216E: Ⅾ   = 500
0x216F: Ⅿ   = 1000
0x2170: ⅰ   = 1
0x2171: ⅱ   = 2
0x2172: ⅲ   = 3
0x2173: ⅳ   = 4
0x2174: ⅴ   = 5
0x2175: ⅵ   = 6
0x2176: ⅶ   = 7
0x2177: ⅷ   = 8
0x2178: ⅸ   = 9
0x2179: ⅹ   = 10
0x217A: ⅺ   = 11
0x217B: ⅻ   = 12
0x217C: ⅼ   = 50
0x217D: ⅽ   = 100
0x217E: ⅾ   = 500
0x217F: ⅿ   = 1000
0x2180: ↀ   = 1000
0x2181: ↁ   = 5000
0x2182: ↂ   = 10000
0x2183: Ↄ   = 100
0x2184: ↄ   = 100
0x2185: ↅ   = 6
0x2186: ↆ   = 50
0x2187: ↇ   = 50000
0x2188: ↈ   = 100000
0x2189: ↉   = 0
0x218A: ↊   = 10
0x218B: ↋   = 11

পরীক্ষার কেস:

['½','ↆ','ↂ','⅒','Ⅽ','⅑','ⅷ'] -> ['⅒','⅑','½','ⅷ','ↆ','Ⅽ','ↂ']

['¼','↋','↉','ↅ','⅐','⅟','Ⅻ','ⅺ'] -> ['↉','⅐','¼','⅟','ↅ','↋','ⅺ','Ⅻ']

['¼','½','¾','⅐','⅑','⅒','⅓','⅔','⅕','⅖','⅗','⅘','⅙','⅚','⅛','⅜','⅝','⅞','⅟'] -> ['⅒','⅑','⅛','⅐','⅙','⅕','¼','⅓','⅜','⅖','½','⅗','⅝','⅔','¾','⅘','⅚','⅞','⅟']

'⅞ⅾ↊ↄⅨⅮⅺↁⅸⅰⅩⅱⅶ¾ⅧↅↃ↋ↆ⅔ⅼⅲ⅘⅒ⅽⅦ⅕ⅤⅭⅳↂⅪⅬⅯↇⅠⅷ⅛Ⅵ½ⅵ¼ⅻ⅐Ⅱ⅜⅗⅝⅚Ⅳ⅓ⅴ↉ⅿⅫⅹↀↈ⅙⅑Ⅲ⅖⅟' -> '↉⅒⅑⅛⅐⅙⅕¼⅓⅜⅖½⅗⅝⅔¾⅘⅚⅞⅟ⅠⅰⅡⅱⅢⅲⅣⅳⅤⅴⅥⅵↅⅦⅶⅧⅷⅨⅸⅩⅹ↊Ⅺⅺ↋ⅫⅻⅬⅼↆⅭⅽↄↃⅮⅾⅯⅿↀↁↂↇↈ'

['Ↄ','ↄ','↊','↋'] -> ['↊','↋','ↄ','Ↄ']

মনে রাখবেন যে চারটি চিহ্ন (শেষ ক্ষেত্রে ব্যবহৃত একটি) ইউনিকোড সংখ্যা নয়, যদিও তাদের এখনও একটি সংখ্যাসূচক মান রয়েছে, তাই কেবল একটি বিল্ট-ইন পোস্ট করার আগে নিশ্চিত হয়ে নিন।

নিয়মাবলী:

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

9
আরআইপি মনোস্পেসিং :(
জো কিং

উত্তর:


6

পাইথন 3 , 216 213 বাইট

টিফেল্ড -3 বাইট ধন্যবাদ

lambda l:sorted(l,key='⅒⅑⅐⅙⅕¼⅓⅖½⅗⅔¾⅘⅚⅟ⅠⅰⅡⅱⅢⅲⅣⅳⅤⅴⅥⅵↅⅦⅶⅧⅷⅨⅸⅩⅹ↊Ⅺⅺ↋ⅫⅻⅬⅼↆⅭⅽↃↄ⅛⅜Ⅾⅾ⅝⅞Ⅿⅿↀↁↂↇↈ'.find)

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

অন্তর্নির্মিত সহ যে সংখ্যাটি 111 বাইট আনবে

lambda l:sorted(l,key=lambda c:[10,11,100,100,0]['↊↋Ↄↄ'.find(c)]or numeric(c))
from unicodedata import*

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


4
স্ট্রিং থেকে সরিয়ে আপনি 3 বাইট সংরক্ষণ করতে পারবেন ( -1সবচেয়ে ছোটটি কী রিটার্ন সন্ধান করুন )
টিফিল্ড

4

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

*.sort: {%(<Ↄ 100 ↄ 100 ↊ 10 ↋ 11>){$_}//.unival}

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

কেবল একটি হ্যাশের চারটি ব্যতিক্রমী চরিত্র সন্ধান করুন বা বিল্ট-ইন univalপদ্ধতিতে ফিরে আসুন ।


কোলনের পরে আপনার স্থানের দরকার নেই। এছাড়াও, আপনার লিঙ্কটি যাই হোক না কেন ল্যাম্বডা
জো কিং

4

05AB1E (উত্তরাধিকার) , 192 74 63 61 বাইট

Σ•Bšā¿ÑáζΔÕæ₅"®GÙ₂®°ƶío"§óÏ4¸bćÔ!₃ùZFúÐìŸ
,λ₂ϦP(Ì•65в₂+sÇт%k

-১০৮ বাইটগুলি কেবল 05AB1E এর কোড পৃষ্ঠার অক্ষর ব্যবহার করে, সুতরাং আমাদের ইউটিএফ -8 এনকোডিং ব্যবহার করার দরকার নেই।
-11 ধন্যবাদ বাইট @Adnan
-২ বাইটস @ গ্রিমিকে ধন্যবাদ ।

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

ব্যাখ্যা:

Σ            # Sort the input by:
 Bšā¿ÑáζΔÕæ₅"®GÙ₂®°ƶío"§óÏ4¸bćÔ!₃ùZFúÐìŸ
 ,λ₂ϦP(Ì•65в₂+
             #  List of ASCII values modulo-100 of the characters we want to sort
 sÇ          #  Get the ASCII value of the current input-character
   т%        #  Take modulo 100 of this ASCII value
 k           #  And get the index in the list of ASCII values, as sorting order

তাহলে কী •Bšā¿ÑáζΔÕæ₅"®GÙ₂®°ƶío"§óÏ4¸bćÔ!₃ùZFúÐìŸ\n,λ₂ϦP(Ì•65в₂+?

অক্ষরগুলির ক্রমের ভিত্তিতে মডুলো -100 আমরা নিম্নলিখিত তালিকাটি পাই:

[85,30,29,39,28,37,33,88,31,40,34,89,35,41,32,90,36,38,42,43,44,60,45,61,46,62,47,63,48,64,49,65,81,50,66,51,67,52,68,53,69,86,54,70,87,55,71,56,72,82,57,73,79,80,58,74,59,75,76,77,78,83,84]

এগুলি নিম্নলিখিত প্রোগ্রাম দ্বারা উত্পাদিত হয়:

"↉⅒⅑⅛⅐⅙⅕¼⅓⅜⅖½⅗⅝⅔¾⅘⅚⅞⅟ⅠⅰⅡⅱⅢⅲⅣⅳⅤⅴⅥⅵↅⅦⅶⅧⅷⅨⅸⅩⅹ↊Ⅺⅺ↋ⅫⅻⅬⅼↆⅭⅽↃↄⅮⅾⅯⅿↀↁↂↇↈ"Çт%

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

•Bšā¿ÑáζΔÕæ₅"®GÙ₂®°ƶío"§óÏ4¸bćÔ!₃ùZFúÐìŸ\n,λ₂ϦP(Ì•65в₂+সংক্ষিপ্ত নম্বরটি নিয়ে 1485725021600091112740267145165274006958935956446028449609419704394607952161907963838640094709317691369972842282463 , তারপর এটি বেস -65 এ রূপান্তর করে এবং তারপরে প্রতিটি 26 টি যোগ করে এই তালিকার সংক্ষিপ্ততম প্রকরণ ation

এটি অনলাইনে চেষ্টা করুন এবং যাচাই করুন যে তালিকা একই


1
হ্যাঁ, এই সমস্ত অক্ষর 05AB1E এর এনকোডিংগুলিতে নয়, তাই এটি 192 বাইট।
Okx

2
হ্যাঁ, এই কোডটি একটি 68-বাইট ফাইল হিসাবে প্রতিনিধিত্ব করা সম্ভব নয় যা আমাদের ইউটিএফ -8 এ ফিরে যেতে বাধ্য করে, যা সত্যই 192 টি বাইট
আদনান

1
@ জোকিং সো, এখন আমি কেবল 05AB1E এর কোড পৃষ্ঠা থেকে অক্ষর ব্যবহার করছি। ;) এখনও এক বিরক্তিকর পদ্ধতির, তবে আমি দেখতে পাচ্ছি যে আমি কোনও ধরণের পাটিগণিত প্যাটার্নটি পাই।
কেভিন ক্রুইজসেন

1
আমি মনে করি আপনি এর "]&%/$-)`'0*a+1(b,.234D5E6F7G8H9IY:J;K<L=M^>N_?O@PZAQWXBRCSTUV[\"Ç8-সাথে প্রতিস্থাপন করতে পারবেন•4Œ”dóŒfÝŸĀTUÕáOyÖOÀÁàu¼6¹₆Žr‡_›y³eß₂©ǝ²ƶ"SAÎAñ'¡û†Ø(•91в
আদনান

1
হুম, এটি বন্ধনী বন্ধনীটিকে নিবন্ধভুক্ত না করে পার্সিং ত্রুটি বলে মনে হচ্ছে। আমি এটি খতিয়ে দেখব।
আদনান

3

রেটিনা , 1 93 বাইট (UTF-8)

2{O`.
T`¼-¾⅐-↋\LI ^]Q@TU\\[ZYWSPNK\HFDB?=;975X\VR\OMJG\ECA><:86432\-)#1%0,*&.(!"$/+'`Ro

এটি অনলাইন চেষ্টা করুন! ব্যাখ্যা: কোড পয়েন্ট ক্রমে অক্ষরগুলি সাজান, তারপরে অঙ্কের অক্ষর এবং এএসসিআইআই অক্ষরের মধ্যে মানচিত্রগুলি যাতে সর্বনিম্ন মান মানচিত্রে সংখ্যার অক্ষরগুলি নিম্নতম কোড পয়েন্ট এবং এর বিপরীতে ASCII অক্ষরগুলি মানচিত্র করে। তারপরে অনুশীলনটি পুনরাবৃত্তি করে, যাতে অক্ষরগুলি এখন এই ASCII ম্যাপিংয়ের ক্রম অনুসারে বাছাই করা হয়, যা সেগুলি পরিবর্তিত হওয়ার আগে পছন্দসই সংখ্যার ক্রমের সাথে সামঞ্জস্য করে। সম্পাদনা করুন: সংখ্যার অক্ষরের পরিবর্তে ASCII অক্ষরের ক্রম নির্দিষ্ট করে 100 (!) বাইট সংরক্ষণ করা হয়েছে।


3

জেলি , 55 বাইট

O%70‘“$Żz*ṀḢD⁹VṢaʠƝ lẹkƝʋ9⁽ƭXmż4#⁺3ç%|ọṢLxƈ⁽}ÞƇ2’Œ?¤iµÞ

একটি মোনাডিক লিঙ্ক অক্ষরের একটি তালিকা গ্রহণ করে যা অক্ষরের একটি তালিকা দেয়।

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

কিভাবে?

“$Żz*ṀḢD⁹VṢaʠƝ lẹkƝʋ9⁽ƭXmż4#⁺3ç%|ọṢLxƈ⁽}ÞƇ2’জেলির কোড-পৃষ্ঠাটি অঙ্ক হিসাবে ব্যবহার করে বেস 250 এ কেবলমাত্র একটি বৃহৎ সংখ্যক দেখতে এটি দেখতে আরও সহজ , আমি “...’তার জায়গায় ব্যবহার করব ।

O%70‘“...’Œ?¤iµÞ - Link: list of characters
               Þ - sort by:
              µ  -   the monadic function (i.e. f(character)):
O                -     get the ordinal value of the character
 %70             -     modulo by 70 (get the remainder after dividing by 70)
                 -       - giving integers in [0,69] excluding [52,58]
    ‘            -     increment (below code pattern can't have anything but '↉' map to 0)
            ¤    -     nilad followed by link(s) as a nilad:
     “...’       -       literal 7826363328008670802853323905140295872014816612737076282224746687856347808481112431487214423845098801
          Œ?     -       get the permutation of natural numbers [1,N] with minimal N such
                 -         that this permutation would reside at the given index in a
                 -         sorted list of all permutations of those same numbers
                 -         -> [46,52,53,54,55,56,57,58,61,60,70,59,68,64,49,62,1,65,50,66,2,63,51,67,69,3,4,5,21,6,22,7,23,8,24,9,25,10,26,42,11,27,12,28,13,29,14,30,47,15,31,48,16,32,17,33,43,18,34,40,41,19,35,20,36,37,38,39,44,45]
             i   -     first index of (the ordinal mod 70 plus 1) in that list

সরাইয়া

কিছুটা ব্যঙ্গাত্মকভাবে "বিল্ট-ইন অ্যাপ্রোচ ব্যবহার করুন" এর সবচেয়ে কাছেরটি আমি 85 বাইট সংগ্রহ করতে পারি , এটি সংকীর্ণ স্ট্রিং ব্যবহার করে:

from unicodedata import*; copy_to( atoms['
'], numeric( atoms['
'].call()))

যা নিউলাইনগুলিতে বিভক্ত হয়ে পাইথন কোডটি দেওয়ার জন্য এর সাথে যুক্ত হয়েছে:

from unicodedata import*; copy_to( atoms['⁸'], numeric( atoms['⁸'].call()))

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


3

জাপট , 72 বাইট

ñ@`'%!x("y#) z$&*+,<-=.>/?0@1aq2b3c4d5ev6fw7g8hr9iop:j;klmn¡`u bXcuL

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


ব্যাখ্যা

ñ@                 :Sort by passing each X through a function
  `...`            :  A compressed string, which itself contains a bunch of unprintables (See below for codepoints of original string)
       u           :  Uppercase
         b         :  Index of
          Xc       :   Charcode of X
            uL     :   Mod 100 and get character at that codepoint

Codepoints

30,29,39,28,37,33,120,31,40,34,121,35,41,32,122,36,38,42,43,44,60,45,61,46,62,47,63,48,64,49,97,113,50,98,51,99,52,100,53,101,118,54,102,119,55,103,56,104,114,57,105,111,112,58,106,59,107,108,109,110,115,116

আসল সমাধান, 90 89 88 বাইট

ñ!b`(&" )#$*!%'+,-=.>/?0@1a2br3c4d5e6fw7gx8h9:jpq;k<lmÍ/`®iv u nLõd)dÃi6'¼ iA'½ iE'¾

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


ব্যাখ্যা

   `...`                                :A compressed string, which itself contains a bunch of unprintables (See below for codepoints of original string)
        ®                               :Map
         iv                             :  Prepend "v"
            u                           :  Convert to uppercase
               Lõ                       :  Range [1,100]
                 d                      :  Characters at those codepoints
              n   )                     :  Convert from that base to base-10
                   d                    :  Get the character at that codepoint
                    Ã                   :End map
                     i6'¼               :Insert "¼" at (0-based) index 6
                          iA'½          :Insert "½" at index 10
                               iE'¾     :Insert "¾" at index 14
ñ                                       :Sort the input array
 !b                                     :  By finding the index of the current element in the string above

Codepoints

31,30,40,29,38,34,32,41,35,36,42,33,37,39,43,44,45,61,46,62,47,63,48,64,49,97,50,98,114,51,99,52,100,53,101,54,102,119,55,103,120,56,104,57,105,115,58,106,112,113,59,107,60,108,109,110,111,116,117

3

05 এ বি 1 ই, 56 53 51 50 49 48 বাইট

ΣÇ©1ö•Ω‘~Èr–Õî5®Î¼ÓÂ∍_OûR•42в•мjāl†£•₂°*S>ÅΓ®Íè+

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

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

70 হ'ল সর্বনিম্ন সংখ্যা যার মাধ্যমে আমরা সমস্ত ইনপুট কোডপয়েন্টগুলিকে মডুলো করতে পারি এবং স্বতন্ত্র ফলাফল পেতে পারি। যেহেতু 05AB1E এ ইনডেক্সিং চারপাশে মোড়ানো থাকে, আমাদের স্পষ্ট করে বলার দরকার নেই70% , কেবল তালিকাটি 70 এর দৈর্ঘ্যের কিনা তা নিশ্চিত করুন।

লক্ষ্য করুন যে একটানা কী সহ একটানা কোড পয়েন্টের দীর্ঘ প্রসার রয়েছে। সুতরাং, এনকোডিং (কী - কোডপয়েন্ট) কেবল (কী) এর পরিবর্তে অভিন্ন সংখ্যাগুলির দীর্ঘ প্রসার দেয়, যা রান-দৈর্ঘ্যের এনকোডযুক্ত হতে পারে। যাইহোক, কোড পয়েন্টগুলির পরিসীমাটি খুব বড় (তাদের 0xBC .. 0xBE জঘন্য), এটি একটি সমস্যা হবে। সুতরাং (কী - কোডপয়েন্ট) এর পরিবর্তে, আমরা এনকোড করব (কী - Sum_of_d ডিজিটস (কোডপয়েন্ট)), যা দুর্ভাগ্যক্রমে প্রসারিত দৈর্ঘ্য 10-এ সীমাবদ্ধ করে, তবে এনকোডযুক্ত মানের পরিসীমা হ্রাস করতে যথেষ্ট কার্যকর করে। (অন্যান্য ফাংশন অবশ্যই কোডেপয়েন্ট% ধ্রুবকের মতোই সম্ভব তবে সংখ্যার যোগফল সেরা ফলাফল দেয়)।

অতিরিক্তভাবে, এটি রান-দৈর্ঘ্যের এনকোডিংয়ের সাথে 2 টি প্লে করে তালিকাটি ঘুরিয়ে দেয়, তাই আমরা সূচীকরণের আগে কোডপয়েন্ট থেকে 2 বিয়োগ করি।

•Ω‘~Èr–Õî5®Î¼ÓÂ∍_OûR•42в    # compressed list [25, 34, 27, 36, 30, 38, 29, 35, 41, 0, 28, 16, 19, 31, 7, 4, 11, 17, 22, 13, 16, 17, 20, 8, 19, 4, 18, 21]
•мjāl†£•                    # compressed integer 79980000101007
        ₂°*                 # times 10**26
           S                # split to a list of digits
            >               # add 1 to each
             ÅΓ             # run-length decode, using the first list as elements and the second list as lengths

Σ                           # sort by
 Ç©1ö                       # sum of digits of the codepoint
           +                # plus
     ...  è                 # the element of the run-length decoded list
        ®Í                  # with index (codepoint - 2) % 70


1

টি-এসকিউএল, 207 বাইট

SELECT*FROM t ORDER BY
CHARINDEX(c,N'⅒⅑⅛⅐⅙⅕¼⅓⅜⅖½⅗⅝⅔¾⅘⅚⅞⅟ⅠⅰⅡⅱⅢⅲⅣⅳⅤⅴⅥ
              ⅵↅⅦⅶⅧⅷⅨⅸⅩⅹ↊Ⅺⅺ↋ⅫⅻⅬⅼↆⅭⅽↃↄⅮⅾⅯⅿↀↁↂↇↈ'COLLATE Thai_BIN)

স্ট্রিংয়ের মাঝখানে ফিরে আসা কেবল পঠনযোগ্যতার জন্য। আমি মনে করি আমি বাইট গণনা সঠিক পেয়েছি (সংখ্যার অক্ষরের মধ্যে 3 টি 1-বাইট, বাকীটি 2-বাইট), চরিত্রের সংখ্যা 148।

অন্যান্য উত্তরের পরামর্শ অনুসারে আমি স্ট্রিংটিকে পূর্ববর্তী বাছাই করে রেখেছিলাম (যা 0 প্রদান করে) leaving

যে কোনও বাইনারি কোলেশন কাজ করবে, আমি Thai_BINএটি ব্যবহার করেছি কারণ এর সবচেয়ে সংক্ষিপ্ত নাম। (এসকিউএল-তে একটি কোলিশেশন বর্ণনাকে বাছাই / তুলনা কীভাবে করা হয় তা নির্ধারণ করে, আমার বাইনারি দরকার তাই প্রতিটি অক্ষর কেবল নিজের সাথে মেলে))

আমাদের আইও মান অনুসারে ইনপুটটি ক্ষেত্র গ এর সাথে প্রাক-বিদ্যমান টেবিল টি এর মাধ্যমে নেওয়া হয় ।NCHAR(1)

আপনি যদি বাইনারি কোলেশন ব্যবহার করে ইনপুট টেবিলটি নিজেই সংজ্ঞায়িত করেন তবে 16 বাইট সংরক্ষণের জন্য আপনি এটি ছেড়ে দিতে পারেন:

CREATE TABLE t(c NCHAR(1) COLLATE Thai_BIN)

আপনি বাইনারি কোলেশন ব্যবহার না করলে কোন অক্ষর একে অপরের সাথে মেলে?
নীল

1
@ নীল ওয়েল, আপনি অন্য কোন কোলেশনটি ব্যবহার করেন, তার উপর নির্ভর করে ! :)। আমি সবচেয়ে স্পষ্টভাবে লক্ষ্য করেছি (এসকিউএল_ল্যাটিন 1_ জেনারাল_এসপি 1_ সিআই_এএস এর আমার সার্ভার ডিফল্ট ব্যবহার করে) হ'ল উপরের এবং লোয়ারকেস রোমান সংখ্যাগুলি একে অপরের সাথে মেলে match কোনটি .... হুম ... আসলে কাজ করতে পারে জন্য আমাকে এখানে, যেহেতু তারা একই নম্বরে সমাধান। তবে যদি কোলেশনের নামটি এত দীর্ঘ হয় তবে তা সঞ্চয়কে প্রতিহত করে। বিআরবি, আরও কিছু পরীক্ষা করতে হবে ...
ব্র্যাডিসি

1
@ নীল নোপ, ভাল না নন-বাইনারি কোলেশনগুলির সাথে, কম 10 টি সাধারণ অক্ষর ( ⅐⅑⅒Ↄↄↅↆↇↈ↉↊↋যদি আপনি কৌতূহলী হন) সমস্ত একে অপরের সাথে মেলে।
ব্র্যাডিসি

আহা, এটি লজ্জাজনক, তবে আমাকে জানাতে ধন্যবাদ!
নিল


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