নম্বর মুদ্রণের জন্য সময় নেওয়া


21

সারাংশ

একটি প্রোগ্রাম বা ফাংশন লিখুন, যা কোনও ইনপুট নেয় না, এবং -1000 এবং 1000 এর মধ্যে সমস্ত পূর্ণসংখ্যার সংখ্যাগুলি স্ট্যান্ডআউটে, প্রতি লাইনে একটি করে স্ট্যান্ডআউটে আউটপুট দেয়:

-1000
-999
-998
-997
...

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

উদাহরণ কোড

using System;
using System.Diagnostics;
class P
{
    static void Main(string[] args)
    {
        Stopwatch st = Stopwatch.StartNew();
        for (int i = -1000; i <= 1000; i++)
        {
            Console.WriteLine(i);
        }
        Console.WriteLine(st.ElapsedMilliseconds);      
    }
}

বিধিনিষেধ

স্ট্যান্ডার্ড লুফোলগুলি অনুমোদিত নয়

অন্যান্য ইনফো

এটি কোড গল্ফ, তাই সংক্ষিপ্ততম জমাটি জয়লাভ করে।


@ গুরুপদমমাদাপুর নো, দুঃখিত
ডেভিড

কেন? আমি মনে করি মূলত এই সংখ্যাগুলি মুদ্রণের জন্য প্রতিটি বক্তব্য প্রোগ্রামের শুরু থেকেই জড়িত?
গুরুপদ মামাদপুর

1
@ গুরুপদমমাদাপুর ঠিক আছে, আপনি সেই অনুযায়ী প্রশ্নটি সম্পাদনা করব।
হরভথ ডেভিড

প্রোগ্রামটি কি শুরু থেকে কিছু সময়ের জন্য অপেক্ষা করতে পারে এবং সেই পরিমাণ মুদ্রণ করতে পারে?
xnor

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

উত্তর:


9

এমএটিএল , 13 বাইট

1e3t_y&:!DZ`*

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

       % Implicitly start timer
1e3    % Push 1000
       % STACK: 1000
t_     % Duplicate, negate
       % STACK: 1000, -1000
y      % Duplicate second-top number
       % STACK: 1000, -1000, 1000
&:     % Two-input range
       % STACK: 1000, [-1000, 999, ..., 1000]
!      % Transpose into column vector
       % STACK: 1000, [-1000; 999; ...; 1000]
D      % Display
       % STACK: 1000
Z`     % Push timer value, say t
       % STACK: 1000, t
*      % Multiply
       % STACK: 1000*t
       % Implicitly display

2
খুব সুন্দর! স্মার্ট বাস্তবায়ন: Implicitly start timer। এটি কি প্রথম দিন থেকেই ছিল, নাকি এটি পূর্ববর্তী চ্যালেঞ্জের ফলাফল?
স্টিভি গ্রিফিন

@ স্টিওগ্রিফিন প্রথম দিন থেকে নেই। আমি 13 জুলাই 2016 এ এটি যুক্ত করেছি , সম্ভবত এটি বেশ কয়েকটি চ্যালেঞ্জের মধ্যে স্পষ্টভাবে অন্তর্নিহিত করার পরে
লুইস মেন্ডো

9

অষ্টাভে, 46 43 36 30 23 বাইট

tic;(-1e3:1e3)',toc*1e3

এটি মুদ্রণ করবে:

ans =

  -1000
   -999
   -998
   -997
   -996
   -995

যদি আপনি এটি পছন্দ না করেন ans =তবে আমাদের জন্য অতিরিক্ত 6 বাইট যুক্ত করতে হবে disp:

tic;disp((-1e3:1e3)'),toc*1e3

Rahnema1 এর কয়েকটি অনুস্মারককে প্রচুর বাইট সংরক্ষণ করেছে।

ব্যাখ্যা:

tic;                              % Starts timer
         (-1e3:1e3)'              % A vertical vector -1000 ... 1000
    disp((-1e3:1e3)'),            % Display this vector
                      toc*1e3     % Stop the timer and output the time in milliseconds

8

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

(c=console).time();for(i=~1e3;i++<1e3;c.log(i));c.timeEnd();

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


i=~1e3একটি বাইট সংরক্ষণ করতে :-)
ETH প্রোডাকশনগুলি


7

পাইথন 3.5, 80 77 73 বাইট

import time
*map(print,range(-1000,1001)),
print(time.process_time()*1e3)

পূর্ববর্তী সমাধানগুলি ব্যবহার করে জড়িত timeitএবং time.time()সেগুলি আরও বড় ছিল।

দুঃখের বিষয়, time.process_time()পাইথন ৩.৩ এ প্রবর্তিত হয়েছিল

4 বাইট সঞ্চয় করার জন্য ডেনিসকে ধন্যবাদ !


5

বাশ (+ কোর্টিল), 41, 49, 46, 44, 42 বাইট

সম্পাদনাগুলি:

  • @ ডেনিসের নির্ভুল উদ্বেগের সমাধানের জন্য বাশ-বিল্টিন (সময়) ব্যবহার করতে রিফ্যাক্টর্টেড;
  • |&স্ট্যাডার পুনঃনির্দেশের জন্য ব্যাশ 4+ ব্যবহার করে 3 বাইট হ্রাস করা ;
  • প্রতিস্থাপন 2 আরো বাইট সংরক্ষিত seq -1000 1000সঙ্গে seq -1e3 1e3(ধন্যবাদ @Dennis!);
  • অপ্রয়োজনীয় ব্যাকস্ল্যাশ সরিয়ে, এবং ডিফল্ট নির্ভুলতা (থেক্স @ ডেনিস!) ব্যবহার করে -2 বাইট

Golfed

TIMEFORMAT=%R*1000;(time seq -1e3 1e3)|&bc

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

সাইড নোট

বাশ-বিল্টিনের পরিবর্তে একটি কোরিউটিলস "টাইম" ইউটিলিটি ব্যবহার করে ফলাফল প্রাপ্ত হয় a 41, 35 বাইট সমাধান:

\time -f "%e*1000" seq -1e3 1e3|&bc

"\" এখানে করা হয় ব্যাশ বাস্তব কমান্ড ডাকা, builtin পরিবর্তে।

দুর্ভাগ্যক্রমে কোর্টিলস সময়ের যথার্থতা কেবল 1 / 100s, যা এটি বৈধ সমাধান হলে উদ্বেগ উত্থাপন করেছে।


4

আর, 42 বাইট

system.time(cat(-1e3:1e3,sep="\n"))[3]*1e3

এটি মুদ্রণ করবে

.
.
.
998
999
1000
elapsed 
     60 

অপসারণ করতে elapsed, দুটি অতিরিক্ত বাইট প্রয়োজন:

system.time(cat(-1e3:1e3,sep="\n"))[[3]]*1e3

4

বাশ + জিএনইউ ব্যবহার, 43

  • @ ডেনিসকে 2 বাইট সংরক্ষণ করা হয়েছে
  • @ জেপেলিনকে 5 টি বাইট সংরক্ষণ করা হয়েছে
c=date\ +%s%3N
s=`$c`
seq -1e3 1e3
$c-$s|bc

dateকমান্ড যুগান্তকারী বর্তমান ন্যানোসেকেন্ড সঙ্গে ঘনিভূত যেহেতু সেকেন্ডের সংখ্যা দেয়। এই কমান্ডটি আগে এবং পরে চালানো হয়। bcপার্থক্য এবং মুদ্রণ লাগে।

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


আমি 17 এর জন্য এটি করার আশা করছিলাম:

time seq -1e3 1e3

তবে সময়ের আউটপুট আমাদের প্রয়োজনের চেয়ে বেশি দেয়:

real    0m0.004s
user    0m0.000s
sys 0m0.004s

1
আপনি প্রতিস্থাপন দুটি বাইট সংরক্ষণ করতে পারবেন 1000সঙ্গে 1e3
ডেনিস

"তবে সময়ের আউটপুট দেয় ...." ... সম্ভবত আপনার উচিত মানুষকে ধর্ষণ করা।
এইচ ওয়াল্টারস

1
আপনি সম্ভবত, কয়েক বাইট সংরক্ষণ করতে পারবেন সরাসরি এই মত MS স্পষ্টতা তারিখ ক্যাপচার দ্বারা: date +%s%3N
জেপেলিন

4

জাভাস্ক্রিপ্ট (ES6), 63 59 বাইট

for(c=console.log,i=~1e3;i<1e3;c(++i));c(performance.now())


খুশী হলাম। স্থানটি সরিয়ে new (d=Date)এবং -1000-এ শুরু করে আপনি তিনটি বাইট সংরক্ষণ করতে পারেন :for(t=new(d=Date),c=console.log,i=~1e3;i<1e3;c(++i));c(new d-t)
ETH প্রোডাকশনগুলি

@ এথ প্রডাকশন ধন্যবাদ :) এটি ~1e3একটি দুর্দান্ত স্পর্শ।
জর্জ রিথ

1
স্নিপেট আউটপুটে শুধুমাত্র থেকে 952থেকে 1000কেন যে?
গুরুপদ মামাদপুর

@ গুরুপাদমমাদাপুর স্নিপেট আউটপুট 50 টি লাইনে সীমাবদ্ধ। (বা আরও সুনির্দিষ্টভাবে: 50 টি শেষ লাইন))
অ্যারনল্ড

1
@ ইসমাইল মিগুয়েল আশ্চর্যজনক সম্পর্কে performance.now()বা Performanceইন্টারফেসটি সম্পর্কে মোটেই অবগত ছিলেন না
জর্জ রিথ

3

আর, 66 বাইট

x=proc.time();for(i in -1e3:1e3)cat(i,"\n");(proc.time()-x)[3]*1e3

সম্ভবত সবচেয়ে সংক্ষিপ্ত নয় তবে এটি কাজ করে।


proc.timeএকটি পরিবর্তনশীল মধ্যে সংরক্ষণ করা যেতে পারে? t=proc.time;x=t(); ...
আনানান

3

গণিত, 51 বাইট

p[1*^3#]&@@AbsoluteTiming@Array[p=Print,2001,-1*^3]

ব্যাখ্যা

Array[p=Print,2001,-1*^3]

মধ্যে Printফাংশন সংরক্ষণ করুন p। 2001 দ্বারা মুদ্রণ করুন -1000 থেকে শুরু করে 1 দ্বারা বাড়ানো।

AbsoluteTiming@ ...

সেকেন্ডে সময় কাটানো মোট সময় সন্ধান করুন।

p[1*^3#]&@@ ...

এটি 1000 (সেকেন্ড -> মিলি সেকেন্ড) এবং p( Print) দ্বারা গুন করুন ।


আরগ, আপনি আমাকে ৩০ মিনিট মারলেন! :) আপনি কি নিশ্চিত Timingযে সমস্যাটির (সামান্য অস্পষ্ট) পাশাপাশি বর্ণনাটিও পূরণ করেন না AbsoluteTiming?
গ্রেগ মার্টিন

2
@ গ্রেগমার্টিন Timingসিপিইউ-র সময়কে আউটপুট দেয় এবং সামনের শেষের সময়টি অন্তর্ভুক্ত করে না। এটাই. কাউন্টারে ইনক্রিমেন্টে নেওয়া সময় Arrayগণনা করা হয়, তবে স্ক্রিনে এই সংখ্যাগুলি প্রদর্শন করতে যে সময় লাগে তা গণনা করা হয় না। এই প্রভাবটি এই সাধারণ উদাহরণে দেখা যায়: Timing@Print@30 সেকেন্ড দেয় তবে AbsoluteTiming@Print@3দেয় না।
জংহওয়ান মিন

3

পিএইচপি, 110 70 বাইট

এখনও কিছুটা দীর্ঘ; কিন্তু @ AlexHowansky's ইঙ্গিতটি 38 সংরক্ষিত, এবং আরো দুটি সঙ্গে 1e3এবং ~1e3

for($t=($m=microtime)($i=~1e3);$i++<1e3;)echo"$i
";echo($m(1)-$t)*1e3;

প্রিন্ট ভাসা। সাথে চালাও -r


2
আপনি মাইক্রোটাইম () কে সত্যবাদী মানটি পাস করতে পারেন এবং এটি সরাসরি একটি ফ্লোট ফিরে আসবে, আপনার স্ট্রিং যুক্ত করতে হবে না।
অ্যালেক্স হাওয়ানস্কি

যে ইঙ্গিত সহ -30%। আমি আশা করি আপনার মন্তব্যে আমি দশটি আপগেট করতে পারতাম। : ডি
টাইটাস

এটি দুঃখজনক যে কীভাবে পিএইচপি-তে এমন কিছু নেই যা মিলসেকেন্ডে সময় দেয়। জাভাস্ক্রিপ্ট যেমন আছে। আমি উন্নতির পরামর্শ দিতে পারি না। এটি যতটা ছোট তা পেতে পারে। সাবাশ!
ইসমাইল মিগুয়েল

@ ইসমাইল মিগুয়েল আমি মনে করি জাভাস্ক্রিপ্টের মাইক্রোসেকেন্ড নেই। :)
টিটাস

@ টিটাস আমি যা বোঝাতে চেয়েছি তা হল জাভাস্ক্রিপ্টের তারিখগুলি সমস্ত মিলি সেকেন্ডে পরিচালিত হয়, যখন পিএইচপি-তে কেবল সেকেন্ড বা মাইক্রোসেকেন্ড ছিল।
ইসমাইল মিগুয়েল

3

পাওয়ারশেল, 27 বাইট

$1=date;-1e3..1e3;(date)-$1

ভার্জোজ ডিফল্ট আউটপুট চ্যালেঞ্জের মধ্যে গ্রহণযোগ্য তা নির্দেশ করার জন্য অ্যাডমবর্কবার্ককে ধন্যবাদ।

ফলাফল ফলাফল যেমন:

994
995
996
997
998
999
1000

Days              : 0
Hours             : 0
Minutes           : 0
Seconds           : 5
Milliseconds      : 679
Ticks             : 56799255
TotalDays         : 6.57398784722222E-05
TotalHours        : 0.00157775708333333
TotalMinutes      : 0.094665425
TotalSeconds      : 5.6799255
TotalMilliseconds : 5679.9255

শুধু মিলিসেকেন্ডের আরও সংযুক্ত ফলাফলের জন্য, আসল উত্তরটি ব্যবহার করুন:

$1=date;-1e3..1e3;((date)-$1).TotalMilliseconds

$ 1 হিসাবে আগে সময় সাশ্রয় করুন, স্বয়ংক্রিয়ভাবে স্টডআউটতে মুদ্রণ করুন, তারপরে কার্যকরকরণের শুরু এবং শেষের মধ্যে সময় পান।


আপনি কেবল oh( Out-Host) এর ব্যাপ্তিটি পাইপলাইন করতে পারেন যা Measure-Commandপাইপলাইনটি ক্যাপচার করে এমন সত্যটি বাইপাস করবে ।
টিআইওতে

@ অ্যাডমবার্কবার্কের মূল বক্তব্যটি ছিল আমার মনে হয় না যে আমি কিছু মিস করছি না তবে এটি বাইটগুলি সংরক্ষণ করবে will
কলসডব্লিউ

Measure-Command{-1e3..1e3|oh}29 বাইট হয়। অবশ্যই, এটি অতিরিক্ত জিনিস প্রিন্ট করে এর জন্য ধন্যবাদ Measure-Command, তবে চ্যালেঞ্জটি স্পষ্টভাবে জানিয়েছে যে এটি ঠিক আছে।
অ্যাডমবর্কবার্ক

আসলে আপনি যে পয়েন্টটি অন্য ডেটা মুদ্রণ করতে পারেন তা মিস করেছেন, চ্যালেঞ্জ নির্মাতাকে যদি মেজার-কমান্ডের অতি-ভার্বোজ আউটপুট গ্রহণযোগ্য হয় তবে তা বলতে হবে। এছাড়াও $1=date;-1e3..1e3;(date)-$1সেখানে পরিমাপ-কমান্ড বিকল্পের চেয়ে 2 বাইট কম,
17-29 এ কলস

ওহ ঠিক আছে, হা। ভাল গল্ফ।
অ্যাডমবর্কবার্ক

2

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

.put for -($_=1e3)..$_;put (now -INIT now)*$_

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

সম্প্রসারিত:

# print the values

.put             # print with trailing newline ( method call on 「$_」 )

for              # for each of the following
                 # ( temporarily sets 「$_」 to the value )

-(
  $_ = 1e3       # store 「Num(1000)」 in 「$_」
)
..               # inclusive Range object
$_;

# print the time elapsed

put              # print with trailing newline

(now - INIT now) # Duration object that numifies to elapsed seconds
* $_             # times 1000 to bring it to milliseconds

# The 「INIT」 phaser runs code (the second 「now」) immediately
# as the program starts.

# There is no otherwise unrelated set-up in this code so this is a
# reliable indicator of the amount of time it takes to print the values.

2

জে , 22 বাইট

1e3*timex'echo,.i:1e3'

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

timexহ'ল একটি বিল্টিন যা স্ট্রিং কার্যকর করে এবং সেকেন্ডের মধ্যে মূল্যায়ন করতে যে সময় নিয়েছিল তা ফিরিয়ে দেয়। স্ট্রিংটি [-1000, 1000] ব্যবহার করে পরিসীমা তৈরি করে i:, তারপরে এটি কলমাইজ করে ,.এবং বিল্টিন ব্যবহার করে মুদ্রণ করে echo


2

পাইথ , 18 15 14 বাইট

j}_J^T3J;*.d1J

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

ব্যাখ্যা

এটি আমার অজগর উত্তরের মতো।

    জে ^ টি 3 সেট জে 1000 এ
  J _ জে তালিকা -1000 থেকে 1000 পর্যন্ত
j নতুন লাইনের সাথে তালিকায় যোগ দিন এবং স্পষ্টভাবে এটি মুদ্রণ করুন
         ; *। ডি 1 জে প্রিন্ট সময়টি কার্যটি মিলি সেকেন্ডে কার্যকর করার পরে

সম্পাদনাগুলি :


আমি এটি চেষ্টা করেছি, 14 বাইট, এটি সঠিকভাবে কাজ করে কিনা তা নিশ্চিত নয়। প্রোগ্রামটির শুরুতে আপনাকে একটি নতুন লাইন যুক্ত করতে হবে। pyth.herokuapp.com/?code=%0AM%7D_J%5ET3J%2a.d1J&debug=0
বাসুকসুয়ান

2

নুডেল , 17 13 বাইট

13 বাইট

কিছুটা আলাদা পদ্ধতির চেষ্টা করে 4 টি বাইট সংরক্ষণ করুন।

ƇQjȥḶGQɱ⁻Ñ€Ƈ⁻

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

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

Ƈ             # Pushes on the amount of milliseconds passed since 01/01/1970.

 Qjȥ          # Pushes 2001 onto the stack.
 Qj           # Pushes on the string "Qj"
   ȥ          # Converts the string into a number as base 98.

    ḶGQɱ⁻Ñ€   # Loops 2001 times printing -1000 to 1000.
    Ḷ         # Consumes the 2001 and loops the following code 2001 times.
     GQ       # Pushes on the string "GQ"
       ɱ      # Pushes on the current counter of the loop (i)
        ⁻     # Subtracts (i - "GQ") since i is a number, the "GQ" is converted to a number which will fail.
              # So, Noodel will treat the string as a base 98 number producing (i - 1000). 
         Ñ    # Consume what is on the top of the stack pushing it to the screen followed by a new line.
          €   # The end of the loop.

           Ƈ⁻ # Calculates the duration of execution.
           Ƈ  # Pushes on the amount of milliseconds passed since 01/01/1970.
            ⁻ # Pushes on (end - start)

17 বাইট

ƇGQȥḋɲṡ×2Ḷñ⁺1€ÑƇ⁻

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

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

Ƈ                 # Pushes on the amount of milliseconds passed since 01/01/1970.

 GQȥḋɲṡ×2         # Used to create the range of numbers to be printed.
 GQ               # Pushes on the string "GQ".
   ȥ              # Converts the string into number as if it were a base 98 number. (which is 1000)
    ḋ             # Duplicates the number and pushes it onto the stack. 
     ɲ            # Since the item on top is already a number, makes the number negative (random thing I threw in at the very beginning when made the langauge and totally forgot it was there)
      ṡ           # Swaps the first two items on the stack placing 1000 on top.
       ×2         # Doubles 1000 producing... 2000

         Ḷñ⁺1€Ñ   # Prints all of the numbers from -1000 to 1000.
         Ḷ        # Consumes the 2000 to loop the following code that many times (now -1000 is on the top).
          ñ       # Prints the value on top of the stack followed by a new line.
           ⁺1     # Increment the value on top of the stack by 1.
             €    # End of the loop.
              Ñ   # Since 1000 is still not printed, this consumes 1000 and prints it followed by a new line.

               Ƈ⁻ # Calculates the number of milliseconds to execute program.
               Ƈ  # Pushes on the amount of milliseconds passed since 01/01/1970.
                ⁻ # Pushes on (end - start) in milliseconds.
                  # At the end, the top of the stack is pushed to the screen.

স্নিপেটটি এত দীর্ঘ সময় না নেওয়ার জন্য -4 থেকে 4 টি মান ব্যবহার করে।

<div id="noodel" code="ƇFȥḶAɱ⁻Ñ€Ƈ⁻" input="" cols="10" rows="10"></div>

<script src="https://tkellehe.github.io/noodel/noodel-latest.js"></script>
<script src="https://tkellehe.github.io/noodel/ppcg.min.js"></script>


আপনি কি এই ভাষাটি চ্যালেঞ্জের পরে বা তার আগে তৈরি করেছিলেন?
Rɪᴋᴇʀ

@ ইস্টারলিআইর্ক, এর আগে :)
টেল্লে

2

টিআই-বেসিক, 22 বাইট

startTmr
For(A,-ᴇ3,ᴇ3
Disp A
End
startTmr-Ans
  • অনেক কমান্ড 1 বা 2-বাইট টোকেন দ্বারা প্রতিনিধিত্ব করা হয়।

  • একটি অনুকরণযুক্ত টিআই -৪৪ সিএসইতে পরীক্ষিত।


2

মতলব, 16 23 বাইট

tic;(-1e3:1e3)'
toc*1e3

সম্পাদনা: আমি বুঝতে পেরেছি যে আমি এই চ্যালেঞ্জের বেশ কয়েকটি নিয়ম লঙ্ঘন করছি। এটি আমাকে গভীর রাতে চ্যালেঞ্জটি পড়তে শিখিয়ে দেবে। আমি এখন বুঝতে পারি যে সংশোধিত উত্তরটি অক্টোব সমাধানের প্রায় একইরকম, তবে এরকম জীবন।

তৈরি লিনিয়ার স্পেস অ্যারেতে প্রতিটি উপাদান মুদ্রণ করে -1000: 1000 (অভাব; কনসোল প্রিন্ট করে)।

টিক / টোক সময়টি রেকর্ড করে এবং টোকটি কনসোলে বা তার সাথে ছাড়া সময় প্রিন্ট করে; । মিলিসেকেন্ডে মুদ্রণের জন্য 1e3 প্রয়োজন।


বেশ ডান, একটি সঠিক সমাধান সম্পাদনা করা হয়েছে।
ওভেন মরগান

2

গ্রোভি, 75 73 বাইট

t=System.&nanoTime
s=t()
(-1000..1e3).each{println it}
print((t()-s)/1e6)

2 বাইট সংরক্ষণের জন্য jaxad0127 ধন্যবাদ !

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


1
nanoTime1e6 দ্বারা বিভাজনের চেয়ে কম হয় currentTimeMillis। এটি ভগ্নাংশ সময় দেয়।
jaxad0127

2

8 ম , 61 47 বাইট

সুন্দর উন্নতির জন্য অষ্টম_দেবকে ধন্যবাদ (14 বাইট সংরক্ষিত)

d:msec ( . cr ) -1000 1000 loop d:msec swap - .

এটি সমস্ত সংখ্যার সংখ্যাটি -1000 এবং 1000 এর মধ্যে আরোহী ক্রমে এবং এই সংখ্যাগুলি মুদ্রণের জন্য নেওয়া সময় (মিলিসেকেন্ডে) মুদ্রণ করবে

-1000
-999
-998
-997
...
997
998
999
1000
4

1
এটি লক্ষ করা উচিত যে কোডগুলি উন্নত করতে সম্পাদনাগুলি প্রস্তাব দেওয়ার কারণে "ধ্বংসাত্মক" হিসাবে যোগ্যতা অর্জন করা হয়। পরিবর্তে মন্তব্য হিসাবে গল্ফ করার পরামর্শ দেওয়া উচিত। আমি যদি ব্যবহারকারীকে এটি করতে পারি তবে আমি পিং করব, তবে আমি পারব না। meta.codegolf.stackexchange.com/q/1615/34718
mbomb007

1
আমি জানি যে আপনি এটি অনুমোদন করেছেন, এটি ঠিক আপনার নিজের পোস্টের কারণে এটি ঠিক আছে তবে পর্যালোচনা সারিতে থাকা অন্যান্য পর্যালোচকদের এটিকে প্রত্যাখ্যান করা উচিত, এবং যে ব্যবহারকারী প্রথমে সম্পাদনার পরামর্শ দিয়েছিলেন তাদের উচিত না।
mbomb007

@ mbomb007 - আমাকে এটি জানাতে ধন্যবাদ। এই নির্দিষ্ট ক্ষেত্রে আমি কোডটি গ্রহণ করার আগে যাচাই করেছি, তবে পরের বারের জন্য আমি এ জাতীয় পর্যালোচনা এড়িয়ে যাব বা প্রত্যাখ্যান করব।
বিশৃঙ্খলা

2

জাপট, 23 বাইট

দুটি সমতুল্য সমাধান রয়েছে:

Oo(Ð -(A³òA³n @OpXÃ,йn
K=Ð;A³òA³n @OpXÃ;OoÐ -K

প্রথমটি মূলত নিম্নলিখিতটি করে:

output(-(new Date() - (1000 .range(-1000).map(X => print(X)), new Date())));

অর্থাৎ, পরিবর্তনশীল সময়টি সংরক্ষণ না করে এগুলি বিয়োগের মাঝখানে মুদ্রিত হয়। তবে এটি পরিবর্তনশীল রুটের চেয়ে কোনও ছোট নয়, যা মূলত:

K = new Date(); 1000 .range(-1000).map(X => print(X)); output(new Date() - K);

জাপানের সর্বশেষ সংস্করণে (এই চ্যালেঞ্জের চেয়ে নতুন) Kস্বয়ংক্রিয়ভাবে ফিরে আসার জন্য সেট আপ করা হয়েছে new Date()। এটি প্রথম সমাধানটি 21 বাইটে হ্রাস করে:

Oo(K-(A³òA³n @OpXÃK)n

এটি অনলাইন পরীক্ষা!


1

কিউবিআইসি , 34 বাইট

d=timer[-z^3,z^3|?a]?z^3*(timer-d)

QBasic TIMERফাংশন ব্যবহার করে , যা দশমিক স্বরলিপিতে সেকেন্ড ফিরে আসে। এটিকে সুন্দর দেখায় কিছু বাইট যুক্ত হয়।

ব্যাখ্যা

d=timer     Set 'd' to the current # seconds since midnight
[-z^3,z^3|  FOR -1000 to 1000  --  Note that 'z' = 10 in QBIC, and z^3 saves a byte over 1000
?a          Display the iterator
]           Close the FOR loop
    timer-d Take the current time minus the time at the start of the program -- 0.156201
?z^3*()     Multiply by a thousand and display it   156.201

1

সি ++ - 261

শুধু হাসির জন্য আমি ভেবেছিলাম আমি একটি সি ++ উত্তর পোস্ট করব।

#include <iostream>
#include <chrono>
using namespace std::chrono; using c=std::chrono::system_clock; void p(){c::time_point n=c::now();for(int i=-1001;++i<1001;)std::cout<<i<<"\n";std::cout<<(duration_cast<milliseconds>(system_clock::now()-n)).count()<<"\n";}

এটি কী করছে এবং কীভাবে এটি কল করবে - তা নির্ধারণ করার জন্য আমি এটি অনুশীলন হিসাবে ছেড়ে দেব - খুব বেশি সমস্যা হওয়া উচিত নয়।


1

স্কালা, 77 বাইট

def t=System.nanoTime
val s=t
Range(-1000,1001)map println
println((t-s)/1e6)

1

ফোর্স ল্যাং, 124

set t timer.new()
set i -1000
label 1
io.writeln set i i+1
if i=1000
 io.write math.floor 0.001.mult t.poll()
 exit()
goto 1

দ্রষ্টব্য: এটি stderrচালানোর সময় আপনার দমন করা উচিত । আমি বিশ্বাস করি মেটার বিষয়ে sensক্যমত্য হ'ল এটি বাইট গণনা জরিমানা গ্রহণ করে না।


1

সিম্পিচেম্পলেট , 92 বাইট

আমাকে সত্যিই কী হত্যা করেছিল তা ছিল সময় রেকর্ড করা।

{@callmicrotime intoX 1}{@for_ from-1000to1000}{@echol_}{@/}{@phpecho microtime(1)-$DATA[X]}

যেহেতু কোনও গণিত নেই (এখনও), এটি জিনিসগুলি বেশ শক্ত করে তোলে, আমাকে সরাসরি পিএইচপি লিখতে বাধ্য করে।

Ungolfed:

{@call microtime into start_time true}
{@for i from -1000 to 1000 step 1}
    {@echol i}{@// echoes a newline after}
{@/}
{@php echo microtime(true) - $DATA["start_time"];}

দাবি পরিত্যাগী:

আমি এই প্রতিশ্রুতি e118ae72c535b1fdbe1b80c847f52aa161854fda দিয়ে 2017-01-13 থেকে চালিয়েছি

সর্বশেষ প্রতিশ্রুতি ছিল এমন কিছু ঠিক করা যা এখানে কোডের সাথে সম্পর্কিত নয়।


1

সি 134 133 বাইট

1 টোমাস প্যাড্রন-ম্যাকার্থীকে 1 বাইট বাঁচানোর জন্য ধন্যবাদ।

f(){clock_t s,e;s=clock();for(int i=-1000;i<1001;i++)printf("%d\n",i);e=clock();printf("%lf",((double)((e-s))/(CLOCKS_PER_SEC))*1e3);}

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

void f()
{   
  clock_t s,e;

  s=clock();

  for(int i=-1000;i<1001;i++)
    printf("%d\n",i);   

  e=clock();
  printf("%f",((double)((e-s))/(CLOCKS_PER_SEC))*1e3);

 }

আপনি "% lf" কে "% f" এ পরিবর্তন করে একটি অক্ষর সংরক্ষণ করতে পারেন।
টমাস প্যাড্রন-ম্যাকার্থি

কেন না int t=time(null);... printf("%d",time(null)-t)? সংক্ষিপ্ত
আফাইক


1

Clojure, 94 বাইট

(let[t #(System/currentTimeMillis)s(t)](doseq[n(range -1e3 1001)](println n))(println(-(t)s)))

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

সবেমাত্র সমাধান যা কেবলমাত্র শুরুর সময়টি রেকর্ড করে, লুপ করে, তারপরে বর্তমান সময় বিয়োগের সূচনা প্রিন্ট করে। আমার অনুপস্থিতির চেয়ে ক্লোজুরের একটি এমএস-টাইম প্রাপক না থাকলে আমি জানি না কীভাবে এটি কোনও সংক্ষিপ্ততর পেতে পারে। কিছুটা অন্তর্নিহিত লুপ?

(defn time-print []
  (let [t #(System/currentTimeMillis) ; Alias the time-getter to "t"
        start (t)] ; Record starting time
    (doseq [n (range -1000 1001)] ; Loop over the range...
      (println n)) ; ... printing the numbers

    (println (- (t) start)))) ; Then print the current time minus the starting time.
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.