ব্যাপ্তি পরামিতি পুনরুদ্ধার


11

বিবরণ

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

উদাহরণস্বরূপ, নিম্নলিখিত ফাংশন (পাইথন 3 এ) আপনার প্রোগ্রামের জন্য একটি ইনপুট তৈরি করবে:

from numpy import arange, floor
def floored_range(A, B, C):
    return list(floor(arange(A, B, C)))

আপনার প্রোগ্রামের আউটপুটটি মূল ডেটার একটি বৈধ অনুমান হওয়া উচিত। এখানে, বৈধ অনুমানের অর্থ হ'ল মেঝেযুক্ত হওয়ার সময় এটি অবশ্যই ইনপুটটির সাথে মিলবে এবং এটি অবশ্যই একটি পরিসীমা ফাংশনের একটি সম্ভাব্য আউটপুট হতে হবে (যেমন, যখন গ্রাফড করা উচিত তবে এটি অবশ্যই পুরোপুরি সরলরেখা তৈরি করবে)।

উদাহরণ

Input: [1,2,3,4]  
Output: [1,2,3,4]  

Input: [1,2,3,4]  
Output: [1.9,2.7,3.5,4.3]  

Input: [1,2,3,4,5,5]  
Output: [1.9,2.7,3.5,4.3,5.1,5.9]  

Input: [1,1,2,2,3,3,4,4]  
Output: [1,1.5,2,2.5,3,3.5,4,4.5]  

Input: [1,1,2,3,3,4]  
Output: [1,1.7,2.4,3.1,3.8,4.5]

Input: [56, 54, 52, 50, 48, 45, 43, 41, 39, 37, 35, 32, 30, 28, 26, 24, 22, 19, 17, 15, 13, 11]
Output: [56.7  , 54.541, 52.382, 50.223, 48.064, 45.905, 43.746, 41.587,
   39.428, 37.269, 35.11 , 32.951, 30.792, 28.633, 26.474, 24.315,
   22.156, 19.997, 17.838, 15.679, 13.52 , 11.361]

দশমিক হওয়ার জন্য আপনার কমপক্ষে আউটপুট মানের একটি হওয়া উচিত, অন্যথায় আমরা প্রতিবার ইনপুটটি ফিরিয়ে দিতে পারি।
এলোমেলো লোক 13

@ থেরানডমগুয় যখন
আর্নাউল্ড

ওহহহ। আমি এটা দেখতে পেলাম না। এটি জিনিস মশলা করা উচিত।
এলোমেলো লোক 13

1
প্রশ্নের সূত্র ব্যবহার করে A, B, Cযে কোনও তিনটি ফ্লোট হতে পারে। ইনপুট মেঝেযুক্ত পরিসীমা উদাহরণস্বরূপ, শুরু হতে পারে এবং 56.7শেষ হতে পারে 10.2এবং এর ধাপ আকার ধারণ করতে পারে -2.159। কেবলমাত্র গুরুত্বপূর্ণ বিষয়গুলি হ'ল আপনি যে পয়েন্টগুলি আউটপুট দেন, তল করা হয় তা ঠিক ইনপুটটির সাথে মেলে। আমি এটি দেখিয়ে একটি উদাহরণ যুক্ত করেছি।
কাইল জি

2
@ রড আমি এটি দেখতে পেয়েছি, মূল দ্বিতীয় পরীক্ষার মামলার মূল বিন্দুটি বোঝানো হয়েছিল যে একই ইনপুটটির জন্য কয়েকটি আউটপুট সম্ভব
লুইস মেন্ডো

উত্তর:


3

অক্টাভা , 82 বাইট

function y=f(x)
while any(floor(y=linspace(x(1)+rand,x(end)+rand,numel(x)))-x),end

চলমান সময় অ-নিরস্তকর, তবে কোডটি সীমাবদ্ধতার সাথে শেষ হয় সম্ভাব্যতা 1 দিয়ে।

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

ব্যাখ্যা

কোড একটি সংজ্ঞায়িত functionএর xযে আউটপুট y। ফাংশন একটি whileলুপ গঠিত ।

প্রতিটি পুনরাবৃত্তিতে, numel(x)রৈখিক ব্যবধানযুক্ত মানগুলির সঠিক পরিমাণ ( ) উত্পন্ন হয় ( linspace), শুরু হয় x(1)+randএবং শেষে হয় x(end)+rand। ফাংশনটিতে এই দুটি কলগুলি এর randমধ্যে প্রাথমিক এবং চূড়ান্ত মানগুলিতে প্রয়োগ করা হয় 0এবং এর মধ্যে এলোমেলো অফসেট দেয় ।1x

লুপটি এড রেজাল্টের সাথে সম্পর্কিত প্রবেশাধিকারের থেকে পৃথক হওয়া anyপর্যন্ত দীর্ঘস্থায়ী হয় ।floor-x


78 বাইট ব্যবহার a!=bপরিবর্তেany(a-b)
ovs

@ovs দুর্ভাগ্যবশত এটি কাজ করে না, কারণ কিছু আউটপুট এন্ট্রি সমান হওয়ার সাথে সাথে এটি বন্ধ হয়ে যায় , যখন সমস্ত কিছু হয় না। আপনার লিঙ্কে দ্বিতীয় আউটপুটটির দ্বিতীয় এন্ট্রি দেখুন
লুইস মেন্ডো

(কারণ এটি প্রমাণযোগ্য যে এলোমেলোভাবে বেছে নেওয়া লাইনের বৈধ হওয়ার সম্ভাবনাটি ননজারো)
ব্যবহারকারী 202729


3

আর , 86 বাইট

function(n){while(any(n-(x=seq(n[1]+runif(1),tail(n,1)+runif(1),l=sum(n|1)))%/%1))0;x}

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

লুই মেন্ডোর উত্তরটির আর বন্দর ; এটি বাধ্যতামূলক করার কারণে বেশ কয়েকটি সতর্কতা জারি anyকরে logicalতবে এগুলি উপেক্ষা করা যেতে পারে।


1

পাইথন 3 , 168 বাইট

def f(l):r=range(len(l));g=lambda n:[(l[b]+n-l[a])/(b-a)for a in r for b in r if b>a]or[0];s=(max(g(-1))+min(g(1)))/2;m=min(a*s-l[a]for a in r);return[a*s-m for a in r]

এটি অনলাইন চেষ্টা করুন! ব্যাখ্যা:: মিথ্যাচারের জন্য এবং অস্তিত্বের সীমা gছাড়িয়ে সীমাবদ্ধ মানগুলির গণনা করে । তারপরে গড়ের জন্য ব্যবহারযোগ্য মান দেওয়ার জন্য নেওয়া হয় এবং তারপরে সর্বনিম্ন সম্ভাব্য ব্যাপ্তি তৈরি করা হয়।CABC


0

জেলি , 31 বাইট

ṾṚ”.;V×LḶ$}+©1ị$}IEȧḞ⁼¥ʋ
0ç1#®ḷ

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

সতর্কতা : ভাসমান-পয়েন্টের অসম্পূর্ণতা।


1
[1,2,3,4,5,5]টিআইওতে 30 সেকেন্ডের জন্য শেষ হবে না । কিছু ব্যাখ্যা দয়া করে?
ব্যবহারকারী 202729

@ ব্যবহারকারী202729 সম্ভবত ভাসমান-পয়েন্টের ভুল বিধিগুলি। আমি এটা দেখে নেব.
এরিক দি আউটগল্ফার

0

জাভাস্ক্রিপ্ট (নোড.জেএস) , ইনপুট দৈর্ঘ্য> 1 অনুমান করে 94 বাইট 1

f=x=>(t=x.map(_=>a+=b,b=x[1]+(c=Math.random)(a=x[0]+c())-a,a-=b)).map(Math.floor)+''==x?t:f(x)

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

97 বাইট

f=x=>(t=x.map(_=>a+=b,b=x[1]+(c=Math.random)(a=x[0]+c())-a||0,a-=b)).map(Math.floor)+''==x?t:f(x)


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