মধ্যে ভগ্নাংশ


13

মধ্যে ভগ্নাংশ

চ্যালেঞ্জ:

আপনাকে এমন কোড তৈরি করতে হবে যা সর্বনিম্ন 3 ইনপুট নেয়; 2 পূর্ণসংখ্যা এবং "ভগ্নাংশের উপস্থাপনা" - যে কোনও ধরণের ভগ্নাংশের বৃদ্ধি উপস্থাপনের জন্য আপনার ভাষার সাথে স্যুট করে) অর্থাত্। আপনি যদি স্ট্রিং চয়ন করেন তবে ইনপুটটি "1/4" হবে বা আপনি 2 অতিরিক্ত পূর্ণসংখ্যার ইনপুট বা একটি টিপল বা ডাব্লু / ই বেছে নিতে পারেন।

ইনপুট যে কোনও জায়গায় যুক্তিসঙ্গত হতে পারে (এসটিডিআইএন, ফাংশন আর্গুমেন্টগুলি, কোনও ফাইল থেকে ইত্যাদি) এবং আউটপুট (এসটিডিআউট, ফাংশন রিটার্ন মান, কোনও ফাইলে ইত্যাদির) হতে পারে)

নিয়মাবলী:

  1. ইনপুট "ভগ্নাংশ" সর্বদা একটি বৈধ ভগ্নাংশ হবে, 1 এর চেয়ে কম; উদাহরণ "1/4"
  2. দ্বিতীয় ইনপুট পূর্ণসংখ্যার সর্বদা প্রথম পূর্ণসংখ্যার চেয়ে উচ্চতর মান থাকবে। প্রথম প্রথম ইনপুট পূর্ণসংখ্যার সর্বদা দ্বিতীয়ের চেয়ে কম মান থাকবে।
  3. ইনপুট পূর্ণসংখ্যা নেতিবাচক হতে পারে।
  4. আউটপুটযুক্ত ভগ্নাংশ যথাসম্ভব হ্রাস করা উচিত (সরলীকৃত)

কোডটির ইনপুট ভগ্নাংশের ইনক্রিমেন্টে 2 সংখ্যার মধ্যে প্রতিটি "ভগ্নাংশ পদক্ষেপ" আউটপুট করতে হবে।

কোডটি এখানে একটি প্রোগ্রাম বা ফাংশন হওয়া উচিত stated

উদাহরণ 1:

ইনপুট: -2,3,"1/2"

আউটপুট:

 -2
 -3/2 
 -1 
 -1/2 
  0 
  1/2 
  1 
  3/2  
  2 
  5/2 
  3

উদাহরণ 2:

ইনপুট: 1,2,"2/3"

আউটপুট:

1
5/3
2

অথবা

1
4/3
2

দ্রষ্টব্য: গণনা উভয় দিক থেকেই শুরু হতে পারে (আপনাকে ধন্যবাদ মেগো)

এটি , তাই বাইটের মধ্যে সংক্ষিপ্ত উত্তর ins


ভগ্নাংশটি 2 টি পূর্ণসংখ্যা ইনপুট হিসাবে নেওয়া যেতে পারে, মোট 4 টি ইনপুট তৈরি করে?
মেগো

আমি মনে করি অসুস্থতা সর্বাধিক 3 ইনপুটগুলির সংযম বজায় রাখে - আমি 4 ইনপুট পাশাপাশি কোডটি দেখতে চাই
অ্যালেক্স কার্লসেন

সেক্ষেত্রে তৃতীয় ইনপুটটির জন্য দুটি পূর্ণসংখ্যার তালিকা / টুপল / অ্যারে / কিছু অন্যান্য পুনরাবৃত্তিযোগ্য টাইপ কী হবে? এটি 4 টি সংখ্যার ইনপুটগুলির চেয়ে মৌলিকভাবে পৃথক নয়। আপনার আরও পরিষ্কার করা উচিত যে ভগ্নাংশটি 0 এর সমান হবে না
মেগো

@ মেগো এটি চিন্তা করার পরেও আমি দেখতে পাচ্ছি না কেন "ন্যূনতম 3 ইনপুট লাগে এমন কোড" এ পরিবর্তিত হতে দেওয়া হবে না
অ্যালেক্স কার্লসেন

1
@ বেকার যতক্ষণ না আউটপুট সঠিক হয় এবং ইনপুট কমপক্ষে 2 টি পূর্ণসংখ্যার থেকে আসে, বাকিটি আপনার উপর নির্ভর করে :) - আমি আলাদা আলাদা উত্তর দেখতে, ইনপুট অংশটি বেশ খোলা রেখেছি
অ্যালেক্স কার্লসেন

উত্তর:


5

অক্টাভা, 34 30 বাইট

@(a,b,c)rats(union([a:c:b],b))

এখন ভগ্নাংশটি পৃথক সংখ্যক এবং ডিনোমিনেটরের পরিবর্তে সংখ্যাসূচক প্রকাশ হিসাবে গ্রহণ করে।

আদর্শের উপর নমুনা


1
তাহলে আপনি কেন ব্যবহার করতে পারবেন না @(a,b,c)rats(union([a:c:b],b))?
লুইস মেন্ডো

@ লুইস মেন্ডো আমি যদি গাণিতিক প্রকাশগুলি গ্রহণযোগ্য ইনপুটগুলিতে গ্রহণযোগ্য হয় ( 1/2স্ট্রিং ইনপুটের চেয়ে সংখ্যার হিসাবে কার্যকর ফলস্বরূপ ) তবে আমি "ভগ্নাংশের উপস্থাপনা" ব্যাখ্যা করার উপায়টি এটি নয়। যদি ওপি রাজি হয়, আমি 4 বাইট শেভ করে খুশি হব।
বেকার

আচ্ছা বুঝলাম. ঠিক আছে, আমি আমার মতলব উত্তরে এটি ব্যবহার করছি। "গণিত সংখ্যা" নির্দিষ্ট তথ্য প্রকার না হলে ম্যাথামেটিকায় স্পষ্টতই উত্তর দেওয়া হয়
লুইস মেন্ডো

@ বেকার আমি আসলে প্রতিক্রিয়া জানালাম
অ্যালেক্স কার্লসেন

@ ভিজুয়ালবিয়ান কোড ইতিমধ্যে আপডেট হয়েছে।
বেকার

11

গণিত, 16 বাইট

Range@##⋃{#2}&

একটি নামবিহীন ফাংশন যা দুটি পূর্ণসংখ্যার এবং মূলদ সংখ্যা নেয় এবং সংখ্যার একটি তালিকা প্রদান করে, যেমন:

Range@##⋃{#2}&[-2, 3, 1/2]
(* {-2, -(3/2), -1, -(1/2), 0, 1/2, 1, 3/2, 2, 5/2, 3} *)

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


10

টি এসকিউএল 2012+, 831 535 477 270 246 240 219 বাইট

দয়া করে মনে রাখবেন এটি একটি ওয়ান লাইনার - ভগ্নাংশটি হ্রাস করার জন্য স্কুএলে ফাংশন বিল্ড নেই। এই ধরণের প্রশ্নের জন্য সেরা ভাষা নাও হতে পারে। এটি মানব পাঠযোগ্য (অন্যরকম কয়েকটি ভাষার তুলনায় ধরণের)।

DECLARE @f INT=-5,@t INT=3,@n INT=3,@ INT=8;

WITH C as(SELECT
top((@t*@-@f*@)/@n+1)ROW_NUMBER()OVER(ORDER BY @)M
FROM sys.messages)SELECT(SELECT
IIF(V%@=0,LEFT(V/@,9),CONCAT(V/MAX(M),'/',ABS(@)/MAX(M)))FROM c
WHERE V%M=0AND @%M=0)FROM(SELECT
@f*@+@n*~-M V FROM c)k

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


ভাষাকে কি টি-এসকিউএল বলা হয় না, এবং "স্কেলসার্ভার" নয়?
ডেভিড কনরাড

1
@ ডেভিডকনরাদ ভাষা টিএসকিউএল, তবে স্কেলসার্ভারের বিভিন্ন সংস্করণ রয়েছে এবং এর জন্য টিএসকিউএল এস-এস-এস-এস-এস-এস-কিওয়ার্ড ২০১২-এর জন্য কাজ করবে ২০১২-এর কীওয়ার্ড F যা পুরানো সংস্করণগুলিতে CASE কীওয়ার্ডটি ব্যবহার করবে। আপনার পরামর্শ যুক্ত করেছে
t-clausen.dk

সাবাশ. হয় আপনি পরিবর্তন করে কয়েক সংরক্ষণ করতে পারবেন @nঅথবা @dপ্লেইন করার @। N এর জন্য আপনার সিটিই কোয়েরি হতে পারে N AS(SELECT N FROM(VALUES(1),(1),(1),(1),(1),(1),(1),(1),(1),(1))M(N))বা N AS(SELECT 1N FROM sys.all_views)। এই দৃশ্যে কয়েক শতাধিকের নিশ্চয়তার নিশ্চয়তা রয়েছে, আপনি ক্রস যোগদানের ক্ষেত্রেও হ্রাস করতে পারেন। কাজের ISNULLচেয়ে খাটো COALESCEএবং কাজের উচিত
মিকিটি

@ মিকটি আপনার পরামর্শ এবং আমার নিজের কয়েকটিকে ধন্যবাদ, আমি দৈর্ঘ্যটি 296 বাইট কমিয়ে পরিচালনা করতে
পেরেছি

সেখানে দুর্দান্ত কাজ
মিকিটি


5

হাস্কেল, 31 26 বাইট

f a b c=min[b]$a:f(a+c)b c

অলস মূল্যায়ন এফটিডব্লিউ! ডেমো:

*Main> import Data.Ratio
*Main Data.Ratio> f (-2) 3 (1%2)
[(-2) % 1,(-3) % 2,(-1) % 1,(-1) % 2,0 % 1,1 % 2,1 % 1,3 % 2,2 % 1,5 % 2,3 % 1]
*Main Data.Ratio> f 1 2 (2%3)
[1 % 1,5 % 3,2 % 1]

(আমি প্রথম দিকে হাস্কেলের [a,a+c..b]স্বীকৃতি দ্বারা প্রলুব্ধ হয়েছিলাম , তবে এর মধ্যে কিছু কীর্তি রয়েছে যা f a b c|l<-[a,a+c..b-c/2]=l++[b|last l<b]৪১ বাইট বা f a b c=[x|x<-[a,a+c..],x<b]++[b]৩৩ এর মতো কিছু প্রয়োজন )


আমি আপনার সমাধান পছন্দ! তবে আমি মনে করি import Data.Ratioআপনাকেও আপনার বাইট গণনাতে অন্তর্ভুক্ত করা দরকার , আমি মনে করি আপনি fএটি ছাড়া ব্যবহার করতে পারবেন না , তাই না?
flawr

2
@flawr: চমৎকার প্রান্ত কেস: আপনি প্রয়োজন হবে না Data.Ratioজন্য fকারণ এটি সমস্ত সাংখ্যিক ধরনের জন্য বহুরুপী আছে, নিজেই। যাইহোক, আপনি যখন টাইপের মান সহ এটিকে কল করতে চান Ratio, তখন আপনার প্রয়োজন হয় আমদানি। চ্যালেঞ্জটির জন্য কেবল "কোডটি তৈরি করা দরকার ...", এটি ব্যবহার না করে। আমি মনে করি আমদানি না করেই ঠিক আছে।
নিমি

1
আরো সঠিকভাবে, আপনি শুধুমাত্র আমদানির জন্য প্রয়োজন %অপারেটর পরীক্ষা ভগ্নাংশ তৈরি করতে 1 % 2এবং 2 % 3। আমি এখানে প্রতারণা করছি না: আপনি সত্যই তাদের দ্বারা একটি ফাইলে সেই 26 বাইট লাগাতে পারেন, সেই মডিউলে দোভাষী চালাতে পারেন এবং আমি প্রদর্শিত ইন্টারঅ্যাকশনটি রাখতে পারি। (আপনি import Data.Ratioডেমো মিথস্ক্রিয়ায় টাইপ করা %Data.Ratio.%
এড়াতেও

5

এমএটিএল , 16 15 বাইট

3$:3Gvu9X10ZGZD

এটি খুব বড় ডিনোনিটেটরদের জন্য ব্যর্থ হতে পারে। আমি আশা করি আউটপুট ফর্ম্যাটটি গ্রহণযোগ্য।

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

3$:    % take three inputs and generate range
3G     % push third input again
v      % vertically concatenate. Gives vertical array as output 
u      % get unique elements (i.e. remove the last one if it is repeated)
9X1    % predefined literal 'rat'
0ZG    % set rational format
ZD     % display using that format

5

রুবি , 32 54 48 বাইট

->a,b,c{(a..b).step(c){|x|p x%1>0?x:x.to_i};p b}

এই সমাধানটি মেগোর পাইথন উত্তরের উপর ভিত্তি করে এবং ধরে নেওয়া হয় যে cসর্বদা Rationalরুবির ভগ্নাংশ বিন্যাস হবে। এটি অনলাইন চেষ্টা করুন!

সম্পাদনা: একটি বাগ ঠিক করা যেখানে পূর্ণসংখ্যার মতো পূর্ণসংখ্যা উপস্থাপন করা হয়নি were -6 বাইটস নট দ্যাট চার্লস এবং মেগা টমকে ধন্যবাদ।

ফাংশনগুলি এইভাবে বলা হয়:

> f=->a,b,c{(a..b).step(c){|x|p x%1>0?x:x.to_i};p b}
> f[1,4,Rational(2,3)]
1
(5/3)
(7/3)
3
(11/3)
4

(3/1) কেবল 3 হওয়া উচিত নয়?
edc65

রুবির সবচেয়ে সহজ Rationalরূপটি 3হ'ল(3/1)
শার্লক 9

.step(b,c).mapএখানে বাইট গণনা হ্রাস করা উচিত
চার্লস

(a==a.to_i)a%1==0-4 বাইট জন্য হতে পারে
মেগাটম

-2,3,1/2r(উদাহরণ 1) সর্বশেষ 3দু'বার মুদ্রণ করে ।
মান কালি

3

জুলিয়া, 14 বাইট

f(a,b,c)=a:c:b

এটি ম্যাথামেটিকার উত্তরের মতো, জুলিয়ার রেঞ্জগুলি ইতিমধ্যে পছন্দসই বিন্যাসে রয়েছে, সুতরাং এটি আরও খাটো। এছাড়াও সংখ্যার সংগ্রহ প্রদান করে। উদাহরণ আউটপুট:

11-element StepRange{Rational{Int64},Rational{Int64}}:
 -3//1,-5//2,-2//1,-3//2,-1//1,-1//2,0//1,1//2,1//1,3//2,2//1

নোট করুন যে ডোনামিনেটরে 1 দিয়ে পূর্ণসংখ্যা প্রদর্শিত হয় এবং ভগ্নাংশের জন্য একটি ডাবল-স্ল্যাশ ব্যবহৃত হয়। প্রশ্নের মধ্যে সংজ্ঞায়িত ঠিক আউটপুট পেতে আরও কিছু কোড প্রয়োজন:

f(a,b,c)=map(x->println(x.num,x.den<2?"":"/$(x.den)"),a:c:b)

3

সিমপলির সাথে সিম্বলিক টুলবক্স / অক্টাভ, 27 বাইট সহ মতলব

এখন সংশোধন করা একটি ত্রুটি নির্দেশ করার জন্য @ সানচাইজসকে ধন্যবাদ

@(a,b,c)sym(union(a:c:b,b))

এটি একটি বেনামে ফাংশন। এটিকে কল করতে, এটিকে কোনও চলক বা ব্যবহারের জন্য নির্ধারণ করুন ans

উদাহরণ:

>> @(a,b,c)sym(union(a:c:b,b))
ans = 
    @(a,b,c)sym(union(a:c:b,b))
>> ans(-2,3,1/2)
ans =
[ -2, -3/2, -1, -1/2, 0, 1/2, 1, 3/2, 2, 5/2, 3]

এটি অনুমানের সাথে সামঞ্জস্য করে না, যেহেতু উপরের সীমাটি সর্বদা অন্তর্ভুক্ত থাকে না (উদাহরণ 2 দেখুন)।
সান্চাইজস

ধন্যবাদ! এখনই সংশোধন করা হয়েছে
লুইস মেন্ডো

এবং এছাড়াও, আমি মনে করি এর জন্য cআপনি ব্যবহার করতে পারেন, আমি উদ্ধৃত, যেটা টাইপ মামলা ভগ্নাংশ বাড়তি [...] বা W / E প্রতিনিধিত্বমূলক আপনার ভাষা । আমি মনে করি এটি একেবারে পরিষ্কার যে symbolicএটি একটি যৌক্তিক এবং অনুমোদিত (@ ভিজুয়ালবিয়ান এটি নিশ্চিত করতে চাইতে পারে) পছন্দ। কোলন অপারেটরের ফলাফল তারপরে একটি symbolicঅ্যারেতে 'আপগ্রেড করা' হয় যার অর্থ আপনি sym()কলটি পুরোপুরি মুক্তি দিতে পারেন ।
সান্চাইজস

@ সানচিইজস ধন্যবাদ, আমি স্পষ্টতা চেয়েছি
লুইস মেন্ডো

2

জাভাস্ক্রিপ্ট, 108 90 86   81 বাইট

(a,b,n,d)=>{var s="";for(a=a*d;a<b*d;a+=n)s+=(a%d?a+"/"+d:a/d)+" ";s+=b;return s}

একটি বেনামী ফাংশন। সাদা স্থান সহ একটি নামযুক্ত ভেরিয়েবলের অ্যাসাইনমেন্টের পরে:

var f=(a,b,n,d)=>
{ var s="";
  for(a=a*d; a<b*d; a+=n)
    s+= (a%d ? a + "/" + d : a/d) + " ";
  s+=b;
  return s
}

পরীক্ষার উদাহরণ:

console.log(f(1,2,1,8)); //writes:
1 9/8 10/8 11/8 12/8 13/8 14/8 15/8 2

console.log(f(-3,3,4,7)); // writes:
-3 -17/7 -13/7 -9/7 -5/7 -1/7 3/7 1 11/7 15/7 19/7 3 

জাভাস্ক্রিপ্ট, কোন পুনরাবৃত্তি, গ্রন্থাগার বা ফাংশনাল প্রোগ্রামিং ব্যবহার করে একটি আবশ্যক পদ্ধতি।


1

স্মার্টটাক - 89 বাইট

একবারের জন্য স্মার্টটাক প্রায় প্রতিযোগিতামূলক!

Number extend[p:e q:i[|h|self to:e by:i do:[:x|h:=x. x printNl].h=e ifFalse:[e printNl]]]

এভাবে কল করুন:

> 2 p:5 q:1/2
2
5/2
3
7/2
4
9/2
5

> 1 p:2 q:2/3
1
5/3
2

1

আর - 71 বাইট

ধরে নিন আপনি ইতিমধ্যে MASSপ্যাকেজটি ইনস্টল করেছেন

f=function(x,y,z)MASS::fractions(union(seq(x,y,eval(parse(text=z))),y))

> f(1, 2, '1/3')
[1]   1 4/3 5/3   2
> f(2, 5, '1/2')
[1]   2 5/2   3 7/2   4 9/2   5

1

পাইরেট, 56 বাইট

{(b,e,n,d):link(e,map(_ / d,range(b * d, e * d))).sort()}

শুরুতে (খ), শেষ (ঙ), অঙ্ক (n), এবং ডিনোমিনেটর (ডি) নেয় T পূর্ণসংখ্যার একটি ব্যাপ্তি তৈরি করে, এর মাধ্যমে ভাগ করে এবং তালিকার শেষটি সংযুক্ত করে (লিঙ্ক করে এবং পরে বাছাই করে)।

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