3/14 দিনের জন্য ধাঁধা


62

xkcd π কমিক

শুভ দিন π এই প্রশ্নের লক্ষ্য হল 3 ব্যাসার্ধের বৃত্তের জন্য অঞ্চলটি গণনা করা, যেখানে A = ²r² ²

ধরা আপনি ধ্রুবক π যে এক আপনি প্রোগ্রামিং করছে তুলনায় বিভিন্ন ভাষায় সংজ্ঞায়িত করা হয় ব্যবহার করতে হবে যে। উদাহরণস্বরূপ, যদি আপনি একটি সি প্রোগ্রাম ফোরট্রান এর ব্যবহার করে লিখতে পারেন MATH::PI, অথবা একটি পাইথন প্রোগ্রাম জাভার ব্যবহার করে java.lang.Math.PI

নিয়মাবলী:

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

এখানে একটি উদাহরণ যা ব্যাশে চলে এবং এটি পাইথনের সঞ্চিত math.piমান ব্যবহার করে:

#!/bin/bash
PI=`python -c 'import math; print math.pi'`
bc -l <<< "3 * 3 * $PI"

আউটপুট:

28.27433388231

এটি একটি জনপ্রিয়তা প্রতিযোগিতা, সুতরাং এক সপ্তাহের পরে সর্বাধিক ভোট সহ এন্ট্রি জিতল।

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

* চিত্র সৌজন্যে: http://xkcd.com/10/


38
এটা 14 তম মাসের তৃতীয় দিন ?? আমার ক্যালেন্ডারটি অবশ্যই ভেঙে যেতে হবে।
গ্যারেথ

30
পরের বছর: 3/14/15 9: 26 এবং 53 সেকেন্ডে, আমি একটি চ্যালেঞ্জ পোস্ট করব
থিডক্টর

5
বিতৃষ্ণা। তাও ভাল। এবং এই.
bjb568

3
@ বিজেবি আমি সম্মত, তাউ আরও বুদ্ধিমান হয়েছে, তবে এর অর্থ এই নয় যে আমরা মিড মার্চে কিছুটা আনন্দ করতে পারি না। :)
ভূগর্ভস্থমোরাইল

9
কত উদ্ভট। Π দিনে আমার খ্যাতি ছিল 314.
tbodt

উত্তর:


128

সি + x86 সমাবেশ

আপনার ভাষার সফ্টওয়্যারটিতে স্থির সংজ্ঞায়িত সন্তুষ্ট নন? আপনার এফপিইউ হার্ডওয়্যার থেকে পিআইয়ের একটি ধ্রুবক মান অ্যাক্সেস করতে পারে এমন কোনও ভাষা কেন ব্যবহার করবেন না:

#include <stdio.h>

int main (int argc, char **argv) {
    double pi;
    __asm__("fldpi" : "=t" (pi));
    printf("%g\n", 3 * 3 * pi);
    return (0);
}

67
পবিত্র বাজে কথা, পাইয়ের মান লোড করার জন্য একটি নির্দেশনা রয়েছে।
ব্যবহারকারী 2357112

21
x86 এর প্রত্যেকটির জন্য নির্দেশনা রয়েছে।
ফ্লফি


7
7 ধ্রুবকের পক্ষে খুব ভাল পছন্দ! আমি সর্বদা লগই (2) ব্যবহার করছি, তবে বলুন, 2।
টিম এস

3
@ ফ্লুফি আমার এক্স 86 কোরটি নষ্ট হয়েছে: আমি এমওভিএক্স এক্স, সি0ফেফ চেষ্টা করেছি; দুধ যোগ করুন; যোগ করুন সুগার; যোগ করুন সুগার; এমওভি এক্সেক্স, সি0ফেফ; এমওভি ইবিএক্স, 1; এমওভিএক্স, 4 এবং আমার
বায়োসের

77

পাইথন, ব্যাশ, সি, জে, পিএইচপি এবং পাইথন 3

import subprocess

p = subprocess.Popen("""
echo '
#define _USE_MATH_DEFINES
#include <stdio.h>
#include <math.h>

int main(int pi) {
    if (pi == 1) printf("%.5f", M_PI);
    if (pi == 2) printf("o. 1");
    if (pi == 3) printf("<?php printf(\\"%%.5f\\", pi()); ?>");
    if (pi == 4) printf("import math; print(\\" %%.5f\\" %% math.pi)");
    return 0;
}
' > gcc -o pi
./pi
./pi J | jc
./pi and PHP | php
./pi and Python 3 | python3
""", shell=True, stdout=subprocess.PIPE)

values_of_pi = map(float, map(str.strip, p.stdout.read().split()))
pi = max(values_of_pi, key=values_of_pi.count)

print pi * 3 * 3

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


27
আমি শুধু আমার মুখে কিছুটা ফেলে দিলাম।
ড্যান এস্পার্জা

কী জে এবং কেন আপনি এটি দিয়ে আপনার সি প্রোগ্রাম চালাচ্ছেন?
নোবাগস 16:44

@ নোবগস জে অন্য ভাষা, এবং পাই এর অন্য মান পেতে jcআমার সি প্রোগ্রাম ( o. 1) থেকে আউটপুট নিয়ে আমি এটি ( আমার কম্পিউটারে জে কনসোল) চালাচ্ছি । যুক্তি গুরুত্বপূর্ণ নয়।
grc

1
echo $long_string > gcc -o pi? আমি বিশ্বাস করতে পারি না যে এটি কেউ ধরেনি। এছাড়াও, আপনি কি এখানে ডক্স | এখানে-স্ট্রিংয়ের কথা শুনেছেন?
ব্ল্যাকলাইট শাইনিং

এটি আমি দেখেছি এমন কোডের অন্যতম দুর্দান্ত টুকরো। আমি এটি ফ্রেম করতে যাচ্ছি এবং আমার দেয়ালে লাগাতে চলেছি। সম্ভবত একটি সতর্কতা সহ।
কেভিন

41

পিএইচপি / mysql

$link = mysqli_connect("localhost", "user", "password", "dbname");
$query = mysqli_query($link, 'SELECT PI() AS pi');
$row = mysqli_fetch_assoc($query);
echo 3*3*$row['pi'];

4
খুব চালাক. বিভিন্ন রানটাইমকে ইন্টারফেস করার জন্য খুব মানক উপায় ব্যবহার করা। =) +1
jpmc26

34

সি, প্যাসকেল, জাভা, জাভাস্ক্রিপ্ট, লাটেক্স 3, প্রোলগ, পার্ল, স্কিম, লুয়া, পাইথন, টেক্স / পিজিএফ সহ পার্ল / টাকা

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

ফলাফল

এক-ফাইলের স্ক্রিপ্ট:

#!/usr/bin/env perl
use strict;
$^W=1;

use Tk;
use Tk::Font;
use Tk::HList;
use Tk::ItemStyle;
use Tk::PNG;

# Function to calculate the area of the circle with radius 3
sub A ($) {
    use bignum;
    return 9*$_[0];
}

my $title = 'Pi Day';

# Configuration of external program names
my %prg = qw[
    Pascal fpc
    Perl perl
    Prolog swipl
    Scheme guile1
    TeX  tex
    LaTeX latex
];
sub prg ($) {
    my $prg = shift;
    return $prg{$prg} // $prg;
}

# Column headers
my @header = (
    '',
    'Language',
    "\N{U+03C0}",
    "A(3) = A(r) = \N{U+03C0}\N{U+2009}r\N{U+00B2}",
);

my $mw = MainWindow->new(
    -title => $title,
);

# Font setup (larger font)
my $font_size = '22';
my $font = $mw->Font();
$font->configure(-size => $font_size);

# ---------
# Utilities
# ---------

# Run program in backticks, quote arguments if needed and some error checking
sub backticks_pi (@) {
    my @cmd = map{/[ ()$;<>|\x22]/ && length > 1 ? "'$_'" : $_} @_;
    print "[@cmd]\n";
    my $catch = `@cmd`;
    if ($? == -1) {
        warn "Failed to execute: $!\n";
    }
    elsif ($? & 127) {
        warn sprintf "Child died with signal %d!\n", $? & 127;
    }
    elsif ($?) {
        warn sprintf "Child exited with value %d!\n", $? >> 8;
    }
    else {
        return $1 if $catch =~ /^\s*(\d+\.\d+)\s*$/
                  or $catch =~ /\bpi\s*=\s*(\d+\.\d+)/;
    }
    warn "Could not find pi in the output of \"@cmd\"!\n";
    return 0;
}

# Run a program with error checking
sub run_cmd (@) {
    print "[@_]\n";
    system @_;
    if ($? == -1) {
        warn "Failed to execute: $!\n";
    }
    elsif ($? & 127) {
        warn sprintf "Child died with signal %d!\n", $? & 127;
    }
    elsif ($?) {
        warn sprintf "Child exited with value %d!\n", $? >> 8;
    }
    else {
        return $1;
    }
    return undef;
}

# Create a bitmap logo
sub make_logo ($$$@) {
    my $name = shift;
    my $logo = shift;
    my $contents = shift;
    my $file = "piday-logo-$name.tmp";
    if ($contents) {
        open(OUT, '>', $file) or die "!!! Error: Cannot write `$file': $!";
        print OUT $contents;
        close(OUT);
    }
    foreach (@_) {
        run_cmd @$_;
    }
    return $mw->Photo(
        -file => $logo,
    ) if -f $logo;
    return undef;
}

# Call foreign language to calculate pi
sub make_pi ($$@) {
    my $file = shift;
    my $source = shift;
    if ($source) {
        open(OUT, '>', $file) or die "!!! Error: Cannot write `$file': $!";
        print OUT $source;
        close(OUT);
    }
    my $cmd_last = pop;
    foreach (@_) {
        run_cmd @$_;
    }
    return backticks_pi @$cmd_last;
}

# Add result list table
my $h = $mw->HList(
    -header  => 1,
    -columns => scalar @header,
    -width   => 100,
    -height  => 20,
    -font    => $font,
)->pack(
  -expand => 1,
  -fill => 'both',
);

# Add header for the result list table
for (0 .. @header-1) {
    $h->header('create', $_,
        -text => $header[$_],
    );
}

# Exit button
my $quit = $mw->Button(
    -text => 'Quit',
    -command => sub {exit},
    -font => $font,
)->pack;


my @list;
my @cmd;
my $pi;
my $source;
my $img;

# GNU C
# -----

$img = make_logo(
    'C',
    'piday-logo-c.png',
    '',
    [
        prg('wget'),
        '-O', 'piday-logo-c-gccegg.png',
        'http://gcc.gnu.org/img/gccegg-65.png',
    ],
    [
        prg('convert'),
        '-scale', '54x64',
        'piday-logo-c-gccegg.png',
        'piday-logo-c.png',
    ],
);

$source = <<'END_SOURCE';
#define _GNU_SOURCE
#include <math.h>
#include <stdio.h>

#define xstr(s) str(s)
#define str(s) #s

int main() {
  long double pi = M_PI;
  printf("pi=%s", xstr(M_PIl));
  return 0;
}
END_SOURCE

$pi = make_pi(
    'piday-c.c',
    $source,
    [
        prg('gcc'),
        '-o', 'piday-c',
        'piday-c.c',
    ],
    [
        prg('./piday-c')
    ],
);

push @list, {
    language => 'GNU C',
    pi       => $pi,
    image    => $img,
};

# Java
# ----

$img = make_logo(
    'Java',
    'piday-java.png',
    '',
    [
        prg('wget'),
        '-O', 'piday-java.svg',
        'https://upload.wikimedia.org/wikipedia/commons/a/a4/Java_logo_and_wordmark.svg',
    ],
    [
        prg('convert'),
        '-scale', '35x64',
        'piday-java.svg',
        'piday-java.png',
    ],
);

$source = <<'END_SOURCE';
public class PiDayJava {
    public static void main(String args[]) {
        System.out.println(Math.PI);
    }
}
END_SOURCE

$pi = make_pi(
    'PiDayJava.java',
    $source,
    [
        prg('javac'),
        'PiDayJava.java',
    ],
    [
        prg('java'),
        'PiDayJava',
    ],
);
push @list, {
    language => 'Java',
    pi       => $pi,
    image    => $img,
};

# Perl
# ----

# Math/Complex.pm: sub pi () { 4 * CORE::atan2(1, 1) }
@cmd = (prg('Perl'), '-e', 'use Math::Complex; print pi');
$pi = backticks_pi @cmd;

my $img = Tk->findINC('Camel.xpm');
$img = $mw->Photo(
    -file => $img,
);

push @list, {
    language => 'Perl',
    pi => $pi,
    image => $img,
};

# Python
# ------

@cmd = (
    prg('echo'),
    'import math;print math.pi',
    '|',
    prg('python'),
);
$pi = backticks_pi @cmd;

$img = make_logo(
    'python',
    'piday-logo-python.png',
    '',
    [
        prg('wget'),
        '-O',
        'piday-logo-python-master.png',
        'http://www.python.org/static/community_logos/python-logo-master-v3-TM.png',
    ],
    [
        prg('convert'),
        '-crop', '111x111+79+33',
        'piday-logo-python-master.png',
        'piday-logo-python-crop.png'
    ],
    [
        prg('convert'),
        '-scale', '64x64',
        'piday-logo-python-crop.png',
        'piday-logo-python.png',
    ],
);

push @list, {
    language => 'Python',
    pi => $pi,
    image => $img,
};

# TeX
# ---

@cmd = (
    prg('TeX'),
    '\input pgf \pgfmathparse{pi}\message{pi=\pgfmathresult}\end',
);
$pi = backticks_pi @cmd;
my $img = make_logo(
    'tex',
    'piday-logo-tex.png',
    '',
    [
        prg('pdftex'),
        '\mag=4000 \nopagenumbers\font\sc=cmcsc10 \sc pgf\bye'
    ],
    [
        prg('pdfcrop'),
        'texput.pdf',
        'piday-logo-tex.pdf',
    ],
    [
        prg('convert'),
        'piday-logo-tex.pdf',
        'piday-logo-tex.png',
    ]
);
push @list, {
    language => 'TeX/PGF',
    pi => $pi,
    image => $img,
};

# LaTeX3
# ------

my $logo_source = <<'END_LOGO';
\mag=4000
\documentclass{article}
\usepackage{hologo}
\pagestyle{empty}
\begin{document}
\hologo{LaTeX3}
\end{document}
END_LOGO

$img = make_logo(
    'latex3',
    'piday-logo-latex3.png',
    $logo_source,
    [
        prg('pdflatex'),
        'piday-logo-latex3.tmp'
    ],
    [
        prg('pdfcrop'),
        'piday-logo-latex3.pdf',
        'piday-logo-latex3-crop.pdf',
    ],
    [
        prg('convert'),
        'piday-logo-latex3-crop.pdf',
        'piday-logo-latex3.png',
    ]
);
$source = <<'END_LATEX3';
\documentclass{article}
\usepackage{expl3}
\ExplSyntaxOn
\msg_term:n { pi=\fp_eval:n { pi } }
\ExplSyntaxOff
\stop
END_LATEX3
$pi = make_pi(
    'piday-latex3.tex',
    $source,
    [
        prg('LaTeX'),
        'piday-latex3.tex',
    ],
);
push @list, {
    language => 'LaTeX3',
    pi => $pi,
    image => $img,
};

print "****************\n";

# Lua
# ---

$img = make_logo(
    'Lua',
    'piday-logo-lua.png',
    '',
    [
        prg('wget'),
        '-O', 'piday-logo-lua.gif',
        'http://www.lua.org/images/lua-logo.gif',
    ],
    [
        prg('convert'),
        '-scale', '64x64', # '50x50',
        'piday-logo-lua.gif',
        'piday-logo-lua.png',
    ],
);

$source = 'print(math.pi)';
$pi = make_pi(
    'piday-lua.lua',
    $source,
    [
        prg('texlua'),
        'piday-lua.lua',
    ]
);
push @list, {
    language => 'Lua',
    pi => $pi,
    image => $img,
};

# JavaScript
# ----------

$img = make_logo(
    'JavaScript',
    'piday-logo-javascript.png',
    '',
    [
        prg('wget'),
        '-O', 'piday-logo-rhino.jpg',
        'https://developer.mozilla.org/@api/deki/files/832/=Rhino.jpg',
    ],
    [
        prg('convert'),
        '-scale', '127x64',
        'piday-logo-rhino.jpg',
        'piday-logo-javascript.png',
    ],
);

$source = 'print(Math.PI)';
$pi = backticks_pi(
    prg('java'),
    '-cp', prg('js.jar'),
    'org.mozilla.javascript.tools.shell.Main',
    '-e', $source,
);
push @list, {
    language => 'JavaScript',
    pi => $pi,
    image => $img,
};

# Scheme
# ------

$img = make_logo(
    'Scheme',
    'piday-logo-scheme.png',
    '',
    [
        prg('wget'),
        '-O', 'piday-logo-lambda.svg',
        'https://upload.wikimedia.org/wikipedia/commons/3/39/Lambda_lc.svg',
    ],
    [
        prg('convert'),
        '-scale', '64x64',
        'piday-logo-lambda.svg',
        'piday-logo-scheme.png',
    ],
);
$source = '(display (* 2 (acos 0)))';
$pi = backticks_pi(
    prg('Scheme'),
    '-c', $source,
);
push @list, {
    language => 'Scheme',
    pi => $pi,
    image => $img,
};

# Prolog
# ------

$img = make_logo(
    'Prolog',
    'piday-logo-prolog.png',
    '',
    [
        prg('wget'),
        '-O', 'piday-logo-swipl.png',
        'http://www.swi-prolog.org/icons/swipl.png',
    ],
    [
        prg('convert'),
        '-scale', '78x64',
        'piday-logo-swipl.png',
        'piday-logo-prolog.png',
    ],
);
$source = ":- format('~15f~n', [pi]).\n";
$pi = make_pi(
    'piday-prolog.pro',
    $source,
    [
        prg('Prolog'),
        '-c', 'piday-prolog.pro',
    ]
);
push @list, {
    language => 'Prolog',
    pi => $pi,
    image => $img,
};

# Pascal
# ------

$img = make_logo(
    'Pascal',
    'piday-logo-pascal.gif',
    '',
    [
        prg('wget'),
        '-O', 'piday-logo-pascal.gif',
        'http://www.freepascal.org/pic/logo.gif',
    ]
);
$source = <<'END_PASCAL';
program piday_pascal;

uses sysutils, math;

begin
  writeln(format('%.16f', [pi]));
end.
END_PASCAL
$pi = make_pi(
    'piday-pascal.pas',
    $source,
    [
        prg('Pascal'),
        'piday-pascal.pas',
    ],
    [
        prg('./piday-pascal'),
    ]
);
push @list, {
    language => 'Pascal',
    pi => $pi,
    image => $img,
};

# Sort and fill the table rows
@list = sort {
    my $diff = (length $b->{'pi'} <=> length $a->{'pi'});
    return $diff if $diff;
    return "\L$a->{'language'}\E" cmp "\L$b->{'language'}\E";
} @list;

foreach my $x (@list) {
    my $e = $h->addchild("");
    my $col = 0;
    if ($x->{'image'}) {
        $h->itemCreate($e, $col++,
            -itemtype => 'image',
            -image => $x->{'image'},
        );
    }
    else {
        $col++;
    }
    $h->itemCreate($e, $col++,
        -itemtype => 'text',
        -text => $x->{'language'},
    );
    $h->itemCreate($e, $col++,
        -itemtype => 'text',
        -text => $x->{'pi'},
    );
    $h->itemCreate($e, $col++,
        -itemtype => 'text',
        -text => A $x->{'pi'},
    );
}

MainLoop;

__END__

ভাষাসমূহ

নিম্নলিখিত তালিকাটি ভাষা এবং কোডটি দেখায় যা get পেতে ব্যবহৃত হয় π

  • জিএনইউ সি: জিএনইউ এক্সটেনশনগুলি π এর উচ্চতর নির্ভুলতা পেতে ব্যবহৃত হয় π

    #define _GNU_SOURCE
    #include <math.h>
    #include <stdio.h>
    
    #define xstr(s) str(s)
    #define str(s) #s
    
    int main() {
        long double pi = M_PI;
        printf("pi=%s", xstr(M_PIl));
        return 0;
    }
  • পাস্কাল: ফ্রি পাস্কল দিয়ে সংকলিত ।

    program piday_pascal;
    
    uses sysutils, math;
    
    begin
      writeln(format('%.16f', [pi]));
    end.
  • জাভা:

    public class PiDayJava {
        public static void main(String args[]) {
            System.out.println(Math.PI);
        }
    }
    
  • জাভাস্ক্রিপ্ট: রাইনো জাভাস্ক্রিপ্ট চালানোর জন্য ব্যবহৃত হয়।

    print(Math.PI)
  • LaTeX3:

    \documentclass{article}
    \usepackage{expl3}
    \ExplSyntaxOn
    \msg_term:n { pi=\fp_eval:n { pi } }
    \ExplSyntaxOff
    \stop
  • প্রোলগ: এসডাব্লুআই প্রোলোগ প্রোলগ সংকলক হিসাবে ব্যবহৃত হয়।

    :- format('~15f~n', [pi]).
  • পার্ল: মজা এবং সম্পূর্ণতার জন্য।

    use Math::Complex;
    print pi;
  • স্কিম: স্কিম প্রয়োগগুলি হ'ল জিএনইউ গাইল

    (display (* 2 (acos 0)))
  • লুয়া: texlua লুয়া দোভাষী হিসাবে ব্যবহৃত হয়।

    print(math.pi)
  • পাইথন:

    import math
    print math.pi
  • টেক্স / পিজিএফ: its এটি প্যাকেজ পিজিএফ এর সংজ্ঞা থেকে নেওয়া হয়েছে এবং প্লেইন টেক্সটি টেক্স ফরমেট হিসাবে ব্যবহৃত হয়:

    \input pgf
    \pgfmathparse{pi}
    \message{pi=\pgfmathresult}
    \end

16

ডিজি

print ((import '/math/pi')*3**2)

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

ডিজি এমন একটি ভাষা যা সিপিথন বাইটকোডে সংকলন করে। সুবিধাজনকভাবে, এটি অজগর লাইব্রেরির সাথে সামঞ্জস্যপূর্ণ। importডিজিতে বিবৃতিগুলি তারা আমদানি করে এমন বস্তুটি ফেরত দেয়, সুতরাং এই প্রোগ্রামটি মূলত এটি করে:

print (<PYTHON'S MATH.PI>*3**2)

 

 

না, আমি কোনও অগ্রগতি আশা করি না। :)


4
উফসি ডেইজি, আমি মনে করি আমি উন্নত;)
বেনামে পাই

1
যাইহোক, ডিজি-তে আমি এই প্রথম কাজটি করেছি। অন্য কেউ এটি একটি গল্ফ প্রশ্নের জন্য ব্যবহার করেছেন এবং আমি এই উত্তরের সাথে সংযুক্ত একই জায়গার সাথে লিঙ্ক করেছি। আমি এটি পড়েছি এবং ভেবেছিলাম ভাষাটি ঝরঝরে দেখায় (যদিও আমি ডেজ মেমকে ঘৃণা করি তা সত্ত্বেও) তবে এটি সম্পর্কে শেখার প্রায় এক ঘন্টা অবধি এটি ব্যবহারের পরিকল্পনা করেনি, যখন আমি এই প্রশ্নটি পড়েছি এবং বুঝতে পারি যে আমি এটির অপব্যবহার করতে পারি।
আন্ডারগ্রাউন্ডোমোনাইল

5 ঘন্টা আগে, যখন আমি আমার প্রথম মন্তব্য পোস্ট করেছি, তখন এটি ছিল 1 টি আপভোট। আমি মনে করি লোকেরা আমার মন্তব্যকে গুরুত্ব সহকারে গ্রহণ করেছে;) অথবা তারা আপনার ব্যবহারটি সবেমাত্র করেছে।
বেনামি পাই 1

"সমস্ত কোড অবশ্যই একটি লাইনে ফিট করতে হবে"। কমপক্ষে কিছু লোক পড়তে পারেন!
ফ্লোরিস 16'14

<PYTHON'S MATH.PI>repr()ফাংশন এবং অন্যান্য অবজেক্টের জন্য আপনি যে স্ট্রিংগুলি পান সেগুলি | তাদের __repr__()নিজের বৈধ পুনর্গঠন হিসাবে তাদের সংজ্ঞা দিতে পারে না আসলে ... ভাল ... বৈধ নয়। ব্যবহার করে দেখুন __import__('math').pi
ব্ল্যাকলাইট শাইনিং

15

সি ++ এবং লুয়া 5.2

পাই ধ্রুবকটি অ্যাক্সেস করতে পুরো ভাষার দোভাষীকে এম্বেড করার মতো ওভারকিল কিছুই বলে না।

#include <lua.hpp>
#include <cmath>
#include <iostream>

#define R 3

int main( void )
{
    lua_State* vm = luaL_newstate();

    luaL_openlibs( vm );
    luaL_dostring( vm, "function get_pi() return math.pi end" );
    lua_getglobal( vm, "get_pi" );
    lua_call( vm, 0, 1 );

    lua_Number PI_ = lua_tonumber( vm, -1 );

    std::cout << PI_ * pow( R, 2 ) << std::endl;

    lua_close( vm );
    return 0;
}

মাত্র ...lua_getglobal("math");lua_getfield(-1,"pi");
mniip

@ এমনিপ আমি বুঝতে পেরেছিলাম যে আমি পোস্ট করার পরে। এটি খুব ভোরে এবং আমার মস্তিষ্ক এখনও পুরোপুরি কার্যকর হয় নি, তবে এই পথটি ঠিক একইভাবে কাজ করে তাই আমি এটিকে একা রেখে দিয়েছি।
টনি এলিস

13

bash + পিএইচপি + বিসি

মোটামুটি সরল ওয়ান-লাইনার:

echo "scale=14;3*3*`php -r 'echo pi();'`"|bc

আউটপুট:

28.274333882308

"সমস্ত কোড অবশ্যই একটি লাইনে ফিট করতে হবে"। কমপক্ষে কিছু লোক পড়তে পারেন!
ফ্লোরিস

4
@ ফ্লোরিস: এটি আপনার কাছে ভেঙে ফেলার ঘৃণা, কিন্তু প্রশ্নটি বলছে ফাইল , লাইন নয় ।
ডেনিস

26
@ এডিনিস - স্পষ্টতই আমি "কিছু লোক" নই ...: - /
ফ্লোরিস

10

ম্যাটল্যাব + জাভা (21 বাইট)

নিশ্চিত না যে ম্যাটল্যাব প্রতারণা করছে কিনা, তবে আমরা এখানে যাই

java.lang.Math.PI*3^2

আউটপুট: Format Short

28.2743

আউটপুট: Format Long

28.2743338823081

বিন্যাসের ধরণটি সঞ্চিত মানকে প্রভাবিত করে না, এটি কেবল কনসোলে কীভাবে মুদ্রিত হবে তা প্রভাবিত করে


1
ম্যাটল্যাব .. - শিহরিত অবস্থা -
theGreenCabbage

@ থাইগ্রাইনক্যাবেজ হাহা, নিশ্চিত না যে এটি একটি ভাল কাঁপুনি বা খারাপ কিনা :) আমার অভিজ্ঞতাতে এটি সহজ জিনিসগুলি দ্রুত লেখা খুব সহজ করে তুলেছে। অবশ্যই আরও ভাল বিকল্প রয়েছে, তবে যদি খুব বেশি সময় না পাওয়া যায় তবে ম্যাটলব কৌশলটি করে।
এমজিমারম্যান 6

10

বাশ, নোড, রুবি, পাইথন

#!/bin/bash

node -pe 'Math.PI' \
| ruby -e 'puts ARGF.read.to_f * 3' \
| python -c 'import sys; print(float(sys.stdin.read()) * 3)'

7

Perl

perl -ne '/M_PI\s*([\d.]*)/&&print $1*3*3' < /usr/include/math.h

+1, যদিও এটি ওএস এক্সে আসলে কাজ করে না (ম্যাথ এইচ architecture/*/math.hটার্গেট প্ল্যাটফর্মের উপর নির্ভর করে অন্যান্য ফাইলগুলি অন্তর্ভুক্ত করে)
চটজলদি ossifrage

1
ওয়েল এটি উইন্ডোজেও কাজ করে না তবে আমি এখানে বহনযোগ্যতার জন্য যাচ্ছি না :)
ওরাল

7

পাওয়ারশেল + এমএস এসকিউএল সার্ভার

এখানে পাওয়ারশেল এবং এসকিউএল সার্ভারের জন্য একটি রয়েছে (২০০৫ সাল থেকে)

add-pssnapin sqlserverprovidersnapin100
add-pssnapin sqlservercmdletsnapin100
$pi=Invoke-Sqlcmd -query "select PI() as sql"
$pi.sql *3*3

এবং এখানে একক লাইনার হিসাবে:

add-pssnapin sqlserverprovidersnapin100;add-pssnapin sqlservercmdletsnapin100;(Invoke-Sqlcmd -query "select PI() as sql").sql*3*3

আরও কিছু পরে পোস্ট করবে :)


7

জাভাস্ক্রিপ্ট / পিএইচপি

*। Php ফাইল হিসাবে সংরক্ষণ করতে হবে এবং এমন কোনও সার্ভার থেকে একটি ব্রাউজারে ডেকে পাঠাতে হবে যা পিএইচপি'র ব্যাখ্যা দেয়।

<script type="text/javascript">
    alert(3*3*<?php echo M_PI;?>);
</script>

শর্ট ট্যাগ ব্যবহার করে এবং 9 * দিয়ে 3 * 3 প্রতিস্থাপন করে গল্ফ করা যেতে পারে (এটি অনুমোদিত?):

<script type="text/javascript">
    alert(9*<?=M_PI?>);
</script>

পাই () এর এমএপিআই এর সমান দৈর্ঘ্য রয়েছে, সুতরাং কোনও বিজয়ী নেই।


2
"এটি কি অনুমোদিত" - নিশ্চিত, এটি কোড গল্ফ নয়, জনপ্রিয়তার প্রতিযোগিতা।
কম্পিউশিপ

1
এটি যদিও পিএইচপি বা জাভাস্ক্রিপ্টে চলবে না।
চথুলহু

হ্যাঁ, এর জন্য কিছু <script>ট্যাগ এবং একটি। Php এক্সটেনশন প্রয়োজন।
কম্পিউশিপ 14'14

3
আমি এটি সম্পাদনা করেছি যদিও আমি মনে করি এটি যথেষ্ট বোধগম্য ছিল ...
রেনো

@ সিথুলহু "একটি *। পিএইচপি ফাইল হিসাবে সংরক্ষণ করতে হবে এবং এমন একটি সার্ভার থেকে একটি ব্রাউজারে ডেকে পাঠানো হবে যা পিএইচপি'র ব্যাখ্যা দেয়" " খাঁটি। এইচটিএমএল বা .এফপিএল বা। যে কোনও ফাইলই কাজ করবে না, আপনার অ্যাপাচি বা এর মতো কিছু দরকার।
বেনামি পাই

6

ইমাস লিস্প: লেখা, সংকলন এবং চলমান সি

(with-temp-buffer
  (with-temp-file"/#rad.c"(insert"#include<math.h>\n#include<stdio.h>\nint main(void){printf(\"%f\",M_PI*3*3);}"))
  (shell-command"gcc /#rad.c -o /#rad && /#rad"(current-buffer))(string-to-number(buffer-string)))

ungolfed

(with-temp-buffer
  (with-temp-file "/#rad.c"
    (insert"
#include<math.h>
#include<stdio.h>
int main(void){
  printf(\"%f\",M_PI*3*3);
}"))
  (shell-command "gcc /#rad.c -o /#rad && /#rad"
         (current-buffer))
  (string-to-number(buffer-string)))

বোনাস:

আপনি ব্যাচ-এভাল ব্যবহার করে ইমচ চালিয়ে এবং এর ভিতরে প্রকাশটি ঘিরেই এই ট্রিপল ল্যাঙ্গুয়েজ করতে পারেন (print)। এটি বাশ চলমান লিস্পে ফলাফল তৈরি করবে যা কমপাইল লিখেছে এবং সি চালায় সি আউটপুট পড়ে এবং এটি আপনার শ্যালে বাশনে প্রিন্ট করে।


5

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

def interpret(kode):
    out=1.0
    for i in kode:
        if(i=='p'):
            out*=3.14159265
        else:
            out*=int(i)
    return out
print(interpret("p33"))

3
পাইথনের একটি ভাষার চেয়ে ফাংশনের মতো দেখতে আমার কাছে, তবে এটি কার্যকর হয়।
হোছ 250

2
@ होस्চ 250 পাইথন ইন্টারপ্রেটার নিজেই সি (সিপিথনের ক্ষেত্রে) লিখিত একটি (সেট) ফাংশন তাই এই উত্তরটি খুব কার্যকর। বেশ চতুর আমি বলব।
হুয়ান ক্যাম্পা 21

4

বিসি + ডিসি + ব্যাশ (গল্ফারদের জন্য ৩০ টি অক্ষর)

এখানে একটি গোল্ফ সামান্য একটি:

$ dc<<<"3d*`bc -l<<<'a(1)*4'`*p"
28.27433388230813914596
$ 
  • bc -l<<<'a(1)*4' পাই উত্পাদন করে (এটি একটি () (আর্টিকান) ফাংশনের জন্য বিসি ম্যাথ লিবের ধ্রুবক হিসাবে সঞ্চিত থাকে।
  • dc<<<"3d*পাই *p"স্ট্যাকের দিকে 3 টি চাপায়, স্ট্যাকের শীর্ষে মানটি 3 (গুণ) এবং বহুগুণকে নকল করে, তারপরে পাইকে স্ট্যাক এবং বহুগুণে চাপ দেয়, তারপরে স্ট্যাকের শীর্ষটি মুদ্রণ করে।

4

OCaml + awk

ওক্যামেল কেউ পছন্দ করে না?

  • পাই গণনা করতে OCaml ব্যবহার করুন
  • awkপাই * আর 2 গণনা করতে

এটা এখানে:

ocaml <<< "4.0 *. atan 1.0;;" | awk '/float/{printf("%.12f", 3*3*$NF)}'

উত্তর হচ্ছে:

28.274333882308

4

সি ++ / সি

#include <math.h>
#include <iostream>

int main(int argc, char** argv) {
    std::cout << 3*3*M_PI << std::endl;
    return 0;
}

সাইটে স্বাগতম! তবে আমি মনে করি যে প্রশ্নটি এমন কোনও প্রোগ্রামের সন্ধান করছে যা প্রকৃতপক্ষে কোনও ফাংশনকে কল করে বা অন্য ভাষায় একটি প্রোগ্রাম সংকলন করে, কেবল একটির বেশি ভাষায় সংকলন করবে না।
জোনাথন ভ্যান মাত্রে

4
@ জোনাথনভান মাত্রে: আমি মনে করি এই ক্ষেত্রে তার অর্থ হ'ল তিনি সি ++ এ সি হেডার থেকে ধ্রুবক ব্যবহার করেন। std::coutকখনও একটি বৈধ সি সিনট্যাক্স ছিল না।
কনরাড বোরোভস্কি

আহ, ভাল কল আছে।
জোনাথন ভ্যান মাত্রে

4

খুব সহজ, সি ম্যাথ লাইব্রেরি অ্যাক্সেস করতে ব্যাশ ব্যবহার করে:

bc -l <<< "3 * 3 * `grep -w M_PI /usr/include/math.h | awk '{ print $4 }'`"


4

যেহেতু ফোর্টরানের পাইয়ের জন্য আসলে কোনও অন্তর্নিহিত মূল্য নেই (যা ওপেনটি "ফোর্টরানস MATH::PI" এর বিবৃতি দিয়ে বোঝাচ্ছিল ), আমাকে সিটির জন্য একটি লিখতে হয়েছিল, আমি আসলে এটি সংজ্ঞায়িত করার পরিবর্তে বেছে নিয়েছিলাম, যা আমি ঠিক নির্ধারণ করি এটি কিছু দ্রুত অ্যালগরিদম ব্যবহার করে :

#include <math.h>
double pi_eval(){
    double a = 1.0;
    double b = 1.0/sqrt(2.0);
    double t = 0.25;
    double x = 1.0;
    double y;
    int i;

    for(i=0; i<4; i++){
        y = a;
        a = 0.5*(a+b);
        b = sqrt(b*y);
        t -= x*(y-a)*(y-a);
        x *= 2.0;
    }
    return (a+b)*(a+b)/(4.0*t);
}

(হিসাবে সংরক্ষিত pi_calc.c) যা তখন এতে ব্যবহৃত হয় area_calc.f90:

program area_calc
   use, intrinsic :: iso_c_binding
   implicit none

   interface
     function pi_eval() bind(c)
       use, intrinsic :: iso_c_binding
       real(c_double) :: pi_eval
     end function pi_eval
   end interface
   real(c_double) :: pi, area

   pi = pi_eval()
   print *,"area=",3.0*3.0*pi

end program area_calc

এটি প্রয়োজনীয় আউটপুট করে

 area=   28.2743338823081

একটি এটি ব্যবহার করে সংকলন করে

gcc -c pi_calc.c
gfortran -o area pi_calc.o area_calc.f90

3

আর & সি ++

প্রয়োজন inlineএবং Rcppআর প্যাকেজ

get.pi <- inline::cxxfunction(plugin="Rcpp", includes="#include <cmath>", body="return wrap(M_PI);")

get.pi() * 3 ^ 2

cxxfunctionপর্দার আড়ালে একটি সি ++ ফাংশন তৈরি করে, সংকলন করে এবং লিঙ্ক করে। হ্যাঁ, বেশ কয়েকটি কোড জেনারেশন ঘটছে, এবং return wrap(M_PI);এটি সি ++ কোড ( #includeঅংশটি সহ )।


3

জাভা + জাভাস্ক্রিপ্ট

class Pi {
    public static void main(String... args) throws Throwable {
        System.out.println((double) new javax.script.ScriptEngineManager()
                .getEngineByName("JavaScript").eval("Math.PI")
                * Math.pow(3, 2));
    }
}
28,274333882308138

তুমি আমাকে এটা দ্বারা মেরেছ. :(
সুপারজেডি ২২৪

3

জুলিয়া পাইথন ব্যবহার করছে

julia> using PyCall
julia> @pyimport math
julia> math.pi*3^2
28.274333882308138

এটি মজার ছিল, আমি পাইকল আগে কখনও ব্যবহার করতাম না। ইন্টারফেসটি ব্যবহার করা অত্যন্ত সহজ।


3

আর + গ্রেপ + অ্যাজক + ডিসি

echo pi | R --no-save --quiet | grep -v '^>' | awk '{print $2}' | dc -e '?3 3 **p'

আউটপুট:

28.274337

3

জাভাতে লুয়ার। ব্যবহার করা

এই প্রোগ্রামটি জাভাতে লুয়ার মূল্যায়ন করতে এবং π পাওয়ার জন্য লুয়াবাইজারিটি ব্যবহার করে π এটি লুয়া সহ অঞ্চলটি বর্গক্ষেত্রও করে। উপভোগ করুন!

    ScriptEngineManager sem = new ScriptEngineManager();
    ScriptEngine se = sem.getEngineByName("luaj");
    se.eval("pi = math.pi");
    double pi = (double) se.get("pi");

    int r = 3;

    se.eval("radius = "+r);
    se.eval("rsquared = math.pow(radius, 2)");
    int rsquared = (int) se.get("rsquared");

    double area = pi * rsquared;
    System.out.println("For a circle with a diameter of "+r+", the area is "+area+".");

আউটপুট:

For a circle with a diameter of 3, the area is 28.274333882308138.


2

জাইথন ​​+ জাভা

এটি জেথনে কাজ করা উচিত। আমি নিশ্চিত নই, যেহেতু এটিএম এটি পরীক্ষার আমার কোনও উপায় নেই।

from java.lang import Math
print Math.PI * 3 ** 2

জাইথন ​​জাভা লাইব্রেরিগুলিতে অ্যাক্সেস করতে পারে, তাই আমি জাভা.লাং থেকে ম্যাথ ক্লাসটি আমদানি করতে পারি এবং বৃত্তের অঞ্চলটি গণনা করার জন্য এর পিআই ধ্রুবকটি ব্যবহার করতে পারি।

Golfed:

import java.lang.Math.PI;print PI*3*3

অথবা, যদি আমাকে 3 ^ 2 তে কোড করার অনুমতি দেওয়া হয়:

import java.lang.Math.PI;print PI*9

2

বাশ (পার্ল, পাইথন থেকে সিআই)

আমরা যদি আমাদের সমস্ত কিছু একত্রিত করি তবে আমরা আরও সঠিক ফলাফল পেতে পারি? :)

#!/bin/bash
exec >&>(bc -l|tail -n1)
perl <<EOF
use Math::Trig;
print pi
EOF
echo -n +
python <<EOF
import sys
from math import pi
sys.stdout.write(str(pi))
EOF
echo -n +
cat > pi.c <<EOF
#include <math.h>
main(){printf("%.16f",M_PI);}
EOF
gcc pi.c -o pi &>/dev/null
./pi
rm -f pi pi.c
echo ";"
echo "(last/3)*3.^2"


2

এইচটিএমএল + পিএইচপি

<html><body>
value of area of circle is <br>
<?php echo 3*3*M_PI; ?>
</body></html>

এটি তৃতীয় বিধি পূরণ করে কিনা তা নিয়ে বিভ্রান্ত। তবে যেহেতু এম_পিআই ইতিমধ্যে ব্যবহৃত হয়েছে তাই এটি গণনা করা উচিত।


2

অ্যাকশনস্ক্রিপ্ট 3 + জাভাস্ক্রিপ্ট (পার্স.কম ব্যবহার করে)

Parse.CFunction('getPi',{},function(returned){trace(3*3*returned.result)});

পার্স ক্লাস লিঙ্ক https://github.com/camdagr8/AS3-Parse-Class/blob/master/com/illumifi/Parse.as

কোড সহ:

public static function CFunction(className:String, params:Object = null, success:Function = null, error:Function = null) {
            var url:String = Parse.api + "functions/" + className;
            Parse.Call(url, URLRequestMethod.POST, params, null, success, error);
        }

পার্স মেইন.জেএস:

Parse.Cloud.define("getPi", function(request, response) {
  response.success(Math.PI);
});

ফলাফল:

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