পাইথাগোরিয়ান উপপাদটি দৃশ্যত ব্যাখ্যা কর


36

পাইথাগোরিয়ান উপপাদ্যের একটি সাধারণ দর্শনীয় ব্যাখ্যাটি হ'ল:

3 বাক্স

স্কোয়ারগুলি বোঝানো হয় পাশের দৈর্ঘ্যের স্কোয়ারগুলি এবং এর ক্ষেত্রগুলিকে প্রতিনিধিত্ব করার জন্য a + b = c, যেমন পাইথাগোরিয়ান উপপাদ্য বলে says

এই অংশটি যা আপনাকে দেখাতে হবে।

তোমার কাজ

  • আপনি ইনপুট হিসাবে দুটি পূর্ণসংখ্যা পাবেন যা বোঝায় পক্ষগুলি aএবং bএকটি ডান ত্রিভুজ (প্রাক্তন 3, 4)।
  • এর পরে আপনি লেন্থ থেকে বের স্কোয়ার করতে হবে a, bএবং cএর বাইরে #অক্ষর। উদাহরণস্বরূপ এখানে 3:
###
###
###
  • এরপরে আপনি এগুলিকে গণিতের সমীকরণে ফর্ম্যাট করবেন যা নির্দিষ্ট পাইথাগোরিয়ান ট্রিপলেট ব্যাখ্যা করে:
             #####
      ####   #####
###   ####   #####
###   ####   #####
### + #### = #####
  • লক্ষ্য করুন কিভাবে =এবং +লক্ষণ উভয় পক্ষের শূণ্যস্থান আছে এবং সবকিছু কেমন নীচে হয়।
  • আপনি কখনও মান পাবেন না aএবং bএটি cঅ-অবিচ্ছেদ্য করে তোলে make
  • এটি তাই বাইট জেতে সংক্ষিপ্ততম কোড !

পরীক্ষার মামলা

(আমার আরও একবার আসার পরে এগুলি হাত দিয়ে তৈরি করা সত্যিই শক্ত)

3, 4
             #####
      ####   #####
###   ####   #####
###   ####   #####
### + #### = #####

6, 8
                    ##########
                    ##########
         ########   ##########
         ########   ##########
######   ########   ##########
######   ########   ##########
######   ########   ##########
######   ########   ##########
######   ########   ##########
###### + ######## = ##########

4, 3
             #####
####         #####
####   ###   #####
####   ###   #####
#### + ### = #####

5, 12
                       #############
        ############   #############
        ############   #############
        ############   #############
        ############   #############
        ############   #############
        ############   #############
        ############   #############
#####   ############   #############
#####   ############   #############
#####   ############   #############
#####   ############   #############
##### + ############ = #############

3
@ বারমস "আপনি কখনই সি এবং অ-অবিচ্ছেদ্য করে এমন একটি এবং বি এর জন্য মান পাবেন না।"
মাল্টেসেন

2
@ রিটোকোরাদি স্কোয়ারগুলির অঞ্চলগুলি ভালভাবেই দেখুনa+b=c
মাল্টেসেন

1
যদি a, bএবং cস্কোয়ারের অঞ্চল হিসাবে সংজ্ঞায়িত করা হয়, তবে উদাহরণগুলি ভুল।
রেটো কোরাাদি

2
আপনার আরও একটি দুর্দান্ত টেস্ট কেস যুক্ত করা উচিত, যেমন 5 + 12 = 13.
mbomb007

7
দ্রষ্টব্য: এটি "পাইথাগোরিয়ান উপপাদ্যের একটি চাক্ষুষ ব্যাখ্যা" নয়। এই পিথাগোরাসের উপপাদ্য। এটি মূলত: ঠিক এইভাবে তৈরি হয়েছিল: জ্যামিতিকভাবে। তারা বর্গমূলের সম্পর্কেও জানত না, আরও মজার বিষয়, পাইথাগোরাস নিজেও অযৌক্তিক সংখ্যার অস্তিত্বকে বিশ্বাস করেননি। এর অর্থ পাইথাগোরাস ভেবেছিলেন যে স্কয়ার্ট (2) দুটি সসীম পূর্ণসংখ্যার বিভাজন দ্বারা ঠিক উপস্থাপন করা যেতে পারে। আসল উপপাদ্যটিই এখন আমরা "ভিজ্যুয়াল উপস্থাপনা"
বলি

উত্তর:



12

সিজেম, 49 বাইট

" +   = "S/3/[q~_2$mh:H]_'#f*:a.*.\:+SH*f.e|zW%N*

সিজেএম ইন্টারপ্রেটারে এটি অনলাইনে চেষ্টা করুন ।

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

" +   = "S/3/ e# Split at spaces, the into chunks of length 3.
              e# This pushes [["" "+" ""] ["" "=" ""]].
[             e#
  q~          e# Read and interpret all input from STDIN.
  _2$         e# Copy both integers.
  mh          e# Calculate the hypotenuse of the triangle with those catheti.
  :H          e# Save the result in H.
]             e# Collect catheti and hypotenuse in an array.
_'#f*         e# Copy and replace each length with a string of that many hashes.
:a            e# Wrap each string in an array.
.*            e# Vectorized repetition. Turns strings into square arrays.
.\            e# Interleave with the string of operators.
:+            e# Concatenate to form an array of strings.
SH*           e# Push a string of spaces of length H.
f.e|          e# Mapped vectorized logical OR; pads all strings with spaces to
              e# length H.
zW%           e# Zip and reverse; rotates the array.
N*            e# Join the strings, separating by linefeeds.

11

পাইথন 2, 134 100 বাইট

a,b=input()
i=c=int(abs(a+b*1j))
while i:print"# "[i>a]*a," +"[i<2],"# "[i>b]*b," ="[i<2],"#"*c;i-=1

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

প্রোগ্রামটি কমা-বিচ্ছিন্ন পূর্ণসংখ্যার হিসাবে ইনপুট নেয়, পাইথনের অন্তর্নির্মিত জটিল সংখ্যাগুলি ব্যবহার করে হাইপোপেনিউজ গণনা করে, এবং সেই মান থেকে গণনা করে প্রতিটি লাইনের প্রিন্টিং যায়। প্রধান গল্ফিং ট্রিক শর্তাবলী #/ +/ =বনাম স্থান নির্বাচন করার জন্য স্ট্রিং ইনডেক্সিং ব্যবহার করছে ।

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


আমি ঠিক একই জিনিসটি পেয়েছি, "# "[i>a]*aপ্রতিটি ভেরিয়েবলের জন্য এটি না করে কেবল পুনরাবৃত্তি করা সংক্ষিপ্ত করে অনুধাবন করতে কিছু সময় নিয়েছে ।
xnor

11

জুলিয়া, 121 114 112 বাইট

f(a,b)=for i=1:(c=isqrt(a^2+b^2)) g(x,t)=(i>c-x?"#":" ")^x*(i<c?"  ":t)" ";println(g(a," +")g(b," =")g(c,""))end

Ungolfed:

function f(a,b)
    # Compute the hypotenuse length
    c = isqrt(a^2 + b^2)

    # Write the lines in a loop
    for i = 1:c
        # Make a function for constructing the blocks
        g(x,t) = (i <= c - x ? " " : "#")^x * (i < c ? "  " : t) " "

        println(g(a," +") g(b," =") g(c,""))
    end
end

স্থির সমস্যা এবং গ্লেন ওকে ধন্যবাদ 2 বাইট সংরক্ষিত


11

জাভাস্ক্রিপ্ট ES6, 155 134 140 129 বাইট

(n,m)=>eval("for(o='',q=(b,s)=>' #'[z<b|0].repeat(b)+(z?'   ':s),z=i=Math.hypot(n,m);z--;)o+=q(n,' + ')+q(m,' = ')+q(i,'')+`\n`")

আমি এটি দিয়ে আবার লিখেছি for। প্রচুর গল্ফিং এখনও ...

যদি কিছু কাজ না করে তবে আমাকে জানান। আমি সকালে এটি ঠিক করব।

সাফারি নাইটলি পরীক্ষিত

Ungolfed:

(n,m)=>
   Array(
     z=Math.hypot(n,m)
   ).fill()
   .map((l,i)=>
      (q=(j,s)=>
        (z-i<=j?'#':' ')
        .repeat(j)+
         (z-i-1?' ':s)
      )
      (n,`+`)+
      q(m,`=`)+
      q(z,'')
   ).join`
   `

ব্যাখ্যা:

(আপডেট করা হয়নি) তবে এখনও যথেষ্ট সঠিক।

(n,m)=> // Function with two arguments n,m
   Array( // Create array of length...
    z=Math.hypot(n,m) // Get sqrt(n^2+m^2) and store in z
   ).fill() // Fill array so we can loop
   .map((l,i) => // Loop z times, take l, and i (index)
     (q=j=>( // Create function q with argument j
      z-i<=j? // If z-i is less than or equal to j...
        '#' // Use '#'
      : // OR
        ' ' // Use space
      ).repeat(j) // Repeat the character j times
     )(n) // Run with n
   + // Add to string
   ` ${ // Space
      (b=z-i-1)? // If this isn't the last line...
       ' ' // Return ' '
      : // Otherwise
       '+' // Plus
    } ${ // Space
      q(m) // run function q with arg m
    } ${ // Space
      b? // If b
       ' ' // Return space
      : // Otherwise
        '=' // '='
    }` + // Add to...
    '#'.repeat(z) // Repeat hashtag, z times
  ).join` // Join the new array with new lines
  `

ডেমো

ES5 সংস্করণ ইনপুট অবশ্যই সংখ্যার বৈধ সেট হতে হবে :

function _taggedTemplateLiteral(e,t){return Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))}var _templateObject=_taggedTemplateLiteral(["\n"],["\n"]),t=function(e,t){return Array(z=Math.sqrt(e*e+t*t)).fill().map(function(r,n){return(q=function(e,t){return(z-n<=e?"#":" ").repeat(e)+(z-n-1?" ":t)})(e,"+")+q(t,"=")+q(z,"")}).join(_templateObject)};
// Demo
document.getElementById('go').onclick=function(){
  document.getElementById('output').innerHTML = t(+document.getElementById('input').value,
                                                 +document.getElementById('input2').value)
};
<div style="padding-left:5px;padding-right:5px;"><h2 style="font-family:sans-serif">Visually Explaining the Pythagorean Theorem</h2><div><div  style="background-color:#EFEFEF;border-radius:4px;padding:10px;"><input placeholder="Number 1" style="resize:none;border:1px solid #DDD;" id="input"><input placeholder="Number 2" style="resize:none;border:1px solid #DDD;" id="input2"><button id='go'>Run!</button></div><br><div style="background-color:#EFEFEF;border-radius:4px;padding:10px;"><span style="font-family:sans-serif;">Output:</span><br><pre id="output" style="background-color:#DEDEDE;padding:1em;border-radius:2px;overflow-x:auto;"></pre></div></div></div>


2
+1, তবে ওপি বলার সাথে একটি ছোট সমস্যা রয়েছে: "লক্ষ্য করুন যে কীভাবে = এবং + চিহ্নগুলির উভয় পক্ষে ফাঁকা স্থান রয়েছে এবং সবকিছু কীভাবে নীচে রয়েছে" "
লায়ো লাম

1
স্নিপেট ফায়ারফক্স 40.0.3 (উইন্ডোজ 7x64 এসপি 1) এ কাজ করছে না।
ইসমাইল মিগুয়েল

1
স্নিপেট ক্রোমিয়াম 44 লিনাক্স x64 এ কাজ করছে না
Nenotlep

2
@ ইসমাইল মিগুয়েল lat এই পরেরগুলি সঠিকভাবে পরিচালনা করার জন্য প্রয়োজনীয় নয়, যদিও: "আপনি কখনই এর মান পাবেন না aএবং bএটি cঅ-অবিচ্ছেদ্য করে তোলে " "
DLosc

2
ইওল এর +1 দুর্দান্ত ব্যবহার। ইঙ্গিত: (z<b?'#':' ')->' #'[z<b|0]
edc65

7

পাইথ, 51 49 বাইট

AQJs.aQLj*b]*b\#;j_MCm_.[d\ Jcj[yJb\=byHb\+byG))b

ফর্ম ইনপুট আশা [3,4]

এখানে চেষ্টা করুন

AQ - ইনপুট বরাদ্দ G, H

Js.a,GH অনুমান হিসাবে গণনা করে J

Lj*b]*b\#;- y(b)আকারের বর্গাকার হিসাবে সংজ্ঞায়িত করা হয়েছে b(কোডের অন্য কোথাও bমানে নিউলাইন)

j_MCm_.[d\ Jcj[yJb\=byHb\+byG))b - স্কোয়ার তৈরি করে, ফাঁকা জায়গা সহ প্যাড এবং স্থানান্তর করে

মালটিসেনকে ধন্যবাদ দিয়ে দুটি বাইট সংরক্ষণ করা হয়েছে।


আপনার কোডটি ঠিক কী করে তা আমি জানি না তবে আমি নিশ্চিত যে এটি .iসমস্ত তালিকার পরিবর্তে নটারলেস থেকে উপকৃত হতে পারে।
মালটিসেন

@ মাল্টেসেন আপনার শেষ মন্তব্যে, আসলে আমি পারছি না, কারণ প্রথম লাম্বদার Jভিতরে উপস্থিতিটি প্রথম ব্যবহারের পরে মূল্যায়ন Jহয়।
Ypnypn

আহ, দেখেনি। আরেকটি জিনিস: এর *]সাথে প্রতিস্থাপন করা যেতে পারেm
মালটিসেন

3

রুবি, 134

->a,b{c=((a**2+b**2)**0.5).round
c.times{|i|
d=i<c-1?'  ':'+='
puts (c-i>a ?' ':?#)*a+" #{d[0]}  #{(c-i>b ?' ':?#)*b} #{d[1]} "+?#*c}}

লাইন পদ্ধতির দ্বারা সহজ লাইন।

পরীক্ষার প্রোগ্রামের নীচে, #{....}একটি স্ট্রিংয়ের মধ্যে এক্সপ্রেশনগুলি সন্নিবেশ করানোর জন্য ব্যবহৃত সিনট্যাক্স ("স্ট্রিং ইন্টারপোলেশন") এর সাথে বিভ্রান্তি এড়াতে সাহায্য করতে প্রতীকটি @ এ পরিবর্তিত হয়েছে । প্রতিটি ইনপুট আলাদা লাইনে দেওয়া উচিত।

f=->a,b{c=((a**2+b**2)**0.5).round
c.times{|i|
d=i<c-1?'  ':'+='
puts (c-i>a ?' ':?@)*a+" #{d[0]}  #{(c-i>b ?' ':?@)*b} #{d[1]} "+?@*c}}

A=gets.to_i
B=gets.to_i
f.call(A,B)

আমি রুবিকে চিনি না, তবে আমি অনুমান করছি যে এটি আরও কমতে পারে, যেহেতু রুবি সমাধানগুলি প্রায়শই পাইথন সলিউশনগুলিকে পরাজিত করে (আমার বয়সের অভিজ্ঞতায়)। প্রারম্ভিকদের জন্য, a*a+b*bগণনা থেকে দুটি বাইট কাটা উচিত c
DLosc

3

সি, 176 বাইট

সি এটি জিততে যাচ্ছে না, তবে মজাটি এটির পক্ষে মূল্যবান।

#define A(x,y)for(j=x;j--;)putchar("# "[i+1>x]);printf(i?"   ":" "#y" ");
i;j;main(a,b,c){for(c=scanf("%d %d",&a,&b);a*a+b*b>c*c;c++);for(i=c;i--;puts("")){A(a,+)A(b,=)A(c,)}}

বেশিরভাগ মুদ্রিত:

#define A(x,y)for(j=x;j--;)putchar("# "[i+1>x]);printf(i?"   ":" "#y" ");
i;j;
main(a,b,c)
{
    for(c=scanf("%d %d",&a,&b);a*a+b*b>c*c;c++);
    for(i=c;i--;puts(""))
    {
        A(a,+)
        A(b,=)
        A(c,)
    }
}

জিসিসি আমাদের তৃতীয় প্যারামিটারটিকে মেইন (এনভায়রনমেন্ট ভেরিয়েবলের একটি অ্যারে) পাস করতে সক্ষম করে, তাই আমরা আমাদের উদ্দেশ্যটির জন্য এটি ব্যবহার করার সুযোগ নিই।

দ্য

for(c=scanf("%d %d",&a,&b);a*a+b*b>c*c++;);

সমান হবে

scanf("%d %d",&a,&b);
for(c=2;a*a+b*b>c*c++;);

কারণ scanfসফলভাবে স্ক্যান হওয়া পরামিতিগুলির সংখ্যা প্রদান করে।


2

পিএইচপি, 178 170 168 বাইট

ইনপুট হ'ল জিইটি প্যারামিটার xএবং y। দুর্ভাগ্যক্রমে আমি এই পুনরাবৃত্তি স্ট্রিং গল্ফ বলে মনে হয় না।

<?php for(@$i=$z=hypot($x=$_GET[x],$y=$_GET[y]),@$s=str_repeat;$i;$i--)@print$s($i<=$x?~Ü:~ß,$x).(($l=$i==1)?~ßÔß:~ßßß).$s($i<=$y?~Ü:~ß,$y).($l?~ßÂß:~ßßß).$s(~Ü,$z).~õ;
  • আমার সমস্ত স্ট্রিং উল্টিয়ে এবং কোটগুলি ফেলে 8 টি বাইট সংরক্ষণ করা হয়েছে।
  • শর্ত প্রতিস্থাপন 2 বাইট সংরক্ষিত $i>0সঙ্গে$i

নিশ্চিত কেন পিএইচপি পছন্দ করে না @echoতাই আমাকে 1 বাইট দিয়ে বলি দিতে হয়েছিল @print

এসই এনকোডিংয়ের জন্য স্ক্রু করার ক্ষেত্রে, এটি উইন্ডোজ -১২২২ (ইউটিএফ 8 নয়) এ এনকোড করা উচিত।


1
echoবনাম print। দেখুন: stackoverflow.com/questions/7094118/...
MarcDefiant

আহ যে বোঝায়। ধন্যবাদ!
ডানক্মেমস

2

এপিএল (ডায়ালগ প্রসারিত) , 33 29 এসবিসিএস বাইট

-3 আমার ডায়ালগ এপিএল বাড়ানোর কারণে।

নামবিহীন উপসর্গ ল্যাম্বদা:

{⊖⍕,' +=',⍪{⍵ ⍵⍴⍕#}¨⍵,√+/⍵*2}

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

{} "ডিএফএন"; আর্গুমেন্ট (পার্শ্ব দৈর্ঘ্য)

⍵*2 বর্গক্ষেত্র

+/ সমষ্টি

 বর্গমূল

⍵, যুক্তি সংশোধন

{ প্রত্যেকের জন্য নিম্নলিখিত বেনামে ল্যাম্বডা প্রয়োগ করুন

  # মূল নামস্থান

   পাঠ্য হিসাবে বিন্যাস

  ⍵ ⍵⍴ দ্বিগুণ যুক্তি ব্যবহার R সেই মাত্রার সঙ্গে ম্যাট্রিক্স মধ্যে eshape।

 কলাম করা

' ++=', এই তিনটি অক্ষরকে তিনটি সারিতে যুক্ত করুন

, রেভেল (সারিগুলিকে তালিকায় একত্রিত করুন)

 পাঠ্য হিসাবে বিন্যাস

 উল্টে উল্টানো


1

সিজেম, 78 বাইট

q~_2f#~+mQ+ee_2=~e>f{\~@1$-S*\'#*+_'#e=\a*_0=,S*@"+= "=1$,(S*\+1$a\a@a+++~}zN*

এটি প্রথমে অনুমান (এইচ) গণনা করে, তারপরে, প্রতিটি পক্ষের (এস) এর জন্য, এটি এস: রেখার একটি অ্যারে তৈরি করে: H-Sস্পেসেস + Sড্যাশগুলি। অবশেষে, এটি ম্যাট্রিক্স স্থানান্তর করে।

ডেমো


1

Lua5.2, 257 241 227 222 বাইট

r=io.read
a=r"*n"b=r"*n"c=math.sqrt(a^2+b^2)d=a+b
w=io.write
for i=1,c do
for j=0,d+c+5 do
w((j>d+5 or(i>c-b and j>a+2 and j<d+3)or(i>c-a and j<a))and"#"or(i==c and(j==a+1 and"+"or(j==d+4 and"="or" "))or" "))end
w"\n"end
  • সম্পাদনা 1: সরল পাঠ
  • সম্পাদনা 2: আরও শ্বেতস্থান সরানো হয়েছে
  • সম্পাদনা 3: অন্য উত্তরio দ্বারা অনুপ্রাণিত ফাংশনগুলির বিমূর্ততা উপকরণ

1

কাঠকয়লা , 24 বাইট

⊞θ₂ΣXθ²F =+«←←←ι←G↑←↓⊟θ#

এটি অনলাইন চেষ্টা করুন! লিঙ্কটি কোডটির ভার্জোজ সংস্করণ। দুটি উপাদানের অ্যারে হিসাবে ইনপুট নেয়। ব্যাখ্যা:

⊞θ₂ΣXθ²

ইনপুটগুলিতে হাইপোথেনজ যুক্ত করুন।

F =+«

বিপরীত ক্রমে প্রতিটি স্কোয়ারের ডানদিকে প্রদর্শিত অক্ষরগুলির উপর লুপ করুন।

←←←ι←

ফাঁক দিয়ে সেই অক্ষরটি বাম দিকে মুদ্রণ করুন।

G↑←↓⊟θ#

অ্যারে থেকে শেষ নম্বরটি পপ করুন এবং #সেই আকারের বর্গাকার মুদ্রণ করুন ।


1
@ কেভিন ক্রুজসেন হু, কী উপস্থাপনা! এখনই ঠিক করা উচিত।
নীল

1

পাওয়ারশেল , 139 137 135 বাইট

-২ কেবলমাত্র ASCII- এর
জন্য -2 ধন্যবাদ মজিকে ধন্যবাদ

param($a,$b)($c=[math]::sqrt($a*$a+$b*$b))..1|%{(($m=" ","#")[$_-le$a]*$a)," +"[$_-eq1],($m[$_-le$b]*$b)," ="[$_-eq1],("#"*$c)-join" "}

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

$ গ আহত গণনা করা হচ্ছে এবং সেখানে সম্ভবত মধ্যে শর্তসাপেক্ষে swap 'র একটি ভাল উপায় এর #এবং । শর্তসাপেক্ষে চিহ্নগুলি যুক্ত করার সময় খণ্ডগুলির একটি তালিকা তৈরি করে এবং তাদের সাথে যোগ দেয়।


1
এখানে অপ্রয়োজনীয় বন্ধনী রয়েছে $m=(" ","#"): এটি অনলাইনে চেষ্টা করুন!
mazzy

@ মজজি হা হা,
ওফস

0

জাপট, 28 বাইট

পূর্ণসংখ্যার অ্যারের হিসাবে ইনপুট নেয়।

pUx²¬)ËÆDç'#
í"+="¬ûR3)c ·z3

চেষ্টা করে দেখুন

                    :Implicit input of array U=[a,b]
pUx²¬)ËÆDç'#
p                   :Push
 U ²                :  Square each element in U
  x                 :  Reduce by addition
    ¬               :  Square root
     )              :End push
      Ë             :Map each D
       Æ            :  Map the range [0,D)
        Dç'#        :    Repeat "#" D times
í"+="¬ûR3)c ·z3
í                   :Interleave
 "+="¬              :  Split the string "+=" to an array of characters
      û             :  Centre pad each
       R3           :    With newlines to length 3
         )          :End interleave
          c         :Flatten
            ·       :Join with newlines
             z3     :Rotate clockwise 270 degrees

0

05 এ বি 1 ই , 38 বাইট

nOtª©Å10ζíε„ #yè®Rׄ= NĀèð.øý}»R„=+`.;

দুটি সংখ্যার (যেমন [3,4]) তালিকা হিসাবে ইনপুট নেয় ।

এটি অনলাইনে চেষ্টা করুন বা সমস্ত পরীক্ষার কেস যাচাই করুন

ব্যাখ্যা:

n             # Take the square of each value in the (implicit) input-list
              #  i.e. [3,4] → [9,16]
 O            # Take the same of that list
              #  i.e. [9,16] → 25
  t           # Take the square-root of that sum
              #  i.e. 25 → 5.0
   ª          # Append it to the (implicit) input-list
              #  i.e. [3,4] and 5.0 → [3,4,5.0]
    ©         # Store it in the register (without popping)
Å1            # Change each value to an inner list of that amount of 1s
              #  i.e. [3,4,5.0] → [[1,1,1],[1,1,1,1],[1,1,1,1,1]]
  0ζ          # Zip/transpose; swapping rows/columns, with "0" as filler
              #  i.e. [[1,1,1],[1,1,1,1],[1,1,1,1,1]]
              #   → [[1,1,1],[1,1,1],[1,1,1],["0",1,1],["0","0",1]]
    í         # Reverse each inner list
              #  i.e. [[1,1,1],[1,1,1],[1,1,1],["0",1,1],["0","0",1]]
              #   → [[1,1,1],[1,1,1],[1,1,1],[1,1,"0"],[1,"0","0"]]
ε         }   # Map the inner lists to:
  #          #  Push string " #"
    yè        #  Index each inner list value into this string
              #   i.e. " #" and [1,1,"0"] → ["#","#"," "]
      ®R      #  Push the list from the register
        ×     #  Repeat the character that many times
              #   i.e. ["#","#"," "] and [5.0,4,3] → ["#####","####","   "]
 „=           #  Push string "= "
   NĀ         #  Push the map-index trutified (0 remains 0; everything else becomes 1)
              #   i.e. 0 → 0
              #   i.e. 3 → 1
     è        #  Use it to index into the string
              #   i.e. "= " and 0 → "="
              #   i.e. "= " and 1 → " "
      ð.ø     #  Surround it with spaces
              #   i.e. "=" → " = "
              #   i.e. " " → "   "
         ý    #  Join the map-list together with this string as delimiter
              #   i.e. ["#####","####","   "] and "   " → "#####   ####      "
»             # After the map, join everything by newlines
              #  i.e. ["##### = #### = ###","#####   ####   ###","#####   ####   ###","#####   ####      ","#####             "]
              #   → "##### = #### = ###\n#####   ####   ###\n#####   ####   ###\n#####   ####      \n#####             "
 R            # Reverse the string
              #  i.e. "##### = #### = ###\n#####   ####   ###\n#####   ####   ###\n#####   ####      \n#####             "
              #   → "             #####\n      ####   #####\n###   ####   #####\n###   ####   #####\n### = #### = #####"
  „=+`.;      # And replace the first "=" with "+"
              #  i.e. "             #####\n      ####   #####\n###   ####   #####\n###   ####   #####\n### = #### = #####"
              #   → "             #####\n      ####   #####\n###   ####   #####\n###   ####   #####\n### + #### = #####"
              # (and output the result implicitly)

DnOt©)˜ε'#×y.Dðy×®y-.D)R}ø»আমার চেষ্টা ছিল যতক্ষণ না আমি লক্ষ্য করেছি +এবং =
ম্যাজিক অক্টোপাস উরান

@ ম্যাজিক অ্যাক্টোপাস ইউরান হ্যাঁ, এই তিনটি স্পেস +এবং= প্রকৃতপক্ষে কোডের অধিকাংশ অংশ জন্য দায়ী। BTW, আপনি যা করতে পারেন গলফ 2 প্রতিস্থাপন করে আপনার পদ্ধতির মধ্যে বাইট DnOt©)˜সঙ্গে nOt©ª, আমি আমার বর্তমান উত্তর করেনি। :) .Dযদিও আমি আপনার ব্যবহার পছন্দ করি ।
কেভিন ক্রুইজসেন

0

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

{$!=sqrt $^a²+$^b²;flip map({map {[' ','#'][$^d>$_]x$d,' =+ '.comb[!$_*++$ ]},$!,$b,$a},^$!)X"
"}

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

অজ্ঞাতনামা কোড ব্লক যা দুটি সংখ্যা নিয়েছে এবং একটি শীর্ষস্থানীয় নিউলাইন এবং তিনটি শীর্ষস্থানীয় স্পেস এবং প্রতিটি লাইনে একটি করে পিছনে পূর্ণ স্ট্রিংটি প্রদান করে।

আমরা পরিবর্তে অন্যান্য অক্ষর ব্যবহার করতে পারেন #, তাহলে আমি প্রতিস্থাপন দ্বারা একটি বাইট সংরক্ষণ করতে পারবেন '#'সঙ্গে \*


0

সি # (.নেট কোর) , 221 , 194 বাইট

এটি বেশ দীর্ঘ সময় অনুভব করে। এই সংস্করণটি স্ট্রিংটি তৈরি করতে লুপ করে।

সম্পাদনা: সিরিয়াল চর সংযোজনের জন্য স্ট্রিং কনস্ট্রাক্টর ব্যবহার করে অস্যাসি-কেবল একটি দুর্দান্ত -27 বাইট গল্ফ! এছাড়াও, আমি ম্যাথ ব্যবহার করছি। স্কোরটি সিস্টেম নয় ম্যাথ.স্যাকআরটি। এই সমন্বয় করা হয়েছে!

(a,b)=>{int c=(int)System.Math.Sqrt(a*a+b*b),j=c;var s="";while(j>0)s+=new string(j>a?' ':'#',a)+(j>1?"   ":" + ")+new string(j>b?' ':'#',b)+(j-->1?"   ":" = ")+new string('#',c)+"\n";return s;}

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


1
মনে রাখবেন শেষ সেমিকোলনের দরকার নেই, এবং আপনি ইন্টারেক্টিভ ব্যবহার করছেন না এমনও System.Mathনয়Math
ASCII- কেবল



একটি জিনিস, আমি ভুল না করে তা নিশ্চিত করার জন্য আমি সমস্ত নির্দেশাবলী ব্যবহার করে সরিয়ে ফেলতাম
ASCII- কেবল

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