"আমরা মহাবিশ্ব ভ্রমণ হিসাবে ..."


48

আপনাকে সৌরজগতের 20 বৃহত্তম জিনিসের একটির নাম দেওয়া হবে। আপনার কাজটি কিলোমিটারে প্রকাশিত, এর ব্যাসার্ধের একটি প্রত্যাবর্তন ফেরত পাঠানো।

এটি এমন একটি যেখানে আপনার স্কোরটি আপনার সবচেয়ে খারাপের 1 উপর ভিত্তি করে পেনাল্টি অনুপাত 1 দ্বারা গুণিত আপনার কোডের দৈর্ঘ্য (বাইটগুলিতে) নিয়ে গঠিত । অতএব, সর্বনিম্ন স্কোর জয়

"যেমন আমরা মহাবিশ্ব ভ্রমণ করি" এটি ব্ল্যাক সাবাথের প্ল্যানেট কারভান গানের শেষ লাইন , পরে প্যান্টেরা দ্বারা আবৃত

সৌরজগতের বস্তু

সূত্র: উইকিপিডিয়া

নোট: র‌্যাঙ্কটি কেবল তথ্যের জন্য দেওয়া হয়। ইনপুটটি বস্তুর নাম

  n | Object   | Radius (km)
----+----------+-------------
  1 | Sun      |   696342
  2 | Jupiter  |    69911
  3 | Saturn   |    58232
  4 | Uranus   |    25362
  5 | Neptune  |    24622
  6 | Earth    |     6371
  7 | Venus    |     6052
  8 | Mars     |     3390
  9 | Ganymede |     2634
 10 | Titan    |     2575
 11 | Mercury  |     2440
 12 | Callisto |     2410
 13 | Io       |     1822
 14 | Moon     |     1737
 15 | Europa   |     1561
 16 | Triton   |     1353
 17 | Pluto    |     1186
 18 | Eris     |     1163
 19 | Haumea   |      816
 20 | Titania  |      788

বা কপি-পেস্ট বন্ধুত্বপূর্ণ তালিকা হিসাবে:

'Sun', 'Jupiter', 'Saturn', 'Uranus', 'Neptune', 'Earth', 'Venus', 'Mars', 'Ganymede', 'Titan', 'Mercury', 'Callisto', 'Io', 'Moon', 'Europa', 'Triton', 'Pluto', 'Eris', 'Haumea', 'Titania'
696342, 69911, 58232, 25362, 24622, 6371, 6052, 3390, 2634, 2575, 2440, 2410, 1822, 1737, 1561, 1353, 1186, 1163, 816, 788

তোমার ফলাফল

যাক Rn প্রত্যাশিত ব্যাসার্ধ nth বস্তু এবং দিন Aএন এই বস্তুর জন্য আপনার প্রোগ্রাম উত্তর হতে হবে।

তারপরে আপনার স্কোরটিকে সংজ্ঞায়িত করা হবে:

S=L×max1i20(max(AiRi,RiAi)2)

যেখানে আপনার কোডের বাইটগুলিতে দৈর্ঘ্য।L

উদাহরণ:

যদি আপনার কোডের আকারটি বাইট হয় এবং আপনার নিকৃষ্টতম অনুমানটি পরিবর্তে কিলোমিটারের ব্যাসার্ধের সাথে চাঁদে রয়েছে তবে আপনার স্কোরটি হবে:10010001737

S=100×(17371000)2=302

কম, ভাল।

আপনার উত্তরের জন্য প্রস্তাবিত শিরোনাম:

Language, 100 bytes, score = 302

আপনি আপনার স্কোর গণনা করতে এই স্ক্রিপ্টটি ব্যবহার করতে পারেন (প্রথম লাইন = কোড দৈর্ঘ্য, পরবর্তী 20 লাইন = আপনার আউটপুট, সূর্য থেকে টাইটানিয়া)।

বিধি

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

2
স্যান্ডবক্স (এখন মুছে ফেলা)। যারা প্রতিক্রিয়া সরবরাহ করেছেন তাদের সবাইকে ধন্যবাদ এবং বিশেষত স্কোরিং সূত্রটি ঠিক করতে সহায়তা করার জন্য xnor।
আর্নৌল্ড

1
আমি দেখছি স্কোরিংটি কি 2 এর ক্ষমতায় পরিবর্তিত হয়েছে?
সেক্ষেত্রে

1
@ কেভিন ক্রুইজসেন এর পেছনের ধারণাটি ছিল খুব সংক্ষিপ্ত উত্তরগুলি (মূলত 1 বা 2 ধ্রুবক ফিরে আসা) একটি যুক্তিসঙ্গত কারণ দ্বারা দন্ডিত হওয়া এবং আরও পরিশীলিতদের বিরুদ্ধে সম্ভাব্য জয়ের প্রতিরোধ করা।
আর্নল্ড

2
স্কোরিং ফাংশনে আমি স্কোয়ারটি অনুমোদন করি। আমার আগের সেরা ফলাফলটি ছিল 7512সমস্ত পরীক্ষার ক্ষেত্রে পেতে 2 বাইট ব্যবহার করে 60 এর স্কোর । আমি দেখতে পাচ্ছি যে আমি শীঘ্রই যে কোনও সময় ম্যাথগল্ফ সমাধান তৈরি করতে ডুব দিছি তবে 05AB1E এর কাছে পরাজিত করা শক্ত হবে।
সর্বোচ্চ

2
@ ম্যাক্সব আপনাকে জেলি'র স্কোরকে হারাতে হবে, 05 এ বি 1 ই এর স্কোর 60 নয়; পি
কেভিন ক্রুইজসেন

উত্তর:


28

পাওয়ারশেল , 3 বাইট, স্কোর 3637

2e4

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

খুব নিষ্পাপ, বিরক্তিকর, বাস্তবায়ন; শুধু 20000ইনপুট কোনও ব্যাপার না। সূর্যের বিশেষ কেসিং করা বা 2সমস্ত পরিবর্তে ভাসমান-পয়েন্টের মানগুলি ব্যবহার করার মতো জিনিসগুলির সাথে পরীক্ষার ফলে আরও খারাপ স্কোর আসে কারণ কোডের দৈর্ঘ্য যে কোনও আকারের তুলনা লাভকে অফসেট করতে পর্যাপ্ত পরিমাণে বৃদ্ধি পায়।


3
কেপিআই সম্পর্কে আপনার যা যা জানা দরকার তা হল :)
mazzy

12
কেন এত বেশি ভোট হচ্ছে ?!
শেগি

11
@ শেগি আমি সে সম্পর্কেও বিভ্রান্ত হয়ে পড়েছি ..: এস এটি এখন পর্যন্ত সবচেয়ে স্বল্পতম এবং সর্বোচ্চ স্কোরিং উত্তর (এটি ব্যক্তিগত অ্যাডমবর্কবার্ক গ্রহণ করবেন না , তবে আমি মনে করি জেলি এবং জাভা উত্তরগুলি আরও অনেক বেশি প্রাপ্য)। লোকেরা সম্ভবত কেবলমাত্র 3 বাইট অংশ দেখে (বা ভাবেন উচ্চতর স্কোর নিম্নের চেয়ে ভাল) এবং অন্য সব কিছু উপেক্ষা করে। xD সানডবক্সে আরনল্ডের মূল চ্যালেঞ্জের বিবরণে, এই উত্তরটিও সম্ভব হত না, কারণ এটি প্রতিটি I / O এর জন্য সর্বোচ্চ 95% এর ত্রুটি শতাংশের অনুমতি দেয় allowed আহ ভালো. ফ্রি রেপ অ্যাডমবর্কবর্ক উপভোগ করুন । ;)
কেভিন ক্রুইজসেন

6
এটি যদিও প্রশ্নের মাপদণ্ডের মাপসই করে না। আমি মনে করি লোকেরা এটিকে ভোট দেয় কারণ এটি অত্যন্ত স্পষ্ট, অনেকেই এটি সম্পর্কে ভাবেননি। এটি ত্রুটিযুক্ত রেটিং সিস্টেমের সাথে কোনও চ্যালেঞ্জকেও বোঝায়, যদি এটি সেভাবে অপব্যবহার করা যায়।
এলকান

9
লোকেরা সমস্ত ধরণের কারণে পিপিসি-তে সমর্থন করে, কেবল কাঁচা স্কোরের কারণে নয় ( উদাহরণস্বরূপ আমার বিশাল মাইনক্রাফ্টের রেডস্টোন উত্তর দেখুন )। আমি এই উত্তরটিকে অগ্রাহ্য করলাম কারণ এটি কৌশলটির বর্ণালীটির সুদূর প্রান্তের একটি স্পষ্ট ও সরল উদাহরণ ("রিটার্নের সঠিক মান" বনাম "বাম সঞ্চয় করে বদ্ধমূল্য ফিরিয়ে আনার এবং জরিমানা নিতে") এর বর্ণালী)
ব্র্যাডসি

25

জেলি , 34 বাইট, স্কোর = 37

OḌ“⁸|5/!‘%ƒị“RNFLOJMjs⁽\u[USJ‘1.1*

ইনপুট বড় হাতের অক্ষরে থাকে, আউটপুট হ'ল সর্বনিম্ন ত্রুটির সাথে 1.1 পাওয়ার।

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

কিভাবে এটা কাজ করে

OḌ“⁸|5/!‘%ƒị“RNFLOJMjs⁽\u[USJ‘1.1*  Main link. Argument: s (string)

O                                   Ordinal; map the char in s to their code points.
                                        "ERIS" -> [69,82,73,83]
 Ḍ                                  Undecimal; treat the result as an array of digits
                                    in base 10 and convert it to integer.
                                        [69,82,73,83] -> 69000+8200+730+83 = 78013
  “⁸|5/!‘                           Literal; yield [136, 124, 53, 47, 33].
         %ƒ                         Fold the array by modulus, using the computed
                                    integer as initial value.
                                        78013 -> 78013%136%124%53%47%33 = 32
            “RNFLOJMjs⁽\u[USJ‘      Literal; yield [82, 78, 70, 76, 79, 74, 77, ...
                                    106, 115, 141, 92, 117, 91, 85, 83, 74].
           ị                        Retrieve the element from the array to the right,
                                    at the index to the left.
                                    Indexing is 1-based and modular.
                                        32 = 16 (mod 16) -> 'J' = 74
                              1.1*  Raise 1.1 to the computed power.
                                        74 = 1.1**74 = 1156.268519450066

20

জাভা (জেডিকে) , 90 বাইট, স্কোর = 97

s->("ýCĄ (ᬺ!˂Fɍ".charAt(s.substring(2).chars().sum()%96%49%25)-7)*100

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

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

ক্রেডিট

  • -৪৮ স্কোর (-45 বাইট) কেভিন ক্রুইজসেনকেString একটি স্পষ্ট intঅ্যারেতে হার্ডকড করার পরিবর্তে সরাসরি রেডিওগুলি (100 দ্বারা বিভক্ত) এনকোড করে ধন্যবাদ জানায় ..


ধন্যবাদ @ কেভিন ক্রুজসেন! দশমিক মানগুলির অ্যারের পরিবর্তে স্ট্রিংয়ে ইউনিকোড অক্ষর ব্যবহার করে এটি একটি দুর্দান্ত গল্ফ। :-)
অলিভিয়ার গ্রাগোয়ার

আমি সাহায্য করতে পারে খুশি, এবং সুন্দর উত্তর! :) পিএস: আমি কেন যুক্ত করেছি (...-7): অপ্রিন্টযোগ্য অক্ষরটি (char)0খালি তাই আমাকে কিছু যুক্ত করতে হয়েছিল। আমি প্রথমে চেষ্টা করেছি 9এবং 8একক অঙ্ক হচ্ছি , তবে 9একাধিক \t(প্রতিটি 2 বাইট) প্রয়োজন, অবশ্যই ট্যাব 8দিয়েছিলাম এবং একটি অনির্বাচিত অক্ষর ব্যবহৃত সম্পর্কে ত্রুটি দিয়েছি।
কেভিন ক্রুইজসেন

@ কেভিন ক্রুইজসেন সত্যি কথা বলতে, আমি গতকাল কয়েক ঘন্টা চেষ্টা করেছি আপনার গুণকে আরও বাড়িয়ে আরও ভাল মানের *100-700সাথে আসার জন্য স্ট্রিং এবং সেই দুটি সংখ্যার সাথে খেলতে, তবে সেগুলি সবচেয়ে ভাল, আসলে, কিছু মান বাইট হ্রাস করতে পারে গণনা করা, কিন্তু তারপরে স্কোর একই থাকে। তাই এলোমেলো পিনপয়েন্টিং (এর মধ্যে একটি) সেরা কেস তৈরি করেছে;)
অলিভিয়ের গ্রাগোয়ার

অবিশ্বাস্য সম্পর্কে কথা! এই এন্ট্রিটি আমার ফায়ারফক্সকে সত্যই এমনভাবে অদ্ভুত করে দিয়েছে যে আমি বাকী পৃষ্ঠাটি সঠিকভাবে পড়তে পারি না :-(
নীল

9

ওল্ফ্রাম ভাষা 114 103 97 88 86 82 বাইট। স্কোর = 114 103 97 89 87 83 পয়েন্ট

(#&@@EntityValue[Interpreter["AstronomicalObject"]@#,"Radius"]/._String->507)1.61&

কমপক্ষে 6 টি পয়েন্ট সংরক্ষণ করার জন্য ধন্যবাদ Dennis, আরও বেশ কয়েকটি ধন্যবাদ lirtosiastএবং আরও 6 টি ধন্যবাদ ধন্যবাদ সংরক্ষণ করেছে user202729

যদিও গাণিতিক সৌরজগতের ডেটা আনতে পারে (পাশাপাশি অতিরিক্ত জ্যোতির্বিজ্ঞানের উপাত্ত), নীচে বর্ণিত হিসাবে কিছু ছোটখাটো টুইট প্রয়োজন।

Interpreter[#,"AstronomicalObject"]&প্রতিনিধিত্বকৃত শব্দের সাথে সম্পর্কিত সত্তা (অর্থাত্ যন্ত্রটি গণনাযোগ্য বস্তু) ফিরিয়ে দেবে #

EntityValue[AstronomicalObject[],"Radius"]সত্তার মাইল দূরে ব্যাসার্ধটি প্রদান করে। "হাউমিয়া" এর ক্ষেত্রে, মান, 816.27 (অর্থাৎ 507 * 1.61), ফিরে আসে।

1.61মাইল থেকে কিমি রূপান্তরিত করে ব্যাসার্ধের গুণফল । পূর্ণসংখ্যার চেয়ে দশমিক মানগুলি, অত্যন্ত চরম ক্ষেত্রে এমনকি 1% এরও কম ত্রুটির জন্য অ্যাকাউন্ট করে।

[[1]]ইউনিট ছাড়াই প্রসারিত করে, কিমি। এটি পরে পরিবর্তিত হয়েছিল #&@@, একই ফলস্বরূপ।


1
অন্য একটি ওলফ্রাম অন্তর্নির্মিত Just ঠিক ডাউনগোটগুলি সনাক্ত করার মতো
OganM

আমি এই
উত্তরটি

প্রকৃতপক্ষে, এটির জন্য ইন্টারনেট সংযোগও প্রয়োজন (10.2 এ পরীক্ষিত)
ব্যবহারকারী 202729

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

1
উঘ, ব্যাসার্ধের জন্য এটি ডিফল্ট ইউনিট মাইল? কমপক্ষে এটিতে ভর (যেমন মেট্রিক) ডিফল্ট ইউনিট রয়েছে ...
নিল


6

পাওয়ারশেল, 150 141 বাইট, স্কোর 163 153

($args|% t*y|?{'Su6963J699S582U253N246Ea63V60Ma33G26Ti25Me24C24I18M17Eu15T13P12E12H8Titani8'-cmatch"$(($y+=$_))(\d+)"}|%{100*$Matches.1})[-1]

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

পরীক্ষার স্ক্রিপ্ট:

$f = {
($args|% t*y|?{'Su6963J699S582U253N246Ea63V60Ma33G26Ti25Me24C24I18M17Eu15T13P12E12H8Titani8'-cmatch"$(($y+=$_))(\d+)"}|%{100*$Matches.1})[-1]
}

$penalty = @(
    ,("Sun"      , 696342)
    ,("Jupiter"  ,  69911)
    ,("Saturn"   ,  58232)
    ,("Uranus"   ,  25362)
    ,("Neptune"  ,  24622)
    ,("Earth"    ,   6371)
    ,("Venus"    ,   6052)
    ,("Mars"     ,   3390)
    ,("Ganymede" ,   2634)
    ,("Titan"    ,   2575)
    ,("Mercury"  ,   2440)
    ,("Callisto" ,   2410)
    ,("Io"       ,   1822)
    ,("Moon"     ,   1737)
    ,("Europa"   ,   1561)
    ,("Triton"   ,   1353)
    ,("Pluto"    ,   1186)
    ,("Eris"     ,   1163)
    ,("Haumea"   ,    816)
    ,("Titania"  ,    788)
) | % {
    $s,$expected = $_
    $result = &$f $s
    $ratio = [Math]::Max($result/$expected, $expected/$result)
    $ratio*$ratio
}
$scriptLength = $f.ToString().Length - 2  # -4 if CRLF mode
$penaltyMax = ($penalty|Measure-Object -Maximum).Maximum
$score = $scriptLength * $penaltyMax
"$score = $scriptLength * $penaltyMax"

আউটপুট:

152.731283431953 = 141 * 1.08320059171598

ব্যাখ্যা:

  • নামগুলিতে কেবল অক্ষর থাকে, রেডিওগুলিতে অঙ্ক এবং বিন্দু থাকে। সুতরাং আমরা একটি ডেটা স্ট্রিংয়ে সমস্ত ডেটা লিখতে এবং একটি রিজেক্সপ অনুসন্ধান করতে পারি।
  • স্ক্রিপ্টটি বাম থেকে ডানে সমস্ত সাবস্ট্রিংয়ের সন্ধান করে এবং শেষ ফলাফলটি খুঁজে নেয়।
  • ডেটা স্ট্রিং হ্রাস করতে ইনপুটটি অবশ্যই শিরোনাম-কেস হওয়া উচিত।
  • end of line modeএলএফ মাত্র।

উদাহরণ:

Titania         Triton         Titan
--------------  -------------  -------------
T       -> 1.3  T      -> 1.3  T      -> 1.3
Ti      -> 2.5  Tr     ->      Ti     -> 2.5
Tit     ->      Tri    ->      Tit    ->
Tita    ->      Trit   ->      Tita   ->
Titan   ->      Triton ->      Titan  ->
Titani  -> .8
Titania ->

Result is .8    Result is 1.3  Result is 2.5

পাওয়ারশেল, 178 বাইট, স্কোর 178

($args|% t*y|?{'Su696342J69911S58232U25362N24622Ea6371V6052Ma3390G2634Ti2575Me2440C2410I1822M1737Eu1561T1353P1186E1163H816Titani788'-cmatch"$(($y+=$_))(\d+)"}|%{+$Matches.1})[-1]

4

05AB1E , 100 66 60 স্কোর ( 100 61 56 বাইট )

•1∞²îc|I‰∍T‡sÇ3¡ò½в…»Ë•§•1ë£ñƒq£û¿’…•S£y¦¦ÇO96%49%25%èт*

@ অলিভিয়ারগ্রোওয়ের এর জাভা উত্তরটির বন্দর , সুতরাং আপনি যদি এই প্রথম উত্তরটি পছন্দ করেন, তবে তাকেও উত্সাহিত করতে ভুলবেন না!
টাইটলেজ ইনপুট।

সমস্ত পরীক্ষার কেস যাচাই করুন।


05 এ বি 1 ই , স্কোর 100 (100 বাইট )

•*Òâ%ÌÜS…Ùb‹Úi{e!]ɸ·vÌBUSηHã£āðxyµŠ•§•3«8¹ØмS7Ç•S£.•WùηƵ@,Sº,ûεβʒóÃX\¹Θäáá’Ý)”Ωož∞-z.A±D•3ôI2£Iθ«kè

পূর্ণ ছোট হাতের ইনপুট। সঠিক ব্যাসার্ধকে আউটপুট দেয়, সুতরাং কোনও জরিমানা যুক্ত করা হয় না।

সমস্ত পরীক্ষার কেস যাচাই করুন।

ব্যাখ্যা:

•*Òâ%ÌÜS…Ùb‹Úi{e!]ɸ·vÌBUSηHã£āðxyµŠ•
                   # Compressed integer 696342699115823225362246226371605233902634257524402410182217371561135311861163816788
 §                 # Casted to string (bug, should have been implicitly..)
  3«8¹ØмS7Ç•      # Compressed integer 65555444444444444433
   S               # Converted to a list of digits: [6,5,5,5,5,4,4,4,4,4,4,4,4,4,4,4,4,4,3,3]
    £              # The first integer is split into parts of that size: ["696342","69911","58232","25362","24622","6371","6052","3390","2634","2575","2440","2410","1822","1737","1561","1353","1186","1163","816","788"]
     .•WùηƵ@,Sº,ûεβʒóÃX\¹Θäáá’Ý)”Ωož∞-z.A±D
                   # Compressed string "sunjursanursneeeahvesmasgaetinmeycaoioomoneuatrnploershaatia"
      3ô           # Split into parts of size 3: ["sun","jur","san","urs","nee","eah","ves","mas","gae","tin","mey","cao","ioo","mon","eua","trn","plo","ers","haa","tia"]
        I2£        # The first two characters of the input
           Iθ      # The last character of the input
             «     # Merged together
              k    # Get the index of this string in the list of strings
               è   # And use that index to index into the list of integers
                   # (and output the result implicitly)

সংক্ষিপ্তসারটি কীভাবে কাজ করে তা বোঝার জন্য আমার এই 05AB1E টিপটি দেখুন (বিভাগগুলি কীভাবে বড় পূর্ণসংখ্যাগুলি সংকুচিত করবেন? এবং স্ট্রিংগুলি অভিধানের অংশ নয় কীভাবে সংকুচিত করবেন? ) দেখুন

আমি একটি 70-বাইট বিকল্প তৈরি করেছি যা সূর্যের মানচিত্র তৈরি করবে 600,000; [বৃহস্পতি, শনি] থেকে 60,000; [ইউরেনাস, নেপচিউন] থেকে 30,000; [পৃথিবী, শুক্র] থেকে 6,000; [মঙ্গল, গ্যানিমেড, টাইটান, পারদ, কলিস্টো] থেকে 3,000; [আইও, চাঁদ, ইউরোপা, ট্রাইটন, প্লুটো, এরিস] থেকে 1,500; এবং [হামেয়া; টাইটানিয়া] থেকে 750। দুর্ভাগ্যক্রমে এটি 117 এর স্কোর পেয়েছে later আমি পরে বিকল্প বিকল্প দিয়ে 100 এর নিচে পেতে পারি কিনা তা আমি দেখতে পাচ্ছি।


1
আমি আরও একটি ভাল হ্যাশ পেয়েছি যা 30-অক্ষরের পরিবর্তে 25-অক্ষরের স্ট্রিং ব্যবহার করে। আপনি যদি এই উত্তরটি আপডেট করতে চান তবে আমার জাভা উত্তরটি দেখুন;)
অলিভিয়ের গ্রাগোয়ার

@ অলিভিয়ার গ্রাগোওয়ের এই মাথা উঁচু করার জন্য ধন্যবাদ। -6 স্কোর এবং -7 বাইট। :)
কেভিন ক্রুইজসেন

4

গণিত, 57 বাইট, স্কোর = 62 58

-4 বাইট / স্কোর lirtosiast ধন্যবাদ !

#&@@WolframAlpha[#<>" size km","Result"]]/._Missing->816&

গড় ব্যাসার্ধের জন্য কেবল কোনও ওল্ফ্রাম আলফা অনুসন্ধান করে।


1
হুম। এই গণনা কি ইন্টারনেট ব্যবহার করে না? যদি না ম্যাথামেটিকায় আসলে পুরো ওল্ফ্রামআল্ফা ইঞ্জিন থাকে
ASCII- কেবলমাত্র

@ এএসসিআইআই- এর অর্থ WolframAlpha
হ'ল

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

@ এএসসিআইআই কেবলমাত্র আপনি যদি উদ্বিগ্ন থাকেন তবে আপনি সর্বদা মেটায় একটি প্রশ্ন পোস্ট করতে পারেন।
LegionMammal978

@leg সেক্ষেত্রে ডাউনলোডের পরে ডেটা অফলাইনে ব্যবহার করা যেতে পারে। এই ক্ষেত্রে, এটি না।
user202729

4

জেলি , 28 বাইট, স্কোর = 31

“__ʋ7ṗ“RUu⁽NM\sOSJj[FL‘ḥ1.1*

এটি একটি কনফিগারযোগ্য হ্যাশিং অন্তর্নির্মিত ব্যবহার করে যা আমি @ lirtosiast এর পরামর্শে জেলির সাথে যুক্ত করেছি।

ইনপুট শিরোনাম হয়, আউটপুট হ'ল কমপক্ষে ত্রুটি সহ 1.1 পাওয়ার।

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

কিভাবে এটা কাজ করে

এই উত্তরটি কেবল দুটি অংশ নিয়ে গঠিত।

  • প্রথমে “__ʋ7ṗ“RUu⁽NM\sOSJj[FL‘ḥ15 টি পৃথক পূর্ণসংখ্যার 20 টি সম্ভাব্য ইনপুটগুলির প্রত্যেকের মানচিত্রের জন্য নতুন অন্তর্নির্মিত ব্যবহার করে।
  • তারপরে, 1.1*কম্পিউটেড পাওয়ারে 1.1 টি উন্নীত করুন।

“__ʋ7ṗ“RUu⁽NM\sOSJj[FL‘একটি আক্ষরিক; প্রতিটি অ-উদ্ধৃতি চরিত্রটি জেলি কোড পৃষ্ঠাতে 0-ভিত্তিক সূচক দ্বারা প্রতিস্থাপিত হয়, [95,95,169,55,242],[82,85,117,141,78,77,92,115,79,83,74,106,91,70,76]

[95,95,169,55,242]1376510639244

ফলাফলটি 0 না হওয়া অবধি এই পূর্ণসংখ্যাটি অর্ধেকে রেখে এবং ফ্লোর করে আমরা ক্রমটি পাই [376510639244,188255319622,94127659811,47063829905,...,5,2,1,0][188255319622,94127659811,47063829906,...,3,1,1]

এরপরে, আমরা শ্যাঙ্ক 256-4096 এর ডান যুক্তির অভ্যন্তরীণ উপস্থাপনার স্ট্রিং উপস্থাপনায় 64 64-বিট পূর্ণসংখ্যার উত্পন্ন করি , তারপরে ফলাফল 4096 বিটগুলি 64 -৪ -বিট খণ্ডে কাটা।

264[0,264)

তালিকা [82,85,117,141,78,77,92,115,79,83,74,106,91,70,76][0,15)

যথাযথ হ্যাশ কনফিগারেশনটি সন্ধান করতে, আমি সিতে একটি ব্রুট-ফোরার ব্যবহার করেছি যা জেলি রেপোর অংশ


3

পাইথন 2 , 155 বাইট, স্কোর = 155

lambda p:int('G11KK54222111111XXNM8MCO37WQ53YXHE93V8BIF2IMH1WU9KPU2MLN    HGR'['uSJJaSrUNNrEnVsMeGtTMMoCoInMuErTuPsEaHTT'.find(p[7%len(p)]+p[0])/2::20],35)

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

আশ্চর্যজনকভাবে এই অলস সমাধানের জন্য ভাল ... পাশাপাশি উন্নতির দিকেও তাকাবে। ;-)


3

জাপট , 86 বাইট, স্কোর = 94

g5 ¥'i?788:[7*A³7*L6*LG²G²IIÉHÄDÑDÑCÑCÑGÄÄGÄGECC8]g`suj«a¨Ì¼và@ã/eÖô¶e©rp¤r`bU¯2)z)*L

সমস্ত ইনপুটগুলির জন্য এটি ব্যবহার করে দেখুন , স্কোর গণনা করুন বা সর্বোচ্চ ত্রুটিটি পরীক্ষা করুন

অলিভিয়ের মূল উত্তরের সাথে খুব মিল। ইনপুট সমস্ত ছোট হাতের অক্ষর।

আউটপুট মানগুলিতে বিভিন্ন উন্নতির পরে, বর্তমানের সর্বোচ্চ ত্রুটি ভেনাসের মাত্র 4% এরও বেশি।

বিষয়গুলি কিছুটা স্থিতিশীল হওয়ার এখন ব্যাখ্যা:

¤¥`Éa`?                             :If the fifth character of the input is 'i':
       788                          : Output 788.
          :                         :Otherwise:
           [...]                    : From the array representing radii
                g                   : Get the value at the index:
                 `...`              :  In the string representing names
                      b             :  Find the first index where this string appears:
                       U¯2)         :   The first two characters of the input
                           z)       :  And divide it by two
                             *L     : Multiply that value by 100

নামের স্ট্রিংটি sujusaurneeavemagatimecaiomoeutrplerhaজাপটের অন্তর্নির্মিত সংকোচনের সাহায্যে সংকুচিত করা হয়। রেডিয়ির প্রতিনিধিত্বকারী সংখ্যাগুলি এভাবে গণনা করা হয়:

                          My value | Actual value
                          ---------+-------------
7 * 10 ^ 3 = 7000 * 100 =   700000 | 696342
7 * 100    = 700  * 100 =    70000 |  69911
6 * 100    = 600  * 100 =    60000 |  58232
16 * 16    = 256  * 100 =    25600 |  25362
16 * 16    = 256  * 100 =    25600 |  24622
64         = 64   * 100 =     6400 |   6371
64 - 1     = 63   * 100 =     6300 |   6052
32 + 1     = 33   * 100 =     3300 |   3390
13 * 2     = 26   * 100 =     2600 |   2634
13 * 2     = 26   * 100 =     2600 |   2575
12 * 2     = 24   * 100 =     2400 |   2440
12 * 2     = 24   * 100 =     2400 |   2410
16 + 1 + 1 = 18   * 100 =     1800 |   1822
16 + 1     = 17   * 100 =     1700 |   1737
16         = 16   * 100 =     1600 |   1561
14         = 14   * 100 =     1400 |   1353
12         = 12   * 100 =     1200 |   1186
12         = 12   * 100 =     1200 |   1163
8          = 8    * 100 =      800 |    816
788                     =      788 |    788

3

জাপট, 77 76 75 বাইট, স্কোর = 75

এই প্রথম পাস; নিজেকে কাজ করার জন্য একটি বেসলাইন দেওয়ার জন্য আমি 0 টি পেনাল্টি সমাধান চেষ্টা করতে চেয়েছিলাম। আগামীকাল এটিতে আবার ফিরে আসবে কী উন্নতি করা যেতে পারে তা আশা করি, এখনও 0 পেনাল্টির জন্য।

ইনপুট কেস-সংবেদনশীল।

n35 %87%52 g"..."ò)mc

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

এতে "..."অনেকগুলি ছাপ ছাপানো স্ট্রিং প্রতিনিধিত্ব করে। কোডপয়েন্টগুলি হ'ল:

32,32,15,61,11,86,696,342,25,75,699,11,33,90,63,71,24,10,24,40,253,62,60,52,32,32,8,16,11,63,32,32,32,32,58,232,17,37,135,3,246,22,18,22,26,34,7,88

দ্রুত ব্যাখ্যা দেওয়ার জন্য: স্ট্রিংটি 2 টি অক্ষরের অংশে বিভক্ত হয়ে যায়। তারপরে আমরা ovs এর সূত্রের কিছু অংশ এবং কিছু সূচি- মোড়কের অংশ ব্যবহার করে সেই অ্যারেটিতে সূচক করি এবং তারপরে তাদের কোডপয়েন্টগুলিতে 2 টি অক্ষর ম্যাপ করি।

  • করার জন্য একটি বাইট / পয়েন্ট সংরক্ষিত ধন্যবাদ eth

54 বাইট, স্কোর = 58

অলিভিয়ারের সমাধানের একটি বন্দর ।

"ýCĄ (ᬺ!˂Fɍ"cU¤¬xc %96%49)-7 *L

সমস্ত ইনপুট পরীক্ষা করুন


আমি মনে করি আপনি প্রথম এন্ট্রিটি (# 23) এটি যেখানে রয়েছে তার দিকে নিয়ে গিয়ে এবং %24:-) অপসারণ করে আপনি একটি বাইট সংরক্ষণ করতে পারেন
ETH প্রোডাকশনগুলি



@ এইচটি প্রোডাকশনস: আহ, হ্যাঁ, কেবল নিজেকে দু'কায় করেছিলাম যে অ্যারের শুরুতে আমাকে একটি স্থানধারক উপাদান যুক্ত করতে হবে। ধন্যবাদ।
শেগি

3

রুবি , 105 বাইট, 109 স্কোর

->n{7E5/('!)"0 r&zZ&1#}3Mfh-~~d@'[0,j=" =1&%)AM<I>2,-B#($D  7@".index((n[1,9].sum%50+34).chr)].sum-j*32)}

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

যদি আমরা রেডিয়াই দ্বারা 700000 বিভক্ত করি তবে আমরা একটি ক্রম পাই যা যুক্তিসঙ্গতভাবে রৈখিকভাবে বৃদ্ধি পায় (তবে ত্রুটিযুক্তভাবে)। নীচের টেবিলের ইনক্রিমেন্টগুলি অক্ষরের ASCII মানগুলির দ্বারা অনুমিত হতে পারে। এই পদ্ধতির সমস্যাটি হ'ল এর জন্য ইনপুটটিকে এমন কোনও মানের ডিকোড করা দরকার যা আকারের দ্বারা বিভিন্ন নাম অর্ডার করে।

একটি ছোটখাটো বিষয় হ'ল এরিস এবং হাউমার পার্থক্য বেশ বড়। ~~dকেবলমাত্র এসসিআইআই ফর্ম্যাটে এই বর্ধিতকরণের এনকোড করতে তিনটি অক্ষর প্রয়োজন। সূচকে প্যাড করার জন্য গ্রহ থেকে সূচকের স্ট্রিংয়ের দুটি "ভুত গ্রহ" ফাঁকা স্থান রয়েছে।

700000/r    increment from previous
0.994774    
9.960407    8.965633
11.95806    1.997657
27.45612    15.49805
28.28129    0.825178
109.2987    81.0174
115.0598    5.761118
205.4106    90.3508
264.3667    58.95612
270.4241    6.057335
285.3861    14.96199
288.9386    3.552524
382.1855    93.24692
400.8877    18.70223
446.0871    45.19939
514.6652    68.57806
587.1349    72.46972
598.7463    11.61144
853.3603    254.6139
883.6827    30.32245

3

টি-এসকিউএল, 203 202 201 196 বাইট, স্কোর = 217 216 212 208

SELECT IIF(v='Titan',13,STUFF(value,1,2,''))*198
FROM i,STRING_SPLIT('Ca12,Ea32,Er6,Eu8,Ga13,Ha4,Io9,Ju353,Ma17,Me12,Mo9,Ne124,Pl6,Sa294,Su3517,Ti4,Tr7,Ur128,Ve31',',')
WHERE LEFT(v,2)=LEFT(value,2)

লাইন বিরতি কেবল পঠনযোগ্যতার জন্য।

ইনপুট পূর্ব বিদ্যমান টেবিল মাধ্যমে নেওয়া হয় আমি varchar কলাম সহ বনাম , আমাদের আই মান অনুযায়ী

প্রথম দুটি অক্ষরের ইন-মেমরি টেবিলটিতে ইনপুট টেবিলটিতে যোগদান করে এবং বাকি অঙ্কগুলি x100 প্রদান করে।

"টাইটান" কে বিশেষ কেস হিসাবে ব্যবহার করে IIF

সম্পাদনা : STUFFপরিবর্তে প্রথম দুটি অক্ষর মুছতে ব্যবহার করে 1 বাইট (এবং 1 পয়েন্ট) সংরক্ষণ করা হয়েছেSUBSTRING । ধন্যবাদ, t-clausen.dk!

সম্পাদনা 2 : আমি দেখতে চেয়েছিলাম যে আমি যদি প্রতিটি লুকে 100 এর পরিবর্তে 99 এর গুণক দিয়ে অন্য বাইট সংরক্ষণ করার চেষ্টা করি এবং আমার আশ্চর্য হয়ে যায় যে এটি আসলে বৃদ্ধি পেয়েছে সত্যতাটি (কমপক্ষে সঠিক অনুমানের) !

এটি আমাকে কিছু ট্রায়াল এবং ত্রুটি পরীক্ষার দিকে নিয়ে গেছে এবং কিছু অভিনব এক্সেল কী-যদি ডেটা টেবিলগুলিতে, যেখানে আমি 89 এর গুণক ব্যবহার করে একটি অনুকূল সমাধান পেয়েছি (যা অবশ্যই আমার সমস্ত সঞ্চিত মান পরিবর্তন করেছে)।

সুতরাং এটি আমাকে কেবল একটি বাইট সংরক্ষণ করে, এটি আসলে আমার স্কোরকে 4.6 দ্বারা উন্নত করে আমার পূর্ববর্তী সমাধান থেকে ।

সম্পাদনা 3 : নিম্ন পরিবর্তে উচ্চতর অনুসন্ধান করা, এবং একটি এমনকি পাওয়া ভাল গুণ ফ্যাক্টর, 198 । বেশ কয়েকটি অক্ষর দ্বারা আমার সঞ্চিত স্ট্রিং সংক্ষিপ্ত করার সময় মানগুলি যথাযথভাবে সঠিক থাকে, যা আমার স্কোরকে উন্নত করে।


1
আপনি স্ট্রিংয়ের পরিবর্তে STUFF (মান, 1,2, '') ব্যবহার করে 1 বাইট সংরক্ষণ করতে পারবেন
t-clausen.dk

2

পাওয়ারশেল , 203 বাইট, স্কোর 203

param($a)if($a-eq'Titan'){2575;exit}(696342,69911,58232,25362,24622,6371,6052,3390,2634,2440,2410,1822,1737,1561,1353,1186,1163,816,788)["SuJuSaUrNeEaVeMaGaMeCaIoMoEuTrPlErHaTi".indexOf(-join$a[0..1])/2]

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

অলিভিয়ের উত্তরের সাথে খুব মিল, এখন আমি এটি দেখতে পেয়েছি তবে স্বাধীনভাবে বিকাশ করেছি।


1

কাঠকয়লা , 101 বাইট, স্কোর = 101

I⍘§⪪“_″FJ⁼⦄b\l≕)T‹#⊙xO-nη⁻À↓ζ↥ς§%H8H“ρj✳Hρl× S↶…|UD⎇LkfZ”³⌕⪪”@/rjmq_↙§E▶νF↨oº⁷÷K⁻eDH:_Tbk¦�”²⁺§θ⁰§θχγ

এটি অনলাইন চেষ্টা করুন! লিঙ্কটি কোডটির ভার্জোজ সংস্করণ। ব্যাখ্যা:

⁺§θ⁰§θχ

ইনপুট স্ট্রিংয়ের 1 ম এবং 11 তম অক্ষর (চক্রাকারে) নিন এবং সেগুলি সংলগ্ন করুন।

⌕⪪”@/rjmq_↙§E▶νF↨oº⁷÷K⁻eDH:_Tbk¦�”²

সেগুলি SuJiSrUuNtEEVVMrGnTTMcClIIMoEpToPPEiHeTaঅক্ষরের জোরে বিভক্ত স্ট্রিংগুলিতে সন্ধান করুন ।

§⪪“_″FJ⁼⦄b\l≕)T‹#⊙xO-nη⁻À↓ζ↥ς§%H8H“ρj✳Hρl× S↶…|UD⎇LkfZ”³

স্ট্রিংকে m.w'fv&J|\"l|\"e1 c& _c Ca ;e ;* 9a 9C 31 2; 0I .7 ,N ,7 (X (<তিনটি অক্ষরের গ্রুপে বিভক্ত করুন এবং সংশ্লিষ্ট গ্রুপটি নিন।

I⍘ ... γ

অঙ্কগুলি হিসাবে মুদ্রণযোগ্য ASCII অক্ষর সেট ব্যবহার করে ফলাফলকে বেস -95 নম্বর হিসাবে ডিকোড করুন। উদাহরণ: Ioএর ১১ তম চরিত্রটি I, সুতরাং আমরা সন্ধান করি IIএবং এটি ১৩ তম বৃহত্তম অবজেক্ট এবং এর আকারটি 31কোনটি মানচিত্র করে 19 * 95 + 17 = 1822


1

সুইফট 4 , 225 বাইট, স্কোর = 241

সম্ভবত আরও কিছু গল্ফযোগ্য (সম্ভবত "গা-মি-সিএ" অঞ্চলে?), তবে সুইফ্ট প্রায়শই ব্যবহৃত হয় না (সম্ভবত কোনও কারণে, সম্ভবত।)

func b(i:String){print(i=="Titan" ?2575:["Su":6963,"Ju":699,"Sa":582,"Ur":253,"Ne":246,"Ea":63,"Ve":60,"Ma":33,"Ga":26,"Me":24,"Ca":24,"Io":18,"Mo":17,"Eu":16,"Tr":14,"Pl":12,"Er":12,"Ha":8,"Ti":8][String(i.prefix(2))]!*100)}

এবং ungolfed

func size(ofAstralObject object: String) {
  let objectToRadius = // Map size/100 of all objects to the first two chars
   ["Su":6963,
    "Ju":699,
    "Sa":582,
    "Ur":253,
    "Ne":246,
    "Ea":63,
    "Ve":60,
    "Ma":33,
    "Ga":26,
    "Me":24,
    "Ca":24,
    "Io":18,
    "Mo":17,
    "Eu":16,
    "Tr":14,
    "Pl":12,
    "Er":12,
    "Ha":8,
    "Ti":8] // Ti is Titania, while Titan is treated differently

  print(object == "Titan" ? 
    2575 : // If "Titan", print the exact size
    objectToRadius[String(i.prefix(2))]!*100 // get the size from the map and multiply by 100
  )
}

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

আমি মানচিত্রটির জন্য বিভিন্ন "কী আকারের" চেষ্টা করেছি, তবে অবশ্যই 1 i=="Titan" ?2575:টির অনেকগুলি সংঘর্ষ রয়েছে এবং তিনটি অক্ষর ব্যবহার করা আমাকে 17 টি অক্ষর দেয় না , যেহেতু পরিচালনা করতে "Io" আছে (এবং এটি 3 টিরও বেশি অক্ষর গ্রহণ করবে, আমি মনে করি).


1

জাভাস্ক্রিপ্ট (ES6), 152 বাইট, স্কোর = 163

ঠিক আছে, এটি একটি দুর্দান্ত মান সমাধান তবে আমি চ্যালেঞ্জটি উপভোগ করেছি!

s=>s=='Titan'?2575:[6963,699,582,254,246,64,60,34,26,24,24,18,17,16,14,12,12,8,8]["SuJuSaUrNeEaVeMaGaMeCaIoMoEuTrPlErHaTi".match(s[0]+s[1]).index/2]*100

আমার স্কোর:

Max. penalty ratio = 1.07068 for Triton
Score = ceil(152 x 1.07068) = 163

অনলাইনে চেষ্টা করে দেখুন!


1

মিথ্যা , 152 বাইট, স্কোর = 563

[911*.]^$0\[~][1+^]#$$2=\$4=\8=||[2 0!]?$3=[764 0!]?$5=[\$$69=\86=|$[6\]?~[2]?0!]?$6=[\$$83=\85=|$[46\]?~[$72=$[1\]?~[2]?]?0!]?$7=[\$84=$[1\]?~[52]?0!]?

শব্দের দৈর্ঘ্য এবং প্রথম অক্ষর ব্যবহার করে অলস উত্তর তবে আমার অজুহাতটি আমি একটি অদ্ভুত ভাষা ব্যবহার করছি

এটি অনলাইন চেষ্টা করুন! (কোডটি পেস্ট করুন, হিট শো দিন এবং তারপরে রান করুন)

[911*.]          {defines a function that multiplies a number by 911 and then prints it}
^$0\[~][1+^]#    {counts the length of the name as it's input, also records the first char}
$$2=\$4=\8=||[1 0!]?  {if the name is 2, 4, or 8 chars long print 911*2 (0! calls the function)}
$3=[764 0!]?          {if name is 3 long print 911*764}
$5=[\$$69=\86=|$[6\]?~[2]?0!]? {5 long? print 911*6 if it starts with E or V, otherwise *2}
$6=[\$$83=\85=|$[46\]?~[       {6 long? print 911*46 if it starts with S or U, otherwise:}
    $72=$[1\]?~[2]?            {if name starts with H print 911*1 else *2
]?0!]?
$7=[\$84=$[1\]?~[26]?0!]?      {7 long? print 1822*1 if it starts with NT otherwise *26 (for jupiter}

আমার ফলাফল:

Sun       : 696004.00 penalty ratio = (696342.00 / 696004.00 )² = 1.00097
Jupiter   : 47372.00  penalty ratio = (69911.00  / 47372.00  )² = 2.17795
Saturn    : 41906.00  penalty ratio = (58232.00  / 41906.00  )² = 1.93095
Uranus    : 41906.00  penalty ratio = (41906.00  / 25362.00  )² = 2.73014
Neptune   : 47372.00  penalty ratio = (47372.00  / 24622.00  )² = 3.70166
Earth     : 5466.00   penalty ratio = (6371.00   / 5466.00   )² = 1.35855
Venus     : 5466.00   penalty ratio = (6052.00   / 5466.00   )² = 1.22591
Mars      : 1822.00   penalty ratio = (3390.00   / 1822.00   )² = 3.46181
Ganymede  : 1822.00   penalty ratio = (2634.00   / 1822.00   )² = 2.08994
Titan     : 1822.00   penalty ratio = (2575.00   / 1822.00   )² = 1.99737
Mercury   : 1822.00   penalty ratio = (2440.00   / 1822.00   )² = 1.79342
Callisto  : 1822.00   penalty ratio = (2410.00   / 1822.00   )² = 1.74959
Io        : 1822.00   penalty ratio = (1822.00   / 1822.00   )² = 1.00000
Moon      : 1822.00   penalty ratio = (1822.00   / 1737.00   )² = 1.10026
Europa    : 1822.00   penalty ratio = (1822.00   / 1561.00   )² = 1.36236
Triton    : 1822.00   penalty ratio = (1822.00   / 1353.00   )² = 1.81343
Pluto     : 1822.00   penalty ratio = (1822.00   / 1186.00   )² = 2.36008
Eris      : 1822.00   penalty ratio = (1822.00   / 1163.00   )² = 2.45435
Haumea    : 911.00    penalty ratio = (911.00    / 816.00    )² = 1.24640
Titania   : 911.00    penalty ratio = (911.00    / 788.00    )² = 1.33655

Max. penalty ratio = 3.70166 for Neptune
Score = ceil(152 x 3.70166) = 563

1634

আমি এটি 1822 এর অর্ধেক (911) ব্যবহারের পরিবর্তে আপডেট করেছিলাম আমি এর পরিবর্তে আমি হাউমিয়ার জন্য একটি বিশেষ কেস তৈরি করতে পারি, সুতরাং এই পরামর্শটি আর কার্যকর হয় না। আমি 817 (1634 এর অর্ধেক) ব্যবহার করার চেষ্টা করেছি তবে এটি ভাল ছিল না। আপনি যদি নিজের যাদুতে কাজ করতে চান এবং নতুন সর্বাধিক অনুকূল নম্বরটি নির্দ্বিধায় দেখতে চান।
Terjerber

1

সি (জিসিসি) , 118 বাইট, স্কোর = 135

i;f(char*s){i=exp((strchr("(~?_q#m#.(`(=*2,r-v.h2z2p3d3j6>Qb>a?{Qx]",(*s^s[1]*4)+(strlen(s)!=5)&127|32)[1]+55)/13.5);}

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

স্কোরিং

ভগ্নস্বাস্থ্য শিঠ্ট

ওষুধের নামটি ভারী প্রক্রিয়াটির মাধ্যমে একক-অক্ষর হ্যাশে রূপান্তরিত হয়

(((*s ^ s[1] << 2) + (strlen(s) != 5)) & 127) | 32

যার ফোলাটি "টাইটান" / "টাইটানিয়া" কে মূল অপরাধী হিসাবে চিহ্নিত করে। হ্যাশের শেষ চরিত্রটি অন্তর্ভুক্ত করে বিবেচনা করা হয়েছিল, তবে এর জন্য এখনও একটি প্রয়োজন requiresstrlen() সি ইন করতে হবে। হ্যাশ অক্ষরের প্রথম উপস্থিতি হ্যাশ / ডেটা স্ট্রিংয়ে অনুসন্ধান করা হয়েছে। যখন পাওয়া যায়, পরবর্তী অক্ষরটি নেওয়া হয় এবং প্রশ্নের মধ্যে থাকা অবজেক্টের ব্যাসার্ধের আনুমানিক ব্যবহার করতে ব্যবহৃত হয়।

ডেটা অক্ষরটি ব্যাসার্ধের স্থানান্তরিত, পরিমিত আকারের প্রাকৃতিক লোগারিদম ধারণ করে। এর মতো উত্পন্ন:

for (int i = 0; i < 20; i++)
    data[i] = log(radii[i]) * 13.5 - 55;

স্কেলটি অত্যন্ত বৈজ্ঞানিক ট্রায়াল-অ্যান্ড-ত্রুটির মাধ্যমে এবং ব্যাকস্ল্যাশগুলি এড়িয়ে গিয়ে মুদ্রণযোগ্য ASCII সীমার মধ্যে মান আনার জন্য স্থান পরিবর্তন করা হয়েছিল। কিছু হ্যাশ / ডেটা সংঘর্ষের কারণে স্ট্রিংগুলিতে কিছু বস্তুর পুনঃব্যবস্থা প্রয়োজনীয় ছিল।

i;                                      Return value
f(char*s){                              s is object name
    i=                                  Implicit return
    exp(                                Raise e to some power
        (
            strchr(                     Find hash
                "...",                  Hash/data string
                (*s^s[1]*4)+            Calculate...
                (strlen(s)!=5)&127|32   ...hash
            )
            [1]                         Char following hash holds the power
            +55                         Shift it
        )/13.5                          Scale it
    );                                  Use it
}                                       Exit

0

পাইথন 2 , 89 বাইট, স্কোর = 234

lambda(p):39**4/'zzuSJJaSrUNNrEnVsMeGtTMMoCoInMuErTuPsEaHTT'.find(p[7%len(p)]+p[0])**2.18

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

পোস্ট করা বেশিরভাগ উত্তরগুলিতে "এনকোড / ডিকোড" কৌশল ব্যবহৃত হয়েছে বলে মনে হয়। আমি একটি সাধারণ সমীকরণ ব্যবহার করে আকাশের দেহের ব্যাস অনুমান করে কতটা ভাল করতে পারি তা অবাক করেছিলাম। এটি একটি মজাদার অনুশীলন হয়েছে, তবে পরিমিতরূপে বাইট সাশ্রয়টি নির্ভুলতা জরিমানার চেয়ে বেশি are

এই সমাধানের মূলটি হল অনুমানের সমীকরণ:

Radius = 39**4/x**2.18

যেখানে এক্স শরীরের ব্যাসার্ধের দ্বিগুণ র‌্যাঙ্ক ক্রম।

আমি @ এরিক আউটগলফারের পাইথন 2 সমাধানটির একটি পরিবর্তন ব্যবহার করে ইনপুট স্ট্রিংয়ের ভিত্তিতে x এর মান উত্পন্ন করি। আমি [1..20] এর পরিবর্তে [2..40] এর সাথে কাজ করার জন্য আমার সমীকরণগুলি পুনরায় টেস্ট করে তার কোডে কয়েকটি বাইট সংরক্ষণ করেছি।

র‌্যাঙ্ক অর্ডার উত্পন্ন করার কোডটি পুরো দ্রবণের বাইটের 2/3 এরও বেশি সময় নেয়। কারও কাছে যদি র‌্যাঙ্কগুলি উত্পন্ন করার আরও কমপ্যাক্ট উপায় থাকে তবে এই সমাধানটি আরও ছোট করা যেতে পারে। যথার্থ পেনাল্টির কারণে (প্রায় ২.6), স্কোরটি কিছুটা উন্নতি করতে পারে।

সমীকরণ তৈরি করা হচ্ছে

আমি প্রতিটি র‌্যাঙ্কের উপর ভিত্তি করে তার আকারের আকার নির্ধারণের জন্য সাধারণ সমীকরণগুলি অনুসন্ধান করার জন্য পরিসংখ্যানগত পদ্ধতিগুলি ব্যবহার করি। @ লিভেল রিভার সেন্টের রুবি সমাধান এবং সাধারণীকরণের অন্তর্দৃষ্টি অনুসরণ করার অংশে আমি ফর্মের সমীকরণগুলিতে স্থির হয়েছি:

Radius = A/(Rank)**B

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

উপরের সমীকরণে ক এর আনুমানিক মান সাতটি অঙ্কের, তাই আমি কয়েকটা বাইট সংরক্ষণ করার জন্য একটি সাধারণ অভিব্যক্তিটি অনুসন্ধান করেছিলাম। আমি ফর্মটি প্রকাশ করতে চেয়েছি

x**y

দুই অঙ্কের x এবং 1 ডিজিট y এর জন্য (মোট পাঁচটি বাইটের জন্য, দুটি বাইট সংরক্ষণ করে বা জরিমানা প্রদত্ত প্রায় পাঁচ পয়েন্ট) যা এটির সর্বোত্তম মানের চেয়ে খুব বেশি আলাদা ছিল না এবং জরিমানাটি খুব বেশি বাড়িয়ে দেয় না এবং শেষ হয় (অন্যথায় অবর্ণনীয়) সাথে আপ:

39**4

স্কোরিং অ্যালগরিদম সত্যিই এই পদ্ধতিটিকে ক্ষতিগ্রস্থ করেছে বলে মনে হচ্ছে - আমি অনুমান করি যে এটি L2 বা L1 এরর এর ত্রুটির মাধ্যমে আরও ভাল করবে। যদিও আপনি যাইহোক নাম সংরক্ষণ করে বাইট নষ্ট করছেন।
lirtosiast

@lirtosiast উভয় পয়েন্টে সম্মত হন। মজার বিষয় হল, এই স্কোরিং অ্যালগরিদমের অধীনেও কমপক্ষে স্কোয়াস ফিট (L2 আদর্শ) বেশ ভাল। আমার পাওয়া সেরা সমীকরণের চেয়ে এটিতে প্রায় 5% খারাপ জরিমানা রয়েছে। নামগুলি সংরক্ষণ করার সময়: আমি পাঠ্য ইনপুট থেকে সংখ্যার আরোহী ক্রম উত্পন্ন করার জন্য আরও কমপ্যাক্ট উপায় বের করতে পারি না। অন্যান্য উত্তরে গৃহীত মডুলো পাটিগণিত পদ্ধতির ক্রমটি এলোমেলোভাবে করা হয়।
সিসিবি 60

0

টিআই-বেসিক (টিআই -৪৪), ২৮৫ বাইট, স্কোর = ২৮৫

Ans→Str1:{696342,69911,58232,25362,24622,6371,6052,3390,2634,2575,2440,2410,1822,1737,1561,1353,1186,1163,816,788:Ans(-int(-.125inString("SUN     JUPITER SATURN  URANUS  NEPTUNE EARTH   VENUS   MARS    GANYMEDETITAN   MERCURY CALLISTOIO      MOON    EUROPA  TRITON  PLUTO   ERIS    HAUMEA  TITANIA",Str1

একটি সহজ "তালিকাতে স্ট্রিং ইনডেক্স" প্রোগ্রাম। আরও গল্ফ করা যেতে পারে।

ইনপুট Ansসম্পূর্ণ বড় হাতের অক্ষরের নামের মধ্যে রয়েছে।
আউটপুট ভিতরে রয়েছে Ansএবং স্বয়ংক্রিয়ভাবে মুদ্রিত হয়।

উদাহরণ:

"MOON
MOON
prgmCDGFC
            1737
"IO
IO
prgmCDGFC
            1822

ব্যাখ্যা:
(রেডিয়ির তালিকা এবং নামের স্ট্রিং সংক্ষিপ্ততার জন্য সংক্ষিপ্ত করা হয়েছে ...list বাকী তালিকা / স্ট্রিংটি নির্দেশ করতে ব্যবহৃত হয়))

Ans→Str1:{696342,69911,5...:Ans(-int(-.125inString("SUN     JU...",Str1  ;complete source

Ans→Str1                                                                 ;store the input string
                                                                         ; in "Str1"
         {696342,69911,5...                                              ;generate the list of
                                                                         ; radii and leave it in
                                                                         ; "Ans"
                                          inString("SUM     JU...",Str1  ;get the index of the
                                                                         ; input string in the
                                                                         ; name string
                                      .125                               ;multiply the index by 1/8
                                -int(-                                   ;then round it towards
                                                                         ; positive infinity
                            Ans(                                         ;use the result as the
                                                                         ; index of the radii list

ভিজ্যুয়াল মডেল:

Ans→Str1                                            ;Ans = "MOON"
                                                    ;Str1 = "MOON"

{696342,69911,5...                                  ;Ans = {696232 69911 ... }
                                                    ;Str1 = "MOON"

inString("SUN      JU...",Str1                      ;Ans = {696232 69911 ... }
                                                    ;Str1 = "MOON"
                                                    ;current evaluation: 105

.125                                                ;Ans = {696232 69911 ... }
                                                    ;current evaluation: 13.125

-int(-                                              ;Ans = {696232 69911 ... }
                                                    ;current evaluation: 14

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