পুনরাবৃত্তি পারস্পরিক


11

আপনাকে যা করতে হবে তা হ'ল একটি ফাংশন / প্রোগ্রাম তৈরি করুন যা দশমিক ইনপুট হিসাবে গ্রহণ করে এবং সংখ্যার ভগ্নাংশের অংশটি বারবার গ্রহণের ফলাফলকে ফলাফল দেয়, যতক্ষণ না সংখ্যাটি পূর্ণসংখ্য হয় becomes

আরও নির্দিষ্টভাবে, প্রক্রিয়াটি নিম্নরূপ:

  1. এক্স এর ইনপুট হতে দিন

  2. X যদি একটি পূর্ণসংখ্যা হয় তবে এটি আউটপুট করুন।

  3. অন্যথায়: । ফিরে যান 2।x1frac(x)

frac(x)এক্স এক্স - এক্স এক্স এক্স এর ভগ্ন উপাদান , এবং সমান । এক্স মেঝেতে, যা সর্বাধিক পূর্ণসংখ্যা চেয়ে কম হয় ।xxxxx

পরীক্ষার কেস:

0 = 0
0.1 = 1/10 -> 10
0.2 = 1/5 -> 5
0.3 = 3/10 -> 10/3 -> 1/3 -> 3
0.4 = 2/5 -> 5/2 -> 1/2 -> 2
0.5 = 1/2 -> 2
0.6 = 3/5 -> 5/3 -> 2/3 -> 3/2 -> 1/2 -> 2
0.7 = 7/10 -> 10/7 -> 3/7 -> 7/3 -> 1/3 -> 3
0.8 = 4/5 -> 5/4 -> 1/4 -> 4
0.9 = 9/10 -> 10/9 -> 1/9 -> 9
1 = 1
3.14 = 157/50 -> 7/50 -> 50/7 -> 1/7 -> 7
6.28 = 157/25 -> 7/25 -> 25/7 -> 4/7 -> 7/4 -> 3/4 -> 4/3 -> 1/3 -> 3

0.1: 0, 10, 5, 3, 2, 2, 2, 3, 4, 9, 1 এর ইনক্রিমেন্টে 0 থেকে 1 এর সংক্ষিপ্তসার

এটি , তাই খুব কম বাইট জিতেছে।

ব্যাখ্যা:

  • কোনও রাউন্ড-অফ ত্রুটির জন্য "বোনাস পয়েন্টস"
  • যে কোনও অ-নেতিবাচক যৌক্তিক সংখ্যার জন্য কাজ করা উচিত (রাউন্ড-অফ ত্রুটি উপেক্ষা করে)
  • আপনি পারেন, তবে নেওয়া পদক্ষেপগুলি আউটপুট করতে হবে না
  • দশমিক, ভগ্নাংশ বা সংখ্যার জোড়া হিসাবে আপনি ইনপুট নিতে পারেন, যা স্ট্রিংতে থাকতে পারে।

সমস্ত সমস্যার জন্য দুঃখিত, এটি এই ওয়েবসাইটে আমার প্রথম প্রশ্ন।


এই সমাপ্তিটি অবিরত ভগ্নাংশে দশমিক প্রকাশের সম্ভাবনার সাথে নিবিড়ভাবে সম্পর্কিত।
লিকি নুন

4
আমরা কি ভাসমান আউটপুট আশা করি? তারা কিছু নির্ভুলতার সমস্যা সৃষ্টি করে।
লিকি নুন

7
আপনি কি আরও কিছুটা প্রক্রিয়া বিস্তারিত বলতে পারেন? আমি "সংখ্যার ভগ্নাংশের অংশটি কীভাবে" জড়িত তা সম্পর্কে আমি নিশ্চিত নই এবং পরীক্ষার কেসগুলি তেমন কোনও
উপকারে আসে

4
যৌক্তিক সংখ্যার উপস্থাপনের জন্য আমরা কী দুটি সংখ্যাকে ইনপুট হিসাবে নিতে পারি?
লিকি নুন

1
এটি ইনপুটটির সরল অবিরত ভগ্নাংশের চূড়ান্ত উপাদানটির সমান।
isaacg

উত্তর:


5

জে, 18 বাইট

%@(-<.)^:(~:<.)^:_

জে-তে, আইডিয়ামটির u ^: v ^:_অর্থ " uশর্তটি vসত্য হয়ে যাওয়ার সাথে সাথে ক্রিয়াটি প্রয়োগ করতে থাকুন ।

আমাদের ক্ষেত্রে, শেষের অবস্থাটি হুক দ্বারা সংজ্ঞায়িত করা হয় ~:<., যার অর্থ "সংখ্যার তলটি সংখ্যাটির <.সাথে সমান হয় না ~:" - সুতরাং যখন প্রধান ক্রিয়াটি uকোনও int প্রদান করে তখন আমরা থামব ।

u-<.এক্ষেত্রে আরেকটি হুক - নম্বরটি তার তল - যার ফেরতের মান পরস্পরের @ক্রিয়াতে খাওয়ানো হয় %

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


এছাড়াও 18, কিন্তু কারণ সহনশীলতাই এর সম্ভবতঃ কিছু ফ্লোটিং পয়েন্ট imprecisions রয়েছে: _2{(%@-<.) ::]^:a:
কোলে



5

গণিত, 36 বাইট

Last@*ContinuedFraction@*Rationalize

ডেমো

In[1]:= f = Last@*ContinuedFraction@*Rationalize

Out[1]= Last @* ContinuedFraction @* Rationalize

In[2]:= f[0]

Out[2]= 0

In[3]:= f[0.1]

Out[3]= 10

In[4]:= f[0.2]

Out[4]= 5

In[5]:= f[0.3]

Out[5]= 3

In[6]:= f[0.4]

Out[6]= 2

In[7]:= f[0.5]

Out[7]= 2

In[8]:= f[0.6]

Out[8]= 2

In[9]:= f[0.7]

Out[9]= 3

In[10]:= f[0.8]

Out[10]= 4

In[11]:= f[0.9]

Out[11]= 9

In[12]:= f[1]

Out[12]= 1

ছাড়া কি হয় Rationalize?
গ্রেগ মার্টিন

1
গ্রেগমার্টিন বিহীন Rationalize, ম্যাথামেটিকা ​​মনে করেন যে অবিরত ভগ্নাংশের সমস্ত পদ উত্পন্ন করতে পর্যাপ্ত যথার্থতা নেই। উদাহরণস্বরূপ, ContinuedFraction[0.1]ঠিক {0}
অ্যান্ডারস ক্যাসরগ

4

পার্ল 6 , 42 বাইট

{($_,{1/($_-.floor)}...*.nude[1]==1)[*-1]}

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

nudeপদ্ধতি ফেরৎ নিউ merator এবং ডি দুই উপাদান তালিকা হিসাবে একটি মূলদ সংখ্যা nominator। denominatorসরাসরি পদ্ধতিটি কল করার চেয়ে এইভাবে ডিনমিনেটর পাওয়া কম ।


4

হাস্কেল , 47 বাইট

এটি গম উইজার্ডের উত্তরকে মারধর করে কারণ সংক্ষিপ্ত নাম রাখার সাথে সাথে যুক্তিগুলির সাথে GHC.Realআমাদের মিলের প্যাটার্ন করতে দেয় :%well

import GHC.Real
f(x:%1)=x
f x=f$1/(x-floor x%1)

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

fRationalইনপুট হিসাবে একটি সংখ্যা নেয় , যদিও জিসিসি তাদের নির্দিষ্ট দশকের মধ্যে দশমিক বিন্যাসে লেখার অনুমতি দেয়।


4

হাস্কেল , 40 34 বাইট

সম্পাদনা:

  • -6 বাইট: @ ওয়েট উইজার্ড উল্লেখ করেছেন যে ভগ্নাংশটি সম্ভবত দুটি পৃথক যুক্তি হিসাবে দেওয়া যেতে পারে।

(ভার্জোজ আমদানি সহ হাস্কেল উত্তরগুলি দেখার পরে এটি পোস্ট করা প্রতিহত করতে পারেনি - এখন আমি দেখতে পাচ্ছি অন্য কয়েকটি ভাষার উত্তরও মূলত এই পদ্ধতিটি ব্যবহার করছে))

!দুটি পূর্ণসংখ্যার আর্গুমেন্ট নেয় (ভগ্নাংশের সংখ্যক এবং ডিনোমিনেটর; সেগুলি ছোট আকারে হওয়া দরকার না তবে ডিনোমিনিটারটি অবশ্যই ইতিবাচক হওয়া উচিত) এবং পূর্ণসংখ্যা ফেরত দেয়। যেমন কল 314!100

n!d|m<-mod n d,m>0=d!m|0<1=div n d

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

  • প্রকারের অমিলকে উপেক্ষা করে ভগ্নাংশের অংশটি n/d( dধনাত্মক অনুমান করে) হ'ল mod n d/d, যদি না mod n d==0, এর !উপস্থাপনের সাথে পুনরাবৃত্তি করে d/mod n d


@ ওয়েট উইজার্ড এইচএম ভাল, আমি দুটি স্বতন্ত্র যুক্তি না দিয়ে "জোড়াকে জোড়" হিসাবে ব্যাখ্যা করেছি। আমি মনে করি এটি একটি অত্যধিক হাস্কেল কেন্দ্রিক ব্যাখ্যা।
র্জন জোহানসেন

3

পাইথন 3 + সিম্পি , 67 বাইট

from sympy import*
k=Rational(input())
while k%1:k=1/(k%1)
print(k)

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

সিম্পি পাইথনের জন্য প্রতীকী গণিতের প্যাকেজ। যেহেতু এটি প্রতীকী এবং বাইনারি নয়, কোনও ভাসমান বিন্দু ভুল নেই।



2

জেলি , 8 বাইট

®İ$%1$©¿

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

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



@ ল্যাকিয়ুন এই ভাগ্যের অর্থ হয় অসীম লুপ বা অসীম লুপ ...
এরিক দ্য আউটগল্ফার

Mভাসমান-পয়েন্টের অপ্রাপ্তিগুলি ঠিক করতে ব্যবহার করুন : পি । এটি জেলি তবে নির্বিচারে নির্ভুল গণিত সহ। যদিও 0.7 লুপটি ঠিক করে না।
হাইপারনিউটারিনো

@ হাইপারনিউট্রিনো এম জেলি এর পুরানো সংস্করণ।
এরিক আউটগল্ফার


2

জাভাস্ক্রিপ্ট ES6, 25 বাইট

f=(a,b)=>a%b?f(b,a%b):a/b

f(a,b)জন্য কলa/b


যদি gcd(a,b)=1মুছে ফেলা যায়/b
l4m2

2

হাস্কেল , 62 61 বাইট

import Data.Ratio
f x|denominator x==1=x|u<-x-floor x%1=f$1/u

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

Data.Ratioস্বেচ্ছাসেবক নির্ভুল যুক্তিগুলির জন্য হাস্কেলের লাইব্রেরি ব্যবহার করে। যদি কেবল বিল্টিনের নামগুলি এত দীর্ঘ না হত।


@ এইচপিউইজ সুন্দর! আমি চেষ্টা করেছি প্যাটার্নের সাথে প্যাটার্ন করার Data.Ratio। আমি কখনও শুনিনি GHC.Real। আপনার নিজের উত্তর হিসাবে নির্দ্বিধায় পোস্ট করুন।
অ্যাডহক গার্ফ হান্টার


1

এপিএল (ডায়ালগ ক্লাসিক) , 18 বাইট

{1e¯9>t1|⍵:⍵⋄∇÷t}

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

এপিএল ন্যারস, ১৮ টি অক্ষর

-1 বাইট ইউরিয়েল পরীক্ষার জন্য ধন্যবাদ

f←{1e¯9>t1|⍵:⍵⋄∇÷t}
v0 .1 .2 .3 .4 .5 .6 .7 .8 .9 1 3.14
⎕←vf¨v
  0 0  0.1 10  0.2 5  0.3 3  0.4 2  0.5 2  0.6 2  0.7 3  0.8 4  0.9 9  1 1  3.14 7 

⍵-⌊⍵One 1|⍵এক বাইটের জন্য
উরিল

@ ইউরাইল আপনাকে ধন্যবাদ ... তাই বাইটগুলি জে সলিউশন হিসাবে রয়েছে
রোজলুপি


1

স্ট্যাক্স , 8 বাইট

ç▄é⌠á◙àù

এটি চালান এবং এটি ডিবাগ করুন

কোনও নির্ভুল ত্রুটির জন্য "বোনাস পয়েন্ট"। কোনও ভাসমান বিন্দু গাণিতিক ব্যবহৃত হয়নি। এটি (অবশেষে) স্ট্যাক্সের অন্তর্নির্মিত যুক্তিযুক্ত ধরণের ব্যবহার করে।


0

জাভাস্ক্রিপ্ট, 70 বাইট

x=>(y=(x+'').slice(2),p=(a,b)=>b?a%b?p(b,a%b):a/b:0,p(10**y.length,y))

আমরা যদি ইনপুট টাইপটিকে স্ট্রিংয়ে পরিবর্তন করতে পারি তবে এটি 5 বাইট সংরক্ষণ করতে পারে।


এটি সংখ্যা>> 10 এর জন্য কাজ করবে না
শেজি

@ শেগি কি সংখ্যাগুলি সমর্থন করছেন> 1 প্রয়োজন?
tsh

হ্যাঁ, এটি কোনও যুক্তিযুক্ত সংখ্যার জন্য কাজ করা উচিত (রাউন্ড-অফ ত্রুটি উপেক্ষা করে)।
সলোমন উকো
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.