ভ্যান ডের করপুট ক্রম আউটপুট করুন


27

ভ্যান Corput ক্রম ডের সহজ উদাহরণ অন্যতম কম অমিল ক্রম । এটির দ্বিতীয়তম পদটি nন্যায়সঙ্গত 0.(n written in base 10 and mirrored), সুতরাং এর প্রথম পদটি হ'ল :

0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 0.01, 0.11, 0.21, 0.31, 0.41, 0.51, 0.61, 0.71, 0.81, 0.91, 0.02, 0.12, 0.22, 0.32, 0.42, 0.52, 0.62, 0.72, 0.82, 0.92, ...

চ্যালেঞ্জ

কোনও প্রোগ্রামিং ভাষায় এমন একটি প্রোগ্রাম বা একটি ফাংশন লিখুন যা ইনপুট হিসাবে ইতিবাচক পূর্ণসংখ্যার nচেয়ে কম নেয় 10^6এবং nভ্যান ডার করপুট অনুক্রমের প্রথম পদগুলি প্রদান করে বা মুদ্রণ করে । আউটপুট ফর্ম্যাটটি ভাসমান পয়েন্ট সংখ্যাগুলির একটি তালিকা, ফর্মের স্ট্রিংগুলির তালিকা 0.digitsবা একটি অনন্য স্ট্রিং যেখানে শর্তগুলি কমা এবং / অথবা হোয়াইটস্পেস, নিউলাইন দ্বারা পৃথক করা যায়।

স্ট্যান্ডার্ড লুফোলগুলি নিষিদ্ধ। সংক্ষিপ্ততম সোর্স কোড জিতেছে।

উত্তর:


16

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

কোড:

>GNÞR,

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

ব্যাখ্যা:

>       # Increment, pushes input + 1
 G      # For N in range(1, input + 1):
  N     # Push N
   Þ    # Convert to double, which appends `.0` at the end of an integer
    R   # Reverse top of the stack
     ,  # Pop and print with a newline

সিপি-1252 এনকোডিং ব্যবহার করে।


মানে, উইন্ডোজ -122?
ইসমাইল মিগুয়েল

@ ইসমাইল মিগুয়েল এটি একই
আদনান

আমি জানি, তবে এটি সাধারণত সিপি -১২২২ নামে স্বীকৃত নয়
ইসমাইল মিগুয়েল

এই চ্যালেঞ্জের উদ্দেশ্যে আপনার নিজের ভাষাটি পরিবর্তন করতে হবে?
অ্যান্ড্রু সাভিনিখ

@ অ্যান্ড্রুস্যাভিনিখ না, এটি প্রতারণা হিসাবে বিবেচিত এবং এই সাইটে অনুমোদিত নয়। এটি 7.3 সংস্করণে কাজ করে যা এই চ্যালেঞ্জ পোস্ট হওয়ার আগে প্রকাশিত হয়েছিল।
আদনান

8

ওরাকল এসকিউএল 11.2, 64 62 58 বাইট

SELECT REVERSE(LEVEL||'.0')FROM DUAL CONNECT BY LEVEL<=:1;

পুরনো সংস্করণ

SELECT '0.'||REVERSE(TRIM(LEVEL))FROM DUAL CONNECT BY LEVEL<=:1;

সংখ্যার সাথে '' কনটেন্যাটিং এটিকে স্ট্রিংয়ে ফেলে। এটি ট্রিম () ব্যবহারের চেয়ে 2 বাইট কম, যা TO_CHAR () এর চেয়ে কম।

যেহেতু একটি স্ট্রিংটিতে একটি স্ট্রিংকে একটি NUMBER টি ফলাফলের সাথে যুক্ত করা হয়, তাই '0' পরিচালনা করতে সেই স্ট্রিংটি ব্যবহার করা সম্ভব is ফলাফল অংশ।



7

পার্ল 6, 24 22 20 বাইট

{"0."X~(^$_)».flip}

ধন্যবাদ আলেকস-ড্যানিয়েল জাকিমেনকো-এ। আরও দুটি বাইট জন্য

পুরনো সংস্করণ

{("0."~.flip for ^$_)}
# Alternate below, same byte count
{map ^$_: "0."~*.flip}

সম্পাদনা: অতিরিক্ত 2 বাইটের জন্য রাইফকে ধন্যবাদ

ব্যবহার

> my &f = {"0."X~(^$_)».flip}
-> ;; $_? is raw { #`(Block|333498568) ... }
> f(25)
(0.0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 0.01 0.11 0.21 0.31 0.41 0.51 0.61 0.71 0.81 0.91 0.02 0.12 0.22 0.32 0.42)

1
{("0."~.flip for ^$_)}2 বাইট সংরক্ষণ করে
রায়ফ

6

গণিত, 40 বাইট

"0."<>StringReverse@ToString@#&~Array~#&

পরীক্ষা ক্ষেত্রে

%[20]
(* {0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9,0.01,0.11,0.21,0.31,0.41,0.51,0.61,0.71,0.81,0.91,0.02} *)


4

পাইথ, 11 বাইট

m+"0."_`dSQ

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

ব্যাখ্যা

m + "0।" _ `dSQ # Q = ইনপুট

মিঃ এসকিউ # মানচিত্রটি (1, কিউ) থেকে ...
 + # ... এর উপসংহার:
  "0।" _ `D #" 0. " এবং বিপরীত উপাদান


4

জাভাস্ক্রিপ্ট (ES6), 58

কমা বিভাজিত মানগুলির সাথে একটি স্ট্রিং ফেরত একটি বেনামী ফাংশন

n=>[...[...Array(n)].map(_=>n--+'.0')+''].reverse().join``

পরীক্ষা

f=n=>[...[...Array(n)].map(_=>n--+'.0')+''].reverse().join``

function test() { R.textContent = f(+I.value) }

test()
N:<input id=I type=number value=20 oninput="test()"><br><pre id=R></pre>



4

হাস্কেল, 36 , 27 বাইট

f n=reverse.show<$>[1.0..n]

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


f n=reverse.show<$>[1.0..n]
লিন

3

ব্র্যাচল্যাগ , 23 বাইট

:0re:""rcr:"0."rcw,@Sw\

এটি ইনপুট হিসাবে একটি সংখ্যা নেয় এবং ফাঁকা স্থান দ্বারা পৃথক, ফলাফল STDOUT এ আউটপুট দেয়।

মোটামুটি সহজবোধ্য. দুর্ভাগ্যক্রমে এই সংখ্যাটিকে একটি স্ট্রিং ( :""rc) এ রূপান্তর করতে আমাদের একটি খালি স্ট্রিং দিয়ে সংখ্যাটি সংহত করতে হবে , কারণ এখনও কোনও অন্তর্নির্মিত রূপান্তর প্রাক্কিট নেই।

স্ট্রিংয়ে রূপান্তর করা প্রয়োজনীয়, কারণ আমরা যদি সংখ্যার অঙ্কগুলি বিপরীত করি তবে অগ্রণী শূন্যগুলি (যেমন, 10হয়ে যায় 01) হারিয়ে যাবে।


3

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

while($a++-$args[0]){"0."+-join"$a"["$a".Length..0]}

আমি চাই তার থেকে একটু বেশি লম্বা, তবে বেশ কয়েকটি ঝরঝরে কৌশল ব্যবহার করা হয়েছে।

whileলুপ সুস্পষ্ট, কিন্তু শর্তসাপেক্ষ একটি সামান্য চতুর হয় - আমরা আছে $a(যা হিসাবে আরম্ভ করা হয় $nullযখন প্রথম রেফারেন্সড) এবং তারপর আমাদের ইনপুট সংখ্যা বিয়োগ $args[0]। পাওয়ারশেলে, গণিতের ক্রিয়াকলাপগুলি $nullএটিকে শূন্য হিসাবে বিবেচনা করে, সুতরাং ইনপুটটির 20জন্য উদাহরণস্বরূপ এটি ঘটবে -20। যেহেতু কোনও অ-শূন্য সংখ্যা হ'ল $true, লুপটি শর্তযুক্ত হবে $trueযতক্ষণ না $aআমাদের ইনপুট সংখ্যার সমান হয় (যে বিন্দুতে বিয়োগটি সমান 0বা সমান হবে $false) or কৌতুকটি পোস্ট-ইনক্রিমেন্ট থেকে আসে ++, যা বিয়োগফল গণনার পরে অবধি কার্যকর হয় না , সুতরাং উইলের ইনপুট হ্যান্ডলিং 1সঠিকভাবে আউটপুট করবে 0.1এবং তারপরে পরবর্তী পুনরাবৃত্তির উপর লুপটি বন্ধ করবে।

লুপের প্রতিটি সময়, আমরা কেবল একটি স্ট্রিং আক্ষরিক তৈরি করি যা পাইপলাইনে রেখে যায় এবং সেই অনুযায়ী আউটপুট দেয়। আমরা স্ট্রিংটি পিছনের দিকে (রেঞ্জের মাধ্যমে সূচীকরণের মাধ্যমে ) তৈরি করা চার-অ্যারেতে অভিনয় করে এমন "0."ইউনিারি -joinঅপারেটরের ফলাফলের সাথে সংমিশ্রিত থেকে এটি তৈরি করি ।"$a""$a".length..0

টেস্ট রান

PS C:\Tools\Scripts\golfing> .\van-der-corput-sequence.ps1 1
0.1

PS C:\Tools\Scripts\golfing> .\van-der-corput-sequence.ps1 20
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
0.01
0.11
0.21
0.31
0.41
0.51
0.61
0.71
0.81
0.91
0.02

3

বাশ, 36 বাইট

for i in `seq $1`;do rev<<<$i.0;done

কমান্ড লাইন আর্গুমেন্ট হিসাবে একটি সংখ্যা নেয় এবং প্রতিটি পদকে পৃথক লাইনে আউটপুট দেয়। উদাহরণ স্বরূপ:

$ ./vdc.sh 12
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
0.01
0.11
0.21

2
না বিশুদ্ধ ব্যাশ যদি যাহাই হউক না কেন: seq -f%g.0 $1|rev
manatwork

পছন্দ করুন আমি জানতাম না যে seqফর্ম্যাট করা আউটপুট করতে পারে।
স্কচিমিশ ওসিফরেজ


3

মোম ,57 53 বাইট

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

কোডটি মিরর করে 4 বাইট দ্বারা গল্ফড:

`.0` XfE@~@L#;
 { %X<#dP@T~P9_
   q<#   N
    >:'bg?b

সহজ দিকনির্দেশের জন্য ষড়ভুজীয় প্রশংসাপত্র:

` . 0 `   X f E @ ~ @ L # ;
 {   % X < # d P @ T ~ P 9 _
    q < #       N
     > : ' b g ? b

মূল কোডটি ব্যবহার করে প্রোগ্রামের মাধ্যমে একটি চক্রের ব্যাখ্যা:

;#L@~@EfX `0.`
_9P~T@Pb#>X% {
      N   #>p
      d?gd':<


                                                  lstack   gstack
                                _9P              [0,0,10]•         create bee, set top to 10
                                   ~T            [0,10,n]•         flip top and 2nd, enter n
                                     @P          [n,10,1]•         flip top and 3rd, increment top
                                       b                           redirect to upper left
                     [n,10,1]•        E          [n,10,1]•      (2)clone bee in horizontal direction
flip lstack 1st/3rd  [1,10,n]•       @ f         [n,10,1]•  [1]•   push lstack top on gstack       
flip lstack 1st/2nd  [1,n,10]•       ~   X                         clone bee in all directions
flip 1st/3rd         [10,n,1]•      @     `0.`                     print "0." to STDOUT
skip if 1st>2nd      [10,n,1]•     L      >                     (1)redirect 
if 1st<2nd, del. bee              #        X                       clone bee in all directions
(if 1st>2nd, terminate program)  ;          % {  [n,10,1]•         1st=1st%2nd, output lstack 1st to STDOUT
                                            >p                     redirect
                                             <                     redirect
                                            :    [n,10,0]•         1st=1st/2nd
                                           '                       skip next instr. if 1st=0
                                          d                        redirect to upper right, loop back to (1)
                                         g       [n,10,1]   [1]•   push gstack top on lstack 1st
                                       d?                   []•    pop gstack, redirect to upper right
                                       N                           print newline to STDOUT
                                       P         [n,10,2]          increment lstack 1st
                                       E                           looped back to (2)

উদাহরণ:

julia> beeswax("vandercorput.bswx",0,0.0,Int(20000))
i300
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
0.01
0.11
0.21
0.31
0.41
  .
  .
  .
0.492
0.592
0.692
0.792
0.892
0.992
0.003

Program finished!

2

আর, 59 বাইট

example(strsplit);cat(strReverse(sprintf('%s.0',1:scan())))

ব্যাখ্যা

example(strsplit)ফাংশন তৈরি করে strReverse(তারপরে এটি স্পষ্ট হওয়া উচিত)

ব্যবহার করে IRanges::reverse, এটি 47 বাইটে গল্ফ করা যেতে পারে

cat(IRanges::reverse(sprintf('%s.0',1:scan())))

2

পাইথন 3, 47 বাইট

lambda n:['0.'+str(i+1)[::-1]for i in range(n)]

পাইথন 2 এর সাথে একটি সংক্ষিপ্ত সমাধান

lambda n:['0.'+`i+1`[::-1]for i in range(n)]

পরীক্ষা ক্ষেত্রে

>>> f(25)
['0.1', '0.2', '0.3', '0.4', '0.5', '0.6', '0.7', '0.8', '0.9', '0.01', '0.11', '0.21', '0.31', '0.41', '0.51', '0.61', '0.71', '0.81', '0.91', '0.02', '0.12', '0.22', '0.32', '0.42', '0.52']

আমার পাইথন দ্রবণটি একই ছিল তবে আমি মনে করি f=এটির প্রয়োজন নেই, সুতরাং এটি 47 বাইট দীর্ঘ।
বব

@Bob ঠিক আছে আমি এটি সরানো
Erwan

এটি প্রথম n-1পদগুলিকে আউটপুট করে ।
seequ

@ সেক আপনি ঠিক বলেছেন আমি সমাধানটি পরিবর্তন করেছি, এটি বাইটস গণনা পরিবর্তন করে না
এরওয়ান

lambda n:['0.'+`i+1`[::-1]for i in range(n)]আপনি পাইথন ২ ব্যবহার করলে সংক্ষিপ্ত হয় is এছাড়াও, আপনার "পাইথন 3.5" না বলা উচিত নয় যদি না এটির 3.5 প্রয়োজন হয়, যা এটি না করে। এই সংস্করণটির জন্য পাইথন ২ প্রয়োজন
mbomb007

1

𝔼𝕊𝕄𝕚𝕟, 12 চর / 15 বাইট tes

⩤⁽1ï⒨ß)Ė⍞.0ᴙ

Try it here (Firefox only).

ঠিক আছে.

ব্যাখ্যা

⩤⁽1ï⒨ওপরে [1,ï]মানচিত্রের জন্য একটি পরিসীমা তৈরি করে, ß)মাপিটেম (সংখ্যা )টিকে স্ট্রিংয়ে রূপান্তর করে, শেষ দিকে Ė⍞.0কনক্যাট .0করে এবং পুরো স্ট্রিংটি বিপরীত করে।


1

পাইথন 2, 54 বাইট

def f(i):
    for i in range(1,i):print("."+str(i)[::-1])

ব্যাখ্যা:

সেট মাধ্যমে পুনরুক্তি [1,input)এবং appends বিপরীত iথেকে .

এখনও একটি আরও গল্ফ করা।


`i`পরিবর্তে ব্যবহার করুন str(i)। এছাড়াও, আমি মনে করি আপনাকে প্রথম শূন্য প্রিন্ট করতে হবে।
mbomb007

1

পিএইচপি, 45 41 বাইট

for(;$i++<$argv[1];)echo strrev(",$i.0");

সি এল এল থেকে ইনপুট আর্গুমেন্ট নেয়। এভাবে চালান:

php -r 'for(;$i++<$argv[1];)echo strrev(",$i.0");' 100
  • বিপরীতমুখী হওয়ার আগে স্ট্রিংটি কনটেনেট করে 3 বাইট সংরক্ষণ করা হয়েছে



1

জুলিয়া ,50 38 33 31 বাইট

কোডটি 12 বাইট দ্বারা সংক্ষিপ্ত করতে আমি একটি ভিন্ন আউটপুট ফর্ম্যাটটিতে গিয়েছিলাম। ফাংশনটি এখন স্ট্রিংগুলির একটি অ্যারে প্রদান করে। আরও 5 টি বাইট দ্বারা সংক্ষিপ্ত। স্ট্রিং ইন্টারপোলেশন সম্পর্কে স্মরণ করিয়ে দেওয়ার এবং একটি বেনামি ফাংশন (আরও 2 বাইট থেকে মুক্তি পেয়ে) ব্যবহার করার জন্য অ্যালেক্স এ কে ধন্যবাদ Thanks

n->["0."reverse("$i")for i=1:n]

বা বিকল্পভাবে

n->[reverse("$(i/1)")for i=1:n]

পরীক্ষা

julia> @time f(10000)
  0.002260 seconds (60.01 k allocations: 2.823 MB)
10000-element Array{ASCIIString,1}:
 "0.1"
 "0.2"
 "0.3"
 "0.4"
 "0.5"
 "0.6"
 "0.7"
 "0.8"
 "0.9"
 "0.01"
 "0.11"
 "0.21"
 "0.31"
 "0.41"
 "0.51"
 "0.61"
 "0.71"
 "0.81"
 "0.91"
 "0.02"
 "0.12"
 "0.22"
 "0.32"
 ⋮
 "0.8799"
 "0.9799"
 "0.0899"
 "0.1899"
 "0.2899"
 "0.3899"
 "0.4899"
 "0.5899"
 "0.6899"
 "0.7899"
 "0.8899"
 "0.9899"
 "0.0999"
 "0.1999"
 "0.2999"
 "0.3999"
 "0.4999"
 "0.5999"
 "0.6999"
 "0.7999"
 "0.8999"
 "0.9999"
 "0.00001"

1
31 বাইট:n->["0."reverse("$i")for i=1:n]
অ্যালেক্স এ।

1
যাইহোক, আপনি আপনার প্রোফাইলটি এখানে পুরানোটির সাথে একীভূত করার জন্য অনুরোধ করতে পারেন ।
অ্যালেক্স এ।

খুব সুন্দর, এটা জানতাম না। ধন্যবাদ!
এমএল

@AlexA। বেনামে ফাংশন নিজেই কিছু আউটপুট দেয় না। map(n->["0."reverse("$i")for i=1:n],3)(এন = 3 এর জন্য) এর মতো দীর্ঘ সংস্করণটির কোনও আউটপুট উত্পাদন করার প্রয়োজন হবে না? এটি যতক্ষণ না আমার সমাধান হিসাবে এটি তৈরি করবে (কমপক্ষে)।
এমএল

1
একটি বেনামি ফাংশনের জন্য, আপনি কেবল এই কলটি যুক্ত করার জন্য শর্তটি যুক্ত করুন, একজনকে অবশ্যই এটি একটি ভেরিয়েবলের জন্য বরাদ্দ করতে হবে। একটি নামকৃত কার্যক্রমে দুটি বাইট সংরক্ষণ করে এবং আমাদের বিধি মেনে চলে।
অ্যালেক্স এ।

1

পাইথন 2, 40 বাইট

lambda n:[`i+1.`[::-1]for i in range(n)]

উদাহরণ:

>>> f=lambda n:[`i+1.`[::-1]for i in range(n)]
>>> f(30)
['0.1', '0.2', '0.3', '0.4', '0.5', '0.6', '0.7', '0.8', '0.9', '0.01', '0.11', '0.21', '0.31', '0.41', '0.51', '0.61', '0.71', '0.81', '0.91', '0.02', '0.12', '0.22', '0.32', '0.42', '0.52', '0.62', '0.72', '0.82', '0.92', '0.03']

বীজগণিত সমাধান:

corput(x) = reversed(str(float(x+1)))
          = reversed(str(x+1.))
          = str(x+1.)[::-1]
          = `x+1.`[::-1]

1

jq 1.5, 40 35 টি অক্ষর

(34 টি অক্ষরের কোড + 1 অক্ষর কমান্ড লাইন বিকল্প))

range(.)|"\(.+1).0"/""|reverse|add

নমুনা রান:

bash-4.3$ jq -r 'range(.)|"\(.+1).0"/""|reverse|add' <<< 12
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
0.01
0.11
0.21

অন-লাইন পরীক্ষা ( -rইউআরএল মাধ্যমে পাস করা সমর্থিত নয় - কাঁচা আউটপুট নিজেই দেখুন))

ডকুমেন্টেশনের লিঙ্কগুলির সাথে একই:

পরিসর (  ) | " \ (+ 1 ) .0" / "" | বিপরীত | যোগ

আরও পঠনযোগ্য বিকল্প হিসাবে উপরেরটিও এইভাবে লেখা যেতে পারে ( অন-লাইন ):

range(.) | . + 1 | tostring | . + ".0" | split("") | reverse | join("")

jq সত্যিই দুর্দান্ত। মন বুঝিয়ে দিচ্ছে কিভাবে "\(.+1).0"/""কাজ করে?
seequ

এখানে বিশেষ কিছু নেই, কেবল একটি স্ট্রিং ইন্টারপোলেশন \(…) এবং একটি বিভাগ / , যা স্ট্রিংগুলির ক্ষেত্রে বিভক্ত থাকে।
manatwork

1

বিবিসি বেসিক, 89 88 87 বাইট

0T=1:REP.P."0."FNR(STR$T):T=T+1:U.0
1DEFFNR(S$)IFS$="":=""EL.=FNR(MI.S$,2))+LE.S$,1)

যতটা সম্ভব সংক্ষিপ্ত করতে সংক্ষিপ্তসার ব্যবহৃত হয়েছে। মূল মেশিনে ব্র্যান্ডি বেসিক এবং বেসিক 2 উভয়ের সাথেই সামঞ্জস্যপূর্ণ।

আধুনিক বিবিসি বেসিকগুলির জন্য আপনি আরও দুটি বাইট সংরক্ষণের জন্য লাইন নম্বরগুলি ছেড়ে দিতে পারেন।


1

ডায়ালগ এপিএল , 12 বাইট

{'0.',⌽⍕⍵}¨⍳

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

স্ট্রেইট-ফরোয়ার্ড: এন এর মাধ্যমে সংখ্যার প্রতিটি জন্য ফাংশনে যুক্তির বিপরীত স্ট্রিং-উপস্থাপনের আগে ফাংশন {স্ট্রিং ।'0.',}¨


0

জেএস, 66

T=101; // set T to the number of iterations wanted
for(o=[],i=0;i<T;i++)o[i]="0."+(""+i).split("").reverse().join("") // 66b

আউটপুট হ'ল অ্যারে "ও"


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