একটি নির্দিষ্ট পয়েন্ট খুঁজুন


24

একটি পূর্ণসংখ্যা এবং কিছু ব্ল্যাক বক্স ফাংশন দেওয়া দ্বারা নির্ধারিত ক্রমের একটি নির্দিষ্ট বিন্দু খুঁজে পায় ।x1 f: ℤ → ℤfxk+1 := f(xk)

বিস্তারিত

  • একটি মান xএকটি নির্দিষ্ট বিন্দু হতে বলা হয় fযদি x = f(x)

    উদাহরণস্বরূপ যদি f(x) := round(x/pi)আমরা একটি শুরুর স্থান তারপর আমরা পেতে , তারপর , তারপর , এবং পরিশেষে যার মানে জমা ফেরত পাঠাবেন ।x1 = 10x2 = f(x1) = f(10) = 3x3 = f(x2) = f(3) = 1x4 = f(x3) = f(1) = 0x5 = f(x4) = f(0) = 00

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

উদাহরণ

f(x) = floor(sqrt(abs(x)))
0 -> 0,  all other numbers -> 1

f(x) = c(c(c(x))) where c(x) = x/2 if x is even; 3*x+1 otherwise
all positive numbers should result in 1,2 or 4 (Collatz conjecture)

f(x) = -42
all numbers -> -42

f(x) = 2 - x
1 -> 1

মনে রাখবেন যে ব্ল্যাক বক্স ফাংশনটি নির্দিষ্ট পয়েন্টে রূপান্তর করবে এমন বিবরণে বোঝানো হয়েছে, শেষ উদাহরণটি অন্যথায় বলে
phflack

1
@ ফফল্যাক ব্ল্যাকবক্সকে কেবলমাত্র প্রদত্ত ইনপুটটির জন্য রূপান্তর করতে হবে।
flawr

ওহ, মূলত আমি ভেবেছিলাম যে জমাটি x_0 দেওয়া হয়নি, যা আমাকে কিছু বিভ্রান্তির কারণ করেছে। আমি ভেবেছিলাম একটি সমাধান হওয়া উচিত (জেলি) ~Nƭ⁻Ç$¿যা কিছুটা (সিউডো কোড) for x in [0, -1, 1, -2, 2, -3, 3, -4, 4, ...]: if (x == f(x)): break; print(x); । এটি অন্য চ্যালেঞ্জের মূল্য হতে পারে।
ব্যবহারকারী 202729

1
ভবিষ্যতের দর্শকদের জন্য দ্রষ্টব্য: যে কোনও নির্দিষ্ট পয়েন্ট সন্ধান করা কাজ করে না, আপনাকে অবশ্যই x_0 থেকে একটি নির্দিষ্ট পয়েন্ট পাওয়া যাবে find এটির নিশ্চয়তা রয়েছে যে সেখানে একটি রয়েছে।
ব্যবহারকারী 202729

এবং যদি না থাকে তবে একটি নির্দিষ্ট পয়েন্ট, একটি ফাংশনের জন্য, এবং একটি প্রাথমিক মান x0 ... এটির মানটি কী হওয়া উচিত? এবং যদি x1 = x0 + 1 চ (x1) = ফ (1) এর সাথে x0 = 0 এবং f = int (9 / (x-1)) ইতিমধ্যে একটি ত্রুটি হয় ... তবে সেই চটির জন্য অপারেটরটি কী ফিরিয়ে আনতে হবে, x0?
রোজলুপি

উত্তর:


16

আসলে , 1 বাইট

Y

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

Yআসলে ফিক্সড পয়েন্ট ফাংশন। টিআইও উদাহরণে, ফাংশনটি স্ট্রিং হিসাবে নেওয়া হচ্ছে এবং £স্ট্যাকের কোনও ফাংশনে রূপান্তর করতে ব্যবহৃত হয়। এটি কেবল স্ট্যাকের মতো ফাংশনটিকে ধাক্কা দেওয়াও সম্ভব । প্রকৃতপক্ষে কোনও ফাংশন ইনপুট পাওয়ার জন্য এই দুটি উপায়।


7
আপনি কেবল জানতেন যে কোনও দিন এই চ্যালেঞ্জটি পোস্ট হতে চলেছে, তাই না? : পি
এরিক আউটগল্ফার

2
@ এরিকথ আউটগলফার আমি আসলে Yবেশ কয়েকটি চ্যালেঞ্জের জন্য ব্যবহার করেছি আমি আপাতদৃষ্টিতে চূড়ান্ত পূর্বসূরি : পি
মেগো

11

এপিএল (ডায়ালগ) , 2 বাইট

⍣=

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

এনবি: আমি O←⍣=ইনপুট বিভাগে সংজ্ঞায়িত করেছি যে উদ্ভূত monadic অপারেটরগুলির একটি বাগের কারণে টিআইও যেভাবে জিনিসগুলি সংজ্ঞায়িত করতে পছন্দ করে তা সংজ্ঞায়িত করা যায় না।

এমন একটি অপারেটর যা ব্যবহার করা যেতে পারে (function⍣condition) ⍵

তা প্রযোজ্য function, f, এর পর্যন্ত (f ⍵) condition ⍵আয় সত্য।

⍣=fবাম আর্গুমেন্ট হিসাবে একটি monadic ফাংশন গ্রহণ করে এবং এটি তার ডান আর্গুমেন্টে প্রয়োগ করা হয় , যতক্ষণ নাf ⍵ = ⍵


সম্ভবত দ্রষ্টব্য যে ⍣=এটি একটি উদ্ভূত monadic অপারেটর যা বাম অপারেন্ড হিসাবে একটি ফাংশন নেয় এবং প্রদত্ত প্রাথমিক মানটির স্থির বিন্দুটি খুঁজে পায়। আমি জন্য একটি ভিন্ন অক্ষর ব্যবহার করেন ⍣=চেয়ে fকেননা এতে একটি হল perator, না একটি অনুলেপন।
অ্যাডম

হ্যাঁ। আমি করতাম এটি বিভ্রান্তিকর যে fআপনার বর্ণনায় আপনি "ইনপুট" ফাংশনটি কল করেন তবে তারপরে টিআইও-তে fআপনার সলিউশন অপারেটর। আপনি O←⍣=কোড ক্ষেত্রটি এটিকে গণনা করতে দিতে এবং এটি প্রকৃত সমাধান হ'ল এবং বাকী (ইনপুট) কেবল এটি পরীক্ষা করে দেখানোর জন্য উপরে উঠতে পারেন।
অ্যাডম

আমার কাছে বাগের মতো মনে হচ্ছে। আগামীকাল প্রাসঙ্গিক সহকর্মীর সাথে কথা বলব।
অ্যাডম

@ অ্যাডম আপডেট হয়েছে। বাগটি ঠিক হয়ে যায় কিনা আমাকে জানতে দিন
এইচপিউইজ


9

ম্যাটল্যাব , ৪১ বাইট

function x=g(f,x);while f(x)-x;x=f(x);end

রয়েছে এই সৌন্দর্য যে ফাংশন ফাইল প্রয়োজন হবে না। দুর্ভাগ্যক্রমে এটি কিছুটা দীর্ঘ:

i=@(p,c)c{2-p}();g=@(g,f,x)i(f(x)==x,{@()x,@()g(g,f,f(x))});q=@(f,x)g(g,f,x)

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


7
এই উত্তরটি উদাহরণ হিসাবে বোঝানো হয়েছিল এবং কাউকে উত্তর দিতে বাধা দেয় না।
flawr

অবশ্যই, আপনি যদি এই অষ্টাভকে কল করেন তবে আপনি দুটি ;টি অপসারণ করতে পারেন । এটি অনলাইন চেষ্টা করুন!
সান্চাইজস

আর তোমার বেনামী ফাংশন, আপনি অপসারণ করতে পারেন @()আগে x50 বাইট জন্য। কুডোসও আপনি যেভাবে আপনার সহায়ক ফাংশনটি মুড়েছেন ( g(g)শেষ পর্যন্ত), আমি কেবল 51 বাইট করতে পেরেছি @(g,x)(f=@(r,z){@()r(r,m),z}{(m=g(z)==z)+1}())(f,x)। আমি ভাবছি যে উভয় পদ্ধতির কোনও সংমিশ্রণ রয়েছে যা এখনও খাটো।
সান্চাইজস

6

স্ট্যান্ডার্ড এমএল (এমএলটন) , 30 বাইট

fun& $g=if$ =g$then$else&(g$)g

এটি অনলাইন চেষ্টা করুন! হিসাবে ব্যবহার করুন & n blackbox

ব্ল্যাক বক্স ফাংশন নিম্নলিখিত হিসাবে সংজ্ঞায়িত করা হয়:

fun blackbox1 x = floor(Math.sqrt(Real.fromInt(abs x)))

fun blackbox2 x = c(c(c(x))) 
and c x = if x mod 2 = 0 then x div 2 else 3*x+1

fun blackbox3 _ = ~42

fun blackbox4 x = 2-x

অবরুদ্ধ সংস্করণ:

fun fixpoint n g = if n = g n then n else fixpoint (g n) g

1
বন্য মধ্যে এসএমএল দেখতে ভাল! আমরা আমাদের বিশ্ববিদ্যালয়ের আমাদের কার্যকরী প্রোগ্রামিং ক্লাসের জন্য এটি ব্যবহার করি।
ভাইজরক্স

6

আর , 36 35 বাইট

জাইসকে ধন্যবাদ একটি বাইট গলফ করার জন্য

function(f,x){while(x-(x=f(x)))0;x}

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

উদাহরণ ফাংশন যাচাই করুন!

Flawr এর সমাধান পোর্ট


এর মূল্য কী ... function(f,x){while(x-(x=f(x)))0;x}এক বাইট সংরক্ষণ করে।
জয়সি

ওহ, 0সুন্দর অনেক ধন্যবাদ!
জিউসেপে


4

পাইথন 2 , 39 37 33 বাইট

@ মিস্টার এক্সকোডারকে -২ বাইটের জন্য ধন্যবাদ

s=lambda k:s(f(k))if k-f(k)else k

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

ব্ল্যাক-বক্স ফাংশনটির নাম চ


প্যারামিটার হিসাবে ফাংশনটি পাস করার দরকার নেই? আমি মনে করি না প্রাক-সংজ্ঞায়িত ভেরিয়েবলগুলি একটি গৃহীত ইনপুট পদ্ধতি।
mbomb007

আমি নিশ্চিত না যে আপনাকে ফাংশনটি ধরে নেওয়ার অনুমতি দেওয়া হচ্ছে f, তা কি ধরণের ইনপুট ধরে নেওয়া যায় না? (সম্পাদনা: এমবিএম দ্বারা নিনজা)
ফ্লিপট্যাক


4

জাভাস্ক্রিপ্ট (নোড.জেএস) , 25 22 21 বাইট

ধন্যবাদ হারমান Lauenstein আমাকে দেখানোর জন্য এই ঐক্যমত্য
ধন্যবাদ @ l4m2 জন্য -1 বাইট

ব্ল্যাক-বক্স ফাংশনটির নাম ধরে নেওয়া যায় f

g=k=>f(k)-k?g(f(k)):k

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



f (k) -k এর পরিবর্তে
l4m2

4

জেলি , 3 বাইট

vÐL

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

বাম যুক্তিটিকে একটি স্ট্রিং হিসাবে জেলি লিঙ্ক ( 2_উদাহরণস্বরূপ) উপস্থাপন করে এবং একটি পূর্ণসংখ্যা হিসাবে ডান আর্গুমেন্ট নেয়

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

 ÐL - While the output is unique...
v   -   Evaluate the function with the argument given

4

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

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

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

( x -> 2-xনীচের উদাহরণে ব্ল্যাক বক্স ফাংশনের জন্য )

প্রদত্ত ব্ল্যাক বক্স ফাংশনটি এমন একটি প্রোগ্রাম হওয়া উচিত xযা স্ট্যাকের উপরে দেওয়া , পপ xএবং ধাক্কা f(x)- অন্য কথায়, এটি fস্ট্যাকের শীর্ষের মানটির উপর ফাংশনটি মূল্যায়ন করা উচিত ।

সমমানের মিনি-ফ্ল্যাকটি 26 বাইট (2 বাইট সংরক্ষণের জন্য গম উইজার্ডকে ধন্যবাদ):

(()){{}(({})( )[{}({})])}{}
             ^ put the function f here

(মন্তব্য এবং স্পেস গণনা করা হয় না)

ইনপুট থেকে ফাংশন (এর ভিতরে <>) এবং একটি সংখ্যা নিন । (দ্রষ্টব্য যে মস্তিষ্ক-ফ্ল্যাক একটি অনিচ্ছাকৃত ভাষা এবং ইনপুট হিসাবে কার্যকরী যুক্তি নিতে পারে না)x0


ব্ল্যাকবক্স ফাংশন উদাহরণ:

x -> 2-x: অনলাইনে চেষ্টা করে দেখুন!


ব্যাখ্যা:


(()){{}(({})<f>[({})])}{}   Main program.
                            Implicit input from stdin to stack.
(  )                        Push
 ()                         literal number 1.
                            Now the content of the stack: [1, x0]
    {                 }     While stack top ≠ 0:
                            current stack content: [something ≠ 0, x]
     {}                       Pop stack top (something). stack = [x]
       (             )        Push
        ({})                    Stack top = x. Current stack = [x]
             f                  Evaluate f. Current stack = [f(x)]
            < >                   (suppress the value of f(x), avoid adding it)
               [    ]           plus the negative of
                ({})            the top of the stack ( = -f(x) )
                              In conclusion, this change (x) on the stack to
                              (f(x)), and then push (x + -f(x))
                            If it's 0, break loop, else continue.
                       {}   Pop the redundant 0 on the top.
                            Implicit output stack value to stdout.


3

সুইফ্ট , 47 42 বাইট

func h(_ n:Int){f(n)==n ?print(n):h(f(n))}

নিষ্পাপ দৃষ্টিভঙ্গি, ধরে নেওয়া হয় যে ব্ল্যাক বক্স ফাংশনটির নাম দেওয়া হয়েছে f


আপনার দ্বিতীয় প্রয়াস সম্পর্কে আমি সন্দেহে রয়েছি, কারণ এটি একটি জটিল সমাপ্তি এবং এটির ধরণের বিষয়টি অস্পষ্ট, যতক্ষণ না আপনি এটিকে স্পষ্টভাবে বলছেন {...}as(<parameter types>)-><return type>। আপনি যদি তার রিটার্নের ধরণটি নির্দিষ্ট না করেন তবে এটি বিল্ড-টাইম ত্রুটিগুলি ছুঁড়ে দেবে তাই আমি এটি এখনকার হিসাবে বৈধ বলে মনে করি না (নোটটি অবশ্যই বাইট গণনায় অন্তর্ভুক্ত করা উচিত)। যদিও আপনার প্রথম জমাটি ঠিক আছে।
মিস্টার এক্সকোডার

2

সি (জিসিসি) , 40 বাইট

f(n,b)int(*b)(_);{n=n^b(n)?f(b(n),b):n;}

এটি অনলাইন চেষ্টা করুন! নোট করুন যে পতাকাগুলি প্রয়োজনীয় নয়, তারা উপরে বর্ণিত ফিক্সপয়েন্টের কার্যকারিতাটি পরীক্ষা করতে সহায়তা করার জন্য রয়েছে।

এটি এমন একটি ফাংশন যা কোনও ইনট nএবং একটি ফাংশন পয়েন্টার নেয় b : int → int। সত্য যে প্রথম পরিবর্তনশীল যুক্তি লিখিতভাবে সেট করে অপব্যবহারের eaxরেজিস্টার, যা ফিরে সমতূল্য । অন্যথায়, সি গল্ফ যতদূর যায় এটি বেশ মানক। n^b(n)অসমতার জন্য পরীক্ষা করে nএবং ব্ল্যাক বক্সে প্রয়োগ করা হয় n। অসম হলে এটি ফিক্সপয়েন্ট ফাংশনটিকে fপুনরাবৃত্তভাবে অ্যাপ্লিকেশন এবং ব্ল্যাক বক্সের সাথে আর্গুমেন্ট হিসাবে কল করে। অন্যথায়, এটি ফিক্সপয়েন্টটি প্রদান করে।

Itation উদ্ধৃতি আবশ্যক, আমি অস্পষ্টভাবে এটি কোথাও পড়ে মনে করি এবং গুগল আমার সন্দেহগুলি নিশ্চিত করেছে

এটি কে ও আর স্টাইলের প্যারামিটার টাইপিংয়ের সাথে ইনপুট ঘোষণা করে:

f(n, b)
int(*b)(_);
{
    n=n^b(n)?f(b(n),b):n;
}

উপরের দ্বিতীয় লাইনের তীর বিট bএকটি ফাংশন পয়েন্টার হিসাবে ঘোষণা করে যা একটি পূর্ণসংখ্যা প্যারামিটার নেয় takes ডিফল্ট ধরণের ডিফল্টটি _একটি পূর্ণসংখ্যা হিসাবে ধরে নেওয়া হয়। একইভাবে, nএকটি পূর্ণসংখ্যা fহিসাবে ধরে নেওয়া হয় , এবং একটি পূর্ণসংখ্যা ফেরত বলে ধরে নেওয়া হয়। অন্তর্নিহিত টাইপিংয়ের জন্য হুররে?


2

পরিষ্কার , 46 বাইট

import StdEnv
p x=hd[n\\n<-iterate f x|f n==n]

ধরে নিই ফাংশনটি হিসাবে সংজ্ঞায়িত হয়েছে f :: !Int -> Int

এটি f f f ... xসেই উপাদানগুলির জন্য ফিল্টার করা অ্যাপ্লিকেশনগুলির অসীম তালিকার শীর্ষস্থান গ্রহণ করে f el == el

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

আপনি যদি টিআইওতে ফাংশনটি পরিবর্তন করতে চান তবে ক্লিনের ল্যাম্বদা সিনট্যাক্সটি হ'ল:

\argument = expression

(আসলে এটি আরও জটিল, তবে কৃতজ্ঞতাপূর্ণভাবে আমাদের কেবল অবিচ্ছিন্ন ফাংশন প্রয়োজন)


2

এপিএল (ডায়ালগ ইউনিকোড) , 14 বাইট

{⍵=⍺⍺⍵:⍵⋄∇⍺⍺⍵}

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

শিরোনামে ফাংশন সমান f(x) = floor(sqrt(abs(x)))

পিপিসিজি sensকমত্য অনুসারে মূল উত্তরটি বৈধ ছিল না বলে উল্লেখ করার জন্য @ অ্যাডামকে ধন্যবাদ

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

{⍵=⍺⍺⍵:⍵⋄∇⍺⍺⍵}  Main 'function' (this is actually an operator)
      :          if
 ⍵=⍺⍺⍵           the right argument (⍵) = the left function (⍺⍺, which is f) of 
                return 
                else
         ∇⍺⍺⍵    return this function (∇) with argument f(⍵)

Name ⍵ = f⍵: ⍵⋄∇ (f⍵) its এর নাম (এন) থেকে পৃথক বেনামে ফাংশন করা ঠিক হবে
RosLuP

2
এটি ধরে নেওয়া হয় যে fপূর্বনির্ধারিত, যা আমি মনে করি পিপিসিজি sensকমত্য দ্বারা নিষিদ্ধ। {⍵=⍺⍺⍵:⍵⋄∇⍺⍺⍵}একটি বৈধ অপারেটর সমাধান হবে।
অ্যাডম

1

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

function x=g(f,x);while x-(x=f(x))end

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

অক্টাভের ইনলাইন অ্যাসাইনমেন্ট রয়েছে তবে ম্যাটল্যাব নেই, সুতরাং এটি ফ্লাওয়ারের সমাধানের একটি গল্ফিয়ার অক্টেভ বন্দর ।

এটি আর কেও সুন্দরভাবে পোর্ট করে



1

ফোরথ (গফার্থ), 36 বাইট

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

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

: g dup f over = IF . THEN recurse ;

ফোর্থ (গফার্থ), 52 বাইট

এটি কোনও ফাংশনের এক্সিকিউশন টোকনকে প্যারামিটার হিসাবে পাস করার অনুমতি দেয় এবং এটি অবশ্যই শীতল সমাধান।

: g 2dup execute rot over = IF . THEN swap recurse ;

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

ব্যাখ্যা:

: g             \ x1 f          Define g. Params on the stack. f is on top
2dup execute    \ x1 f x2       duplicate both params, execute f(x1)
rot over        \ f x2 x1 x2    move x1 to top and copy x2 to top
= IF . THEN                     compare, if equal, print
swap recurse ;                  otherwise, recurse


1

tinylisp repl, 28 বাইট

(d P(q((x)(i(e(f x)x)x(P(f x

ধরে নিই যে ফাংশনটি fপূর্বনির্ধারিত।

এটি অনলাইন চেষ্টা করুন! (উদাহরণ ফাংশনটি f(x) = (x*2) mod 10।)

Ungolfed

(load library)
(def P
 (lambda (x)
  (if (equal? (f x) x)
   x
   (P (f x)))))

যদি f(x)সমান হয় x, তবে xএকটি নির্দিষ্ট পয়েন্ট; দাও. অন্যথায়, পুনরাবৃত্তির f(x)পরিবর্তে শুরু করে একটি নির্দিষ্ট পয়েন্ট সন্ধান করুন x


1

এপিএল NARS 65 টি অক্ষর

r←(f v)n;c
   c←0⋄→B
E: r←∞⋄→0
A: n←r
B: r←f n⋄c+←1⋄→E×⍳c>1e3⋄→A×⍳r≠n

v অপারেটর ত্রুটির জন্য ∞ (বা সম্ভবত -oo বা নান) ফিরিয়ে দেবে, অন্যথায় x = f (x) সহ একটি মান x। পরীক্ষায় f = তল (স্কয়ার্ট (অ্যাবস (এক্স))), এফ 1 = 2-এক্স, এফ 2 = সি (সি (সি (এক্স))) এর সাথে সি = x% 2 == 0? এক্স / 2: 3 * এক্স +1 টি

  f←⌊∘√∘|
  f v 0
0
  f v 9
1
  f1←{2-⍵}
  f1 v 1
1
  f1 v ¯10
∞
  f1 v 2
∞
  c1←{0=2∣⍵:⍵÷2⋄1+3×⍵}
  f2←c1∘c1∘c1
  f2 v 1
1
  f2 v 2
2
  f2 v 7
2
  f2 v 82
4

1

ক্লোজার, 45 43 বাইট

ভাল, এটি সবচেয়ে সংক্ষিপ্ত এবং কুরুচিপূর্ণ:

#(loop[a + b %2](if(= a b)a(recur b(% b))))

+এটি কোনও সংখ্যার পরিবর্তে রয়েছে যাতে এটি কোনও মানের সমান হয় না x0

55 বাইট এবং ক্রিয়ামূলক:

#(reduce(fn[a b](if(= a b)(reduced a)b))(iterate % %2))

উদাহরণ:

(def f #(...))
(defn collaz [x] (if (even? x) (-> x (/ 2)) (-> x (* 3) (+ 1))))
(f (->> collaz (repeat 3) (apply comp)) 125)
; 1

1

x86 অপকোড, 8 বাইট

fun:
        call    edx          ; 2B
        cmpxchg eax,    ecx  ; 3B, on 8086 use xchg and cmp instead
        jnz     fun          ; 2B
        ret                  ; 1B

ইনপুট নিন: ecx(মান ), (ফাংশন ঠিকানা, থেকে ইনপুট নিতে চাই, লেখার ফলাফলের মান পরিবর্তন ছাড়া এবং )x0edxecxeaxecxedx

8086 অপকোড, 7 বাইট (তবে ধীর)

    xor     cx,     cx
    call    dx
    loop    $-2
    ret

যদি কোনও স্থির বিন্দু উপস্থিত থাকে তবে লুপিং 65536 বার সর্বদা এটি চালিত করে।
: ইনপুট নিতে ax(প্রাথমিক মান ), (ফাংশন ঠিকানা, থেকে ইনপুট নিতে চাই, লেখার আউটপুট মান পরিবর্তন ছাড়া এবং )। রেজিস্টার স্থির পয়েন্ট আউটপুট ।x0dxaxaxcxdx
ax


আপনি উত্তরটি আরও পঠনযোগ্য করে নিলে অবশ্যই এটি সহায়তা করবে।
ব্যবহারকারী 202729

এটি সম্পাদন করার জন্য আরও সম্পাদনা করুন
l4m2


0

জাভা 8, 42 বাইট

এই লাগে Function<Integer, Integer>বা IntFunction<Integer>একটি intবা Integer(curried) এবং নির্দিষ্ট বিন্দু ফেরৎ।

f->i->{while(i!=(i=f.apply(i)));return i;}

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

জাভা বাম থেকে ডানে সুব এক্সপ্রেসনগুলি মূল্যায়নের সত্যতাটি গ্রহণ করে (তাই পুরাতনটিকে iনতুনের সাথে তুলনা করা হয়), এটি এমন একটি সম্পত্তি যা আমি এই লেখার সময় অবগত ছিলাম না!

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