বেস পাইতে পূর্ণসংখ্যা


11

পটভূমি:

পাই ( π) হ'ল একটি ট্রান্সইডেন্টাল সংখ্যা , এবং সুতরাং এটির একটি দশমিক উপস্থাপনা রয়েছে। অনুরূপ, অন্য কোনও পূর্ণসংখ্যার ভিত্তিতে লেখা থাকলে উপস্থাপনাটি শেষ হবে না। তবে আমরা যদি বেসে এটি লিখি π?

দশমিক দশমিক সংখ্যা 10 এর ক্ষমতার প্রতিনিধিত্ব করে, তাই:

π = 3.14… = (3 * 10^0) + (1 * 10^-1) + (4 * 10^-2) + …

সুতরাং বেসে π, অঙ্কগুলি এর ক্ষমতার প্রতিনিধিত্ব করবে π:

π = 10 = (1 * π^1) + (0 * π^0)

এই নতুন বেসে, পূর্ণসংখ্যার এখন অবসানহীন উপস্থাপনা রয়েছে। দশমিক 10 সুতরাং এখন নিম্নলিখিত হয়:

10 => 100.01022… = (1 * π^2) + (0 * π^1) + (0 * π^0) + (0 * π^-1) + (1 * π^-2) + …

নোট করুন যে বেসে πব্যবহৃত সংখ্যাগুলি 0,1,2,3 হয় কারণ এগুলি এই সংখ্যাগুলির চেয়ে কম π

চ্যালেঞ্জ:

একটি অ-নেতিবাচক পূর্ণসংখ্যা দেওয়া xহয়:

  1. আউটপুট (থামানো ছাড়াই) বেসে এর উপস্থাপনা π। যদি সংখ্যাটির সীমাবদ্ধ প্রতিনিধিত্ব থাকে (0, 1, 2, 3), তবে প্রোগ্রামটি অসীম জিরো মুদ্রণের পরিবর্তে থামতে পারে।

  2. একটি নির্বিচারে বড় পূর্ণসংখ্যার নিন এবং বেসে nপ্রথম nসংখ্যাগুলি আউটপুট দিন ।xπ

নিয়মাবলী:

  • যেহেতু একটি সংখ্যার একাধিক সম্ভাব্য উপস্থাপনা রয়েছে, তাই আপনাকে অবশ্যই বৃহত্তম (সাধারণীকৃত) প্রদর্শিত হবে আউটপুট1.0 = 0.9999…দশমিক হিসাবে ঠিক এই সমস্যাটিও এই বেসে বিদ্যমান। বেসে π, একটি এখনও রয়েছে 1.0, তবে 0.3011…উদাহরণ হিসাবে এটিও রচনা করা যেতে পারে । একইভাবে, দশটি হয় 100.01022…, তবে হিসাবে 30.121…বা হিসাবে লেখা যেতে পারে 23.202…
  • এটি কোড-গল্ফ, তাই খুব কম বাইট জিতেছে। প্রোগ্রাম বা ফাংশন।
  • কোন বিল্ট-ইন ( আমি অপেক্ষায় থাকবো আপনি , ম্যাথামেটিকাল )

ফলাফল:

0       = 0
1       = 1
2       = 2
3       = 3
4       = 10.220122021121110301000010110010010230011111021101…
5       = 11.220122021121110301000010110010010230011111021101…
6       = 12.220122021121110301000010110010010230011111021101…
7       = 20.202112002100000030020121222100030110023011000212…
8       = 21.202112002100000030020121222100030110023011000212…
9       = 22.202112002100000030020121222100030110023011000212…
10      = 100.01022122221121122001111210201201022120211001112…
42      = 1101.0102020121020101001210220211111200202102010100…
1337    = 1102021.0222210102022212121030030010230102200221212…
9999    = 100120030.02001010222211020202010210021200221221010…

বেস পাইতে দশটির প্রথম 10,000 সংখ্যা

প্রতিপাদন:

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

ফলাফলকে এখানে একটি সংখ্যায় রূপান্তর করুন

সম্পর্কিত:


4
পাই পাওয়ার জন্য "বিল্ট-ইনস" কোনও বিল্ট-ইন অন্তর্ভুক্ত করে না?
নিট

3
@ নিট না, এর অর্থ এমন কোনও বিল্ট-ইন নেই যা পুরো টাস্ককে সম্পূর্ণ করে বা তুচ্ছ করে। অথবা যদি এইরকম অন্তর্নির্মিত উপস্থিত থাকে (যেমন আমি দেখিয়েছি ম্যাথেম্যাটিক্সের মতো), তবে কোনও বিল্ট-ইন ছাড়াই কোনও সমাধান অন্তর্ভুক্ত করার বিষয়ে নিশ্চিত হন যা উত্তরের আসল স্কোরের জন্য ব্যবহৃত হবে। এইভাবে, আপনি এখনও বিল্ট-ইন বিদ্যমান রয়েছে এমন লোককে দেখাতে পারবেন।
mbomb007

আমরা কি সীমিত-নির্ভুলতা-আক্ষরিক ব্যবহার করতে পারি?
এরিক আউটগল্ফার

পছন্দ করেছেন যদিও আমি নিশ্চিত নই যে ইনপুটটির জন্য কতগুলি সংখ্যার প্রয়োজন n, তবে আমি অনুমান করতে পারি যে পাইয়ের অবশ্যই কমপক্ষে nনির্ভুলতার অঙ্ক থাকতে হবে ।
mbomb007

8
আইএমও: বেইজ বেস বেস রূপান্তর কেবল অকারণ জটিলতা যুক্ত করে adds আপনার যদি মনে হয় এটি চ্যালেঞ্জকে তুচ্ছ করে তোলে, তবে, সম্ভবত চ্যালেঞ্জটি কেবল তুচ্ছ
কনর ও'ব্রায়ান

উত্তর:


1

জুলিয়া 0.6 , 81 বাইট

f(x,i=log(π,x1)=(y=big(π)^i;d::Int=x÷y;print(i==0?"$d.":"$d");f(x-d*y,i-1))

এটি টিআইও-তে প্রায় 22 কে অঙ্কে উপচে না আসা পর্যন্ত অঙ্কগুলি (এবং আমার জন্য 14 বাইট দাম পড়বে) মুদ্রণ করে। যদি আমাকে ইনপুট পাস করার অনুমতি দেওয়া হয় তবে আমি BigFloat5 বাইট কাটতে পারি। নির্বিচারে নির্ভুলতা স্থির মধ্যে বিল্ট ব্যবহার করে π। তবে এটি তার থেকে খানিকটা শীতল, এটি আসলে একটি অভিযোজিত নির্ভুলতা ধ্রুবক, π*1.0একটি bit৪ বিট ভাসমান পয়েন্ট সংখ্যা, π*big(1.0)(যা উচ্চতর নির্ভুলতার সংখ্যার সাথে গুণিত হয়) πআপনার যথার্থতা যা সেট করা হয়েছে তা দেয় ।

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


3

পাইথন 3 , 471 317 310 বাইট

কেয়ার্ড কইনারিংহিংহিংকে 7 বাইট ধন্যবাদ।

নিশ্চয়ই গল্ফগুলি আমি মিস করেছি। মন্তব্যগুলিতে নির্দ্বিধায় তাদের নির্দ্বিধায়।

def h(Q):
	a=0;C=b=4;c=d=s=1;P=o=3
	while P^C:
		a,b,c,d,s,o,P,A,B=b,s*a+o*b,d,s*c+o*d,s+o,o+2,C,0,1
		for I in Q:B*=c;A=A*a+I*B
		C=A>0
	return P
def f(n,p):
	Q=[-n];R=""
	while h([1]+Q)<1:Q=[0]+Q
	Q+=[0]*p
	for I in range(len(Q)):
		i=3;Q[I]+=3
		while h(Q):Q[I]-=1;i-=1
		R+=str(i)
	return R[:-p]+"."+R[-p:]

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

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

def poly_eval_pi_pos(poly,a=0,b=4,c=1,d=1,o=3,s=1,prev=9,curr=6):
	while prev != curr:
		a,b,c,d,s,o=b,s*a+o*b,d,s*c+o*d,s+o,o+2
		prev = curr
		res_n, res_d = 0,1
		for I in poly:
			res_d *= c
			res_n = res_n*a + I * res_d
		curr = res_n > 0
	return prev
def to_base_pi(n,precision):
	poly = [-n]
	res = ""
	while not poly_eval_pi_pos([1]+poly):
		poly = [0]+poly
	poly += [0]*precision
	for index in range(len(poly)):
		i = 3
		poly[index] += 3
		while poly_eval_pi_pos(poly):
			poly[index] -= 1
			i -= 1
		res += str(i)
	return res[:-precision]+"."+res[-precision:]

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


আপনার কি পাইথন 3 লাগবে? যদি 2 ব্যবহার করা যায় তবে আপনি মিশ্র স্পেস এবং ট্যাব ব্যবহার করতে পারেন।
mbomb007

@ mbomb007 "আমি যে গল্ফগুলি মিস করেছি" এতে কেবল গল্ফিংয়ের জন্য কোনও পুরানো সংস্করণে স্যুইচ করা অন্তর্ভুক্ত নয়: পি
লিকি নুন

তারপর আপনি ব্যবহার করতে পারে `i`
mbomb007

3

রুবি -rbigdecimal/math , 111 103 97 বাইট

->x,n{q=BigMath::PI n;r=q**m=Math.log(x,q).to_i;n.times{$><<"#{?.if-2==m-=1}%i"%d=x/r;x%=r;r/=q}}

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

হিসাবে ইনপুট নম্বর xএবং পছন্দসই নির্ভুলতা নেয় n। মুদ্রণ দ্বারা আউটপুট। স্বেচ্ছাসেবী pecision PI মান জন্য অন্তর্নির্মিত বিগডিসিমাল লাইব্রেরি ব্যবহার করে।


অন্তর্নির্মিত সুস্পষ্টভাবে নিষিদ্ধ
লিকি নুন

1
কার্যটিতে মন্তব্যগুলি দেখুন: "- পাই পাওয়ার জন্য কোনও" বিল্ট-ইনস "কোনও বিল্ট-ইন অন্তর্ভুক্ত করে না?" "- না, এর অর্থ এমন কোনও অন্তর্নির্মিত নয় যা পুরো টাস্ককে সম্পূর্ণ করে বা তুচ্ছ করে" "
কিরিল এল।

পছন্দ করুন পাইয়ের জন্য বিল্ট-ইনগুলি এতক্ষণ অনুমোদিত হয় যতক্ষণ না ফলস্বরূপ উত্তরটি সঠিক।
mbomb007

কমান্ড লাইন বিকল্পগুলির বাইটগুলি গণনা করতে হবে না? কীভাবে এটি কাজ করে তা সম্পর্কে আমি নিশ্চিত নই
mbomb007

আমি বলব, এই মেটা অনুযায়ী আর হয় না । "এটিকে সরল রুবি থেকে এক ধরণের আলাদা ভাষা বিবেচনা করুন" এর লাইনে কিছু in
কিরিল এল।

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