ভোট অনুপাতের উত্তর


18

এই প্রশ্নটি আমাকে এই মত দিয়ে অনুপ্রাণিত করে যে আমি সমান ভোট এবং উত্তর সংখ্যার সাথে প্রশ্ন দেখতে পছন্দ করি ...


সুতরাং এখানে আপনার জন্য একটি সহজ চ্যালেঞ্জ:

চ্যালেঞ্জ:

একটি codegolf.stackexchangeপ্রশ্ন আইডি দেওয়া, প্রশ্নের ভোট এবং উত্তরগুলির সংখ্যার (যেমন votes/answers) এর মধ্যে অনুপাত আউটপুট করুন ।

সুনির্দিষ্ট:

  • আপনি ইন্টারনেট অ্যাক্সেস করতে পারেন তবে আপনি কেবল stackexchange.comতার বিভিন্ন উপ-ডোমেন অ্যাক্সেস করতে পারেন । আপনি ইউআরএল শর্টনার ব্যবহার করতে পারবেন না।

  • আপনি কোনও স্ট্যান্ডার্ড ফর্ম্যাটে ইনপুট নিতে এবং আউটপুট দিতে পারেন।

  • দশমিকের পরে কমপক্ষে 4 {নির্ভুল} অঙ্ক সহ আপনাকে দশকে দশমিক সংখ্যা হিসাবে অনুপাত আউটপুট করতে হবে (শূন্যগুলি কেটে যেতে পারে)।

  • যদি প্রশ্নটির উত্তর না দেওয়া হয় তবে আপনার প্রোগ্রামটি অপরিজ্ঞাত আচরণ তৈরি করতে পারে।

  • scoreআপনার প্রশ্নের উত্তরটি ভোট গণনা হিসাবে ব্যবহার করা উচিত , এখানে দেখুন

এটি , প্রতিটি ভাষার ন্যূনতম বাইটগুলি সেই ভাষার জন্য জয়ী হয়, সর্বনিম্ন সামগ্রিকভাবে কমপক্ষে বাইট জিততে পারে।

এখানে একটি নমুনা প্রোগ্রাম রয়েছে Python 3 + requests:

import requests
import json

id = input("id> ")
url = "https://api.stackexchange.com/2.2/questions/" + id + "?site=codegolf"
content = requests.get(url).text
question = json.loads(content)["items"][0]

print(float(question["score"]) / question["answer_count"])

শূন্য হলেও ডেসিনাল পয়েন্টের পরে অনুপাতের কি কমপক্ষে 4 দশমিক অঙ্কের প্রয়োজন? যেমন 41/4 = 10.25 বা 10.2500
pizzapants184

@ পিজ্জাপ্যান্টস 184 10.25 ঠিক আছে
ফিনিক্স

চ্যালেঞ্জের উত্তর না হলে কী হবে? তাহলে অনুপাত কি অসীম হবে?
মিঃ এক্সকোডার

আপনি কি প্রশ্নটিতে স্কোর বা মোট ভোট বোঝাতে চান ?
অ্যাডমবর্কবার্ক

@ মিঃ এক্সকোডার সেই ক্ষেত্রে, অপরিজ্ঞাত আচরণটি ঠিক আছে
ফিনিক্স

উত্তর:


10

জাভাস্ক্রিপ্ট (ES6), 103 102 বাইট

এর মূল স্তর থেকে চালানো দরকার api.stackexchange.com। ফলাফল Promiseসম্বলিত একটি বস্তু প্রদান করে।

n=>fetch(`questions/${n}?site=codegolf`).then(r=>r.json()).then(({items:[j]})=>j.score/j.answer_count)

যদি প্রয়োজন হয় যে এটি কোনও নির্দিষ্ট পাথ থেকে চালানো যেতে পারে তবে তা 92% বাইট হয়ে যায় ।

n=>fetch(n+`?site=codegolf`).then(r=>r.json()).then(({items:[j]})=>j.score/j.answer_count)

চেষ্টা করে দেখুন

এটি এখানে কাজ করতে সক্ষম করতে পূর্ণ URL যুক্ত করা হয়েছে।

f=
n=>fetch(`//api.stackexchange.com/questions/${n}?site=codegolf`).then(r=>r.json()).then(({items:[j]})=>j.score/j.answer_count)
onchange=_=>f(+i.value).then(t=>o.innerText=t)
<input id=i type=number><pre id=o>


7
বাইট সংরক্ষণ করতে এর i=>(j=i.items[0])সাথে প্রতিস্থাপন করুন ({items:[j]})=>j
kamoroso94

দুর্দান্ত কৌশল, ধন্যবাদ, @ কামোরসো94। আমি এটা মনে রাখতে হবে।
শেগি

8

স্ট্রাটোস , 40 বাইট

-4 বাইট শ্যাগি ধন্যবাদ

f"¹⁵s/%²"r"⁷s"@0
{s"answer_⁰"
⁰s"score"/

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

স্ট্র্যাটোস প্রশ্নগুলিতে বিশেষজ্ঞ।

ব্যাখ্যা:

কোডটি নিম্নলিখিতটির সাথে সংক্রামিত হয়:

f"api.stackexchange.com/questions/%?site=codegolf"r"items"@0
{s"answer_count"
⁰s"score"/

প্রথম লাইন থেকে শুরু করে, স্ট্রেটস ডায়াড থেকে ডান বামে মূল্যায়ন করে।

f"api.stackexchange.com/questions/%?site=codegolf"r"items"@0মানে হলো "যুগল মূল্যায়ন @বাঁদিকের আর্গুমেন্ট সহ f"api.stackexchange.com/questions/%?site=codegolf"r"items"এবং ডানদিকের যুক্তি 0@পায় n তম একটি JSON- অ্যারের উপাদান।

মূল্যায়নের জন্য f"api.stackexchange.com/questions/%?site=codegolf"r"items", আমরা পরবর্তী rবাম-হাতের যুক্তি f"api.stackexchange.com/questions/%?site=codegolf"এবং ডান-হাত যুক্তি দিয়ে ডায়াডকে মূল্যায়ন করব "items"rনির্দিষ্ট নাম দিয়ে JSON অ্যারে পায়।

এর পরে, আমাদের মূল্যায়ন করতে হবে f"api.stackexchange.com/questions/%?site=codegolf"। প্রথমত, %ইনপুট দিয়ে প্রতিস্থাপন করা হয়। fএর অর্থ "এই ইউআরএলের বিষয়বস্তু পান"

এখন, আমরা দ্বিতীয় লাইনে যেতে পারি নতুন লাইনের অর্থ "আমরা অন্তর্ভুক্ত যুক্তি তালিকায় যা যা মূল্যায়ন করেছি তা যুক্ত করুন"

এর পরে, আমরা মূল্যায়ন sসঙ্গে (ক নির্দিষ্ট নাম দিয়ে JSON বস্তু স্ট্রিং GET) {এবং "answer_count"{অন্তর্নিহিত আর্গুমেন্ট স্ট্যাক থেকে একটি উপাদান নেয়, এটিকে ফেরত দেয় এবং আবার স্ট্যাকটিতে যোগ করে।

তারপরে, আমরা অন্তর্ভুক্ত যুক্তি স্ট্যাকের সাথে এর আউটপুট যুক্ত করি।

মূল্যায়নের জন্য ⁰s"score"/, আমরা ডায়াড /(বিভাজন) প্রয়োগ করছি ⁰s"score"এবং অন্তর্নিহিত আর্গুমেন্ট স্ট্যাকের একটি উপাদান।

মূল্যায়নের জন্য ⁰s"score"আমরা "score"জড়িত আর্গুমেন্ট স্ট্যাকের 0 তম উপাদান থেকে JSON অবজেক্ট থেকে স্ট্রিং পাচ্ছি।

এখন, এর আউটপুট /মুদ্রিত হয় এবং প্রোগ্রামটি সমাপ্ত হয়।


এপিআই সংস্করণ ( 2.2/) খনন করে 4 বাইট সংরক্ষণ করুন ।
শেগি

1
@ শেগি বুঝতে পারলেন না যে API সংস্করণটির প্রয়োজন নেই, ধন্যবাদ। 44
ছাড়িয়ে যাচ্ছেন না

5

আর + জসনলাইট , 111 বাইট

function(n,x=jsonlite::fromJSON(sprintf('http://api.stackexchange.com/questions/%s?site=codegolf',n))$i)x$s/x$a

আর-ফিডাল লিঙ্ক

jsonlite একটি দুর্দান্ত JSON <-> আর রূপান্তর গ্রন্থাগার যা বেশ ভাল কাজ করে। আমি আর এর জন্য জেএসএন পার্সার গল্ফ করতে যাচ্ছিলাম না ...


httpপ্রোটোকল ব্যবহার করে আপনি একটি বাইট সংরক্ষণ করতে পারেন । এছাড়াও, আমি অনুমান করছি যে 142729সেখানে হার্ডকোড করা উচিত নয়?
শেগি

@ শেগি ভাল কল, আপনাকে ধন্যবাদ। আমি খুব দ্রুত অনুলিপি করে আটকালাম।
জিউসেপে

4

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

এটি খুব বিরল যে এসকিউএল অন্য ভাষাগুলিকে (বেশিরভাগ) বীট করতে পারে! API টির URL এর পরিবর্তে আমি সরাসরি স্ট্যাক এক্সচেঞ্জ ডেটা এক্সপ্লোরারে গিয়েছিলাম :

SELECT 1.0*Score/AnswerCount FROM Posts WHERE Id=##i##

##i##মান এসকিউএল, ইনপুট জন্য প্রম্পট করতে স্ট্যাক এক্সচেঞ্জ ফর্ম্যাটটি যে নয়।

নোট করুন যে ডেটা এক্সপ্লোরার উত্সটি কেবলমাত্র রাতের প্রতি আপডেট হয়, সুতরাং মানগুলি বর্তমান হয় না।

কোন উত্তর না দিয়ে প্রশ্নগুলিতে শূন্য ত্রুটি দ্বারা একটি বিভাজক নিক্ষেপ করবে।

সম্পাদনা : সংরক্ষিত 10 একটি সুনির্দিষ্ট পরিবর্তে 1.0 দ্বারা গুন দ্বারা বাইট CONVERTথেকে FLOAT


অন্যকে পরাজিত করতে পারে তবে সমস্ত নয় :)
Okx

ওহে ম্যান, আমার আরও একটি সমাধান ছিল তবে আমি স্কুলে ছিলাম তাই আমি কখনই এটি পোস্ট করিনি ... আমার উত্তরটিও কি আপনার মতো? আমার কি মুছে ফেলা উচিত?
সম্পূর্ণরূপে

@ ক্রিভেরিটিম হা, হ্যাঁ দেখতে অনেকটা একই ক্যোয়ারির মতো দেখাচ্ছে, যদিও আমি আরও 10 টি বাইট সংরক্ষণের জন্য আমার সম্পাদনা করেছি।
ব্র্যাডিসি

@ ব্র্যাডিসি আমি আমার উত্তরটি একটি গণিতের উত্তর এলএল এ সম্পাদনা করেছি।
সম্পূর্ণরূপে

3

পাওয়ারশেল , 130 বাইট

($a=(ConvertFrom-Json(iwr("http://api.stackexchange.com/questions/"+$args+"?site=codegolf")).content).items).score/$a.answer_count

সঞ্চালিত একটি Invoke- WEB RURL টি বিরুদ্ধে equest, পায় .content, উহার একটি করে ConvertFrom-Jsonযে সামগ্রী, এবং পায় .itemsযে JSON সামগ্রী করুন। যে স্টোরগুলিকে $aঅঙ্ক .scoreহিসাবে টেনে নিয়ে যায় । হর হয় .answer_count। সেই মানটি পাইপলাইনে রেখে গেছে এবং আউটপুট অন্তর্ভুক্ত।

যদি প্রশ্নটি উত্তর না দেওয়া থাকে তবে এটিতে "শূন্যে ভাগ করুন" ত্রুটি টস করা উচিত


3

জাপট , 83 82 বাইট

এটি কীভাবে কার্যকর হবে তা দেখার চেষ্টা করে দেখতে চেয়েছিল, জাপট দেশীয়ভাবে এটি সম্পাদন করতে পারে না বলে দেখে। মূলত এই সব করছে evalএকটি সংকুচিত সংস্করণ ing আমার জাতীয় সমাধান । Japt হিসাবে হয় জাতীয় তারপর আমরা যে এই রুট স্তর থেকেই চলবে প্রয়োজন হতে পারে api.stackexchange.comএবং একটি ফিরতি Promiseবস্তুর ফলাফলের রয়েছে।

Ox`fet®("quÀËs/{U}?ÐÒ=¬¸golf").È(r=>r.js()).È(i=>(j=i.ems[0]).sÖ/j.s³r_Öt)
  • এটি দেখুন
  • এটি ব্যবহার করে দেখুন - এই সংস্করণে অতিরিক্ত বাইটগুলি //api.stackexchange.com/ইউআরএল অন্তর্ভুক্তির দ্বারা গণ্য করা হয় এবং এর console.logফলে আপনি বাস্তবে এটি কাজ করে দেখতে পারেন

1
o0 কেন আপনি কোডটিকে একটি লিঙ্ক তৈরি করেছেন? এমনকি এটি ব্যবহারকারীর স্ক্রিপ্টের বাইট কাউন্ট ডিসপ্লে লোল দিয়ে মেসেজ করে। i.imgur.com/SO2zgAy.png
18-15

2

গণিত, 124 বাইট tes

N@("score"/.(u="items"/.Import["http://api.stackexchange.com/questions/"<>#<>"?site=codegolf","JSON"]))/("answer_count"/.u)&

ম্যাথামেটিকায় একটি ডেটা টাইপ ডাকা হয় Ruleএবং এটি আমার থেকে হ্যাককে বিভ্রান্ত করে। : P: P


1

পাইথন 3 + অনুরোধ, 149 বাইট

-১ বাইট মিঃ এক্সকোডারকে ধন্যবাদ।

from requests import*
u=get('http://api.stackexchange.com/questions/%s?site=codegolf'%input()).json()['items'][0]
print(u['score']/u['answer_count'])

লিঙ্কটি পাইথন ২ এর সাথে বিটিডব্লিউ, এটি পাইথন 2 এবং পাইথন 3 (টিআইওতে) উভয়ই একটি ত্রুটি ফেলেছে।

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

আমি মনে করি যে (আপাতত) httpযথেষ্ট হয়।
মিঃ এক্সকোডার


0

পিএইচপি, 167 বাইট

<?$f=json_decode(gzdecode(file_get_contents('https://api.stackexchange.com/2.2/questions/'.$argv[1].'?site=codegolf')))->items[0];echo $f->score/$f->answer_count;

এটি দেখে টার্বো-ফাস্ট ক্র্যাক। একটি ফাইল হিসাবে সংরক্ষণ করুন এবং টার্মিনালে যেমন চালানো:

php -f file.php 143083

এটি হ্রাস করার উপায় হতে পারে।

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