ইনপুট এবং পরবর্তী সর্বোচ্চ বর্গের মধ্যে মানের সংখ্যা


9

ইনপুট হিসাবে ধনাত্মক বর্গ সংখ্যা দেওয়া হয়েছে। ইনপুট এবং পরবর্তী সর্বোচ্চ বর্গের মধ্যে মানের সংখ্যা আউটপুট করুন।

উদাহরণ

ইনপুট: 1

আউটপুট: 2

কারণ: 2 এবং 3 সংখ্যাটি পরের সর্বোচ্চ বর্গাকার 1 এবং 4 এর মধ্যে

ইনপুট: 4

আউটপুট: 4

কারণ: 5, 6, 7, 8 সংখ্যা 4 এবং 9 এর মধ্যে


1
আমাদের কী ধরণের ইনপুট মানগুলি সমর্থন করতে হবে?
মার্টিন ইন্ডার

16
আমি মনে করি যদি ইনপুটটি বর্গাকার না হত তবে এটি আরও আকর্ষণীয় হত।
xnor

1
@ এক্সনর হিন্সসাইট, আমি অবশ্যই তাতে সম্মত।
Shayne03

উত্তর:


8

জেলি , 2 বাইট

½Ḥ

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

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


1
ওহ আমি পুরো "ইনপুটটি একটি বর্গক্ষেত্র হবে" উফ্ মিস করেছি।
জোনাথন অ্যালান

1
@ জোনাথন অ্যালান আমাকেও অদ্ভুত স্পষ্ট আইএমও।
ডিজিটাল ট্রমা

এমন কোনও স্কোয়ার রয়েছে যা ভাসমান পয়েন্টে হুবহু উপস্থাপন করা যায় না?
ছড়িয়ে ছিটিয়ে

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

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

12

ব্রেন-ফ্লাক , 38 , 22 বাইট

{([[]](({})))}{}([]<>)

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

আমি এই উত্তর খুব গর্বিত। আইএমও, আমার অন্যতম সেরা মস্তিষ্ক-ফ্ল্যাঙ্ক গল্ফ।

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

অন্যান্য অনেক ব্যবহারকারী যেমন উল্লেখ করেছেন, উত্তরটি কেবল স্কয়ার্ট (এন) * 2 । তবে ব্রেইন-ফ্ল্যাঙ্কে বর্গক্ষেত্র গণনা করা খুব খুব অনিয়মিত ri যেহেতু আমরা জানি যে ইনপুটটি সর্বদা একটি বর্গক্ষেত্র হবে, আমরা অনুকূলিত করতে পারি। সুতরাং আমরা একটি লুপ লিখুন যে বিয়োগ

1, 3, 5, 7, 9...

ইনপুট থেকে এবং এটি কতবার চালিত তা ট্র্যাক করুন। এটি একবারে হিট হয়ে গেলে, উত্তরটি হ'ল আমরা সর্বনিম্ন শেষ সংখ্যাটি বিয়োগফলকে বাদ দিয়েছিলাম।

মূলত, আমি অন্য স্ট্যাকের দিকে একটি কাউন্টারকে ঠেলে দিয়েছিলাম। তবে, আমরা স্ট্যাকের উচ্চতা বাড়িয়ে মূল স্ট্যাকটিকে কাউন্টার হিসাবে ব্যবহার করতে পারি।

#While TOS (top of stack, e.g. input) != 0:
{

    #Push:
    (

      #The negative of the height of the stack (since we're subtracting)
      [[]]

      #Plus the TOS pushed twice. This is like incrementing a counter by two
      (({}))
    )

#Endwhile
}

#Pop one value off the main stack (or in other words, decrement our stack-counter)
{}

#And push the height of the stack onto the alternate stack
([]<>)

পাইথন-ওয়াই সিউডোকোডে এটি মূলত নিম্নলিখিত অ্যালগরিদম:

l = [input]
while l[-1] != 0:   #While the back of the list is nonzero
    old_len = len(l)
    l.append(l[-1])
    l.append(l[-1] - old_len)

l.pop()

print(len(l))

2
আমার মস্তিষ্কটি আক্ষরিকভাবে এটি সুন্দর কাজ করেছে।
যাদু অক্টোপাস উরন

9

গণিত, 8 বাইট

2Sqrt@#&

এটি অনলাইন চেষ্টা করুন! (গণিত ব্যবহার করে।)

মধ্যে পার্থক্য এন 2 এবং (ঢ + 1 টি) 2 সর্বদা 2n + 1 টি কিন্তু আমরা শুধু তাদের মধ্যে মান উভয় প্রান্ত, যা ব্যতীত চান 2n

2#^.5&যথাযথ প্রয়োজনীয়তার উপর নির্ভর করে এটি সম্ভাব্যভাবে ছোট করা যেতে পারে।


1
কিভাবে 2√ # এবং?
চ্যানোগ


2

ডিসি, ৫

?2*vp

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


পূর্বে আমি প্রশ্নটি ভুল করে পড়েছি। এই সংস্করণটি কোনও নিখুঁত স্কোয়ার নয়, কোনও ধনাত্মক পূর্ণসংখ্যার ইনপুট জন্য কাজ করে:

ডিসি, 12

?dv1+d*1-r-p

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


2

জেলি ,  7  6 বাইট

আমি "ইনপুটটি বর্গক্ষেত্র হবে" ক্যাভ্যাটটি মিস করেছি, তবে এটি সমস্ত অ-নেতিবাচক পূর্ণসংখ্যার জন্য কাজ করবে ... মার্টিন ইন্দর ইতিমধ্যে 2 বাইট সমাধান দিয়েছেন

½‘Ḟ²’_

গণনা ফিরিয়ে দেওয়ার এক একজাতীয় লিঙ্ক।

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



2

ব্রেন-ফ্লাক , 20 বাইট

ডিজেএমসিএমহেমের আশ্চর্যজনক (কিছুটা দীর্ঘতর আলাবাইট) উত্তরটি এখানে চিৎকার করুন

{({}()[({}()())])}{}

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

ব্যাখ্যা

এই কোডটি বর্গ সংখ্যা থেকে বিজোড় বৃদ্ধি দ্বারা গণনা করে কাজ করে। যেহেতু প্রতিটি বর্গটি একটানা বিজোড় সংখ্যার যোগফল হয় এটি 1/ 1/2 পদক্ষেপে 0 এ পৌঁছাবে । কৌতুক এখানে আমরা আসলে একটি আমাদের পদক্ষেপ ট্র্যাক রাখতে হয় এমনকি নম্বর এবং একটি স্ট্যাটিক ব্যবহার ()উপযুক্ত বিজোড় সংখ্যা থেকে এটি অফসেট করা হবে। যেহেতু উত্তরটি 2n 1/2 , সুতরাং এই সমান সংখ্যাটি আমাদের উত্তর হবে। সুতরাং আমরা 0 এ পৌঁছানোর পরে আমরা শূন্যটি সরিয়ে ফেলব এবং আমাদের উত্তরটি স্ট্যাকের উপর বসে আছে।



1

অক্টাভা , 25 10 বাইট

@(n)2*n^.5

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

মার্টিনের আরও ভাল পদ্ধতির ব্যবহার করে 15 বাইট সংরক্ষণ করা হয়েছে। পরিসীমা 2*sqrt(n)উপাদান নিয়ে গঠিত । ফাংশনটি ঠিক তেমনটি করে: ইনপুটটির মূলটির 2সাথে গুণ করে p


1

জেলি , 7 বাইট

½‘R²Ṫ_‘

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

ব্যাখ্যা:

½‘R²Ṫ_    Input:              40
½         Square root         6.32455532...
 ‘        Increment           7.32455532...
  R       Range               [1, 2, 3, 4, 5, 6, 7]
   ²      Square              [1, 4, 9, 16, 25, 36, 49]
    Ṫ     Tail                49
     _‘   Subtract input+1    8

বিটিডব্লিউ, ইনপুটটি সর্বদা একটি বর্গক্ষেত্র হবে।
মার্টিন ইন্ডার

1
@JonathanAllan ফিক্সড
ছিটান

@ মার্টিনএন্ডার আমি পুরোপুরি চ্যালেঞ্জটি ভুলভাবে লিখেছি, তারপরে ... আপনার উত্তরটি অনুলিপি না করার স্বার্থে (যেহেতু এটি কেন এখন কাজ করে তা স্পষ্টভাবে) আমি এটিকে ছেড়ে দেব।
ছড়িয়ে ছিটিয়ে




1

টিআই-বেসিক, 3 বাইট

2√(Ans

সহজ পদ্ধতির ...



1

++ , 22 20 বাইট যুক্ত করুন

+?
_
S
+1
^2
-1
-G
O

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

এটি কীভাবে কাজ করে তা আপনি জানতে চান? ভাল, ভয় নেই! আমি আপনাকে শিক্ষিত করার জন্য এখানে আছি!

+?   Add the input to x (the accumulator)
_    Store the input in the input list
S    Square root
+1   Add 1
^2   Square
-1   Subtract 1
-G   Subtract the input
O    Output as number

আমার মূল কিউবিআইসি উত্তরের জন্য আমার একই যুক্তি ছিল, তবে একটি ছোট উপায় আছে
স্টেইনবার্গ

1

এমএটিএল ( 8 7 বাইট)

আমি নিশ্চিত যে এটি উল্লেখযোগ্যভাবে হ্রাস করা যেতে পারে (সম্পাদনা করুন: লুইস ধন্যবাদ), তবে একটি নিষ্পাপ সমাধানটি হ'ল:

X^QUG-q

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

ব্যাখ্যা:

X^   % Take the square root of the input (an integer)
QU  % Square the next integer to find the next square
G-   % Subtract the input to find the difference
q    % Decrement solution by 1 to count only "in between" values.

1
আপনি প্রতিস্থাপন করতে পারেন 2^ দ্বারা U(এবং এই সংস্করণ 20.1.1 কাজ , যা চ্যালেঞ্জের সময়ে সাম্প্রতিকতম ছিল, তাই উত্তর এটা এমনকি আমাদের পুরানো মান দ্বারা যোগ্য হতে হবে)
লুইস Mendo

1
ধন্যবাদ লুইস! আমি অবাক হয়েছি যে আমার নিষ্পাপ পদ্ধতিটি কেবল এমএটিএল মাস্টারের সাথে সম্পর্কিত 1 টি চরিত্রকে নষ্ট করে। :)
ড্রকোয়ারিয়াস



0

এলিস , 10 বাইট

2/*<ER
o@i

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

ব্যাখ্যা

আবার, 2 স্কয়ার্ট (এন) গণনা করুন । লেআউটটি স্ট্যান্ডার্ড সমাধানের তুলনায় দুটি বাইট সংরক্ষণ করে:

/o
\i@/2RE2*

আইপিটির পুনঃনির্দেশকে বাদ দিয়ে কোডের ভাঙ্গন:

2    Push 2 for later.
i    Read all input.
i    Try reading more input, pushes "".
2    Push 2.
R    Negate to get -2.
E    Implicitly discard the empty string and convert the input to an integer.
     Then take the square root of the input. E is usually exponentiation, but
     negative exponents are fairly useless in a language that only understands
     integers, so negative exponents are interpreted as roots instead.
*    Multiply the square root by 2.
o    Output the result.
@    Terminate the program.


0

কিউবিআইসি , 19 9 বাইট

?sqr(:)*2

@ মার্টিনএেন্ডারের পদ্ধতির অনুলিপি করে একগুচ্ছ সংরক্ষণ করেছেন Sa

দুর্ভাগ্যক্রমে, কিউবিআইসি-র জন্য কোনও টিআইও লিঙ্ক নেই।

ব্যাখ্যা

?          PRINT
 sqr( )    The square root of
     :     the input
        *2 doubled



0

রেটিনা , 21 বাইট

.+
$*
(^1?|11\1)+
$1

এটি অনলাইন চেষ্টা করুন! ব্যাখ্যা: @ মার্টিনইেন্ডারের ত্রিভুজাকার সংখ্যা দ্রাবকের উপর ভিত্তি করে সংখ্যার বর্গমূল নিয়ে কাজ করে। বর্গ সংখ্যাটি মিলে যাওয়ার পরে $1, একাকারে বর্গ সংখ্যা এবং পূর্ববর্তী বর্গ সংখ্যাগুলির মধ্যে পার্থক্য। আমরা পরবর্তী পার্থক্যটি চাই, তবে একচেটিয়া, যা আরও 1 টি। এটি অর্জন করতে, আমরা নাল স্ট্রিংগুলির সংখ্যা গণনা করি $1



0

জাভা (ওপেনজেডকে 9) / জেশেল, 17 বাইট

n->2*Math.sqrt(n)

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

দ্রষ্টব্য: এই করতে হবে import java.util.function.*;পেতে IntFunction<T>জাভা 8 বা জাভা 9 কিন্তু java.util.functionপ্যাকেজ JShell ডিফল্টরূপে আমদানি করা হয়।



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