Urutan van der Corput adalah salah satu contoh paling sederhana dari urutan perbedaan rendah . n
Istilah ke- nya adil 0.(n written in base 10 and mirrored)
, jadi syarat pertamanya adalah:
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
, ...
Tantangan
Tulis program atau fungsi dalam bahasa pemrograman apa pun yang mengambil input bilangan bulat positif n
kurang dari 10^6
dan mengembalikan atau mencetak n
istilah pertama dari urutan van der Corput. Format output dapat berupa daftar angka floating point, daftar string formulir 0.digits
, atau string unik di mana istilah dipisahkan oleh koma dan / atau spasi putih, baris baru.
Celah standar dilarang. Kode sumber terpendek menang.
Oracle SQL 11.2,
646258 byteVersi lama
Menggabungkan '' ke nomor melemparkannya ke string. Ini lebih pendek 2 byte daripada menggunakan TRIM (), yang lebih pendek dari TO_CHAR ().
Karena menggabungkan string ke NUMBER menghasilkan string, dimungkinkan untuk menggunakan string itu untuk mengelola '0.' bagian dari hasilnya.
sumber
CJam,
1411 byteTerima kasih kepada Sp3000 untuk menghemat 3 byte.
Uji di sini.
Penjelasan
sumber
Perl 6,
242220 byteTerima kasih Aleks-Daniel Jakimenko-A. untuk dua byte lagi
versi lama
SUNTING: Terima kasih raiph untuk 2 byte tambahan
pemakaian
sumber
{("0."~.flip for ^$_)}
menghemat 2 byteMathematica, 40 byte
Kasus cobaan
sumber
Pyth, 8 byte
Cobalah online.
Ini benar-benar hanya kombinasi dari ini dan jawaban ini . Karenanya saya menjadikannya wiki komunitas.
sumber
Pyth, 11 byte
Coba di sini!
Penjelasan
sumber
Pyth - 10 byte
Cobalah online di sini .
sumber
VSQ...
JavaScript (ES6), 58
Fungsi anonim mengembalikan string dengan nilai yang dipisahkan koma
UJI
sumber
MATL , 10 byte
Cobalah online!
sumber
Haskell,
36, 27 byteDua byte disimpan oleh nimi dan 7 tambahan oleh Lynn.
sumber
f n=reverse.show<$>[1.0..n]
Brachylog , 23 byte
Ini mengambil angka sebagai input dan output hasilnya ke STDOUT, dipisahkan oleh spasi.
Cukup mudah. Sayangnya kami harus menggabungkan angka dengan string kosong untuk mengonversi angka ini menjadi string (
:""rc
), karena belum ada predikat konversi bawaan.Konversi ke string diperlukan, karena jika kita membalikkan angka angka, maka angka nol di depannya (mis
10
menjadi01
) akan hilang.sumber
PowerShell, 52 byte
Sedikit lebih lama dari yang saya inginkan, tetapi menggunakan beberapa trik yang rapi.
The
while
loop jelas, tetapi bersyarat adalah sedikit rumit - kami memiliki$a
(yang dimulai sebagai$null
ketika pertama kali direferensikan) dan kemudian mengurangi jumlah masukan kami$args[0]
. Di PowerShell, operasi matematika$null
memperlakukannya sebagai nol, jadi untuk input20
misalnya ini akan menghasilkan-20
. Karena angka bukan nol adalah$true
, kondisi loop akan$true
benar sampai$a
sama dengan nomor input kami (pada titik pengurangan akan sama dengan0
atau$false
). Triknya berasal dari kenaikan-pasca++
, yang tidak mengeksekusi sampai setelah pengurangan dihitung, sehingga penanganan input1
akan keluar dengan benar0.1
dan kemudian menghentikan loop pada iterasi berikutnya.Setiap kali dalam loop, kami hanya membuat string literal yang dibiarkan pada pipeline dan output sesuai. Kami membangun ini dari
"0."
digabungkan dengan hasil dari-join
operator unary yang telah bertindak pada char-array yang dibuat dari pengambilan string"$a"
ke belakang (dengan mengindeks melalui rentang"$a".length..0
).Tes Berjalan
sumber
Bash, 36 byte
Mengambil nomor sebagai argumen baris perintah, dan menampilkan setiap istilah pada baris yang terpisah. Sebagai contoh:
sumber
seq -f%g.0 $1|rev
.seq
bisa melakukan output yang diformat.Japt, 12 byte
Uji secara online!
Bagaimana itu bekerja
sumber
lilin lebah ,
5753 byteBekerja pada masalah keluaran digit biner untuk rosettacode Saya perhatikan bahwa saya dapat menggunakan algoritma pembagian pendek yang sama untuk urutan van der Corput, hanya menggunakan pembagian dan modulo dengan 10 alih-alih 2. Output dibalik dalam kedua kasus.
Diturunkan oleh 4 byte, dengan mencerminkan kode:
Cetak awal heksagonal, untuk orientasi yang lebih mudah:
Penjelasan satu siklus melalui program, menggunakan kode asli:
Contoh:
sumber
R, 59 Bytes
penjelasan
example(strsplit)
menciptakan fungsistrReverse
(maka itu harus jelas)Menggunakan
IRanges::reverse
, ini bisa di-golf hingga 47 bytesumber
Python 3, 47 byte
solusi yang lebih pendek dengan Python 2
Kasus cobaan
sumber
f=
tidak diperlukan, jadi panjangnya 47 byte.n-1
istilah pertama .lambda n:['0.'+`i+1`[::-1]for i in range(n)]
lebih pendek jika Anda menggunakan Python 2. Selain itu, Anda tidak boleh mengatakan "Python 3.5" kecuali itu membutuhkan 3.5, yang tidak. Versi ini membutuhkan Python 2.𝔼𝕊𝕄𝕚𝕟, 12 karakter / 15 byte
Try it here (Firefox only).
Tidak masalah.
Penjelasan
⩤⁽1ï⒨
membuat rentang[1,ï]
untuk dipetakan,ß)
mengubah mapitem (angka) menjadi string,Ė⍞.0
concat.0
ke akhir, danᴙ
membalikkan seluruh string.sumber
Python 2, 54 Bytes
Penjelasan:
Ulangi set
[1,input)
dan tambahkan yang dibaliki
ke.
.Masih menjadi golf lagi.
sumber
`i`
sebagai gantistr(i)
. Juga, saya pikir Anda perlu mencetak nol di depan.PHP,
4541 byteMengambil argumen input dari CLI. Jalankan seperti ini:
sumber
Retina, 39 byte
Mengambil input di unary.
Cobalah online di sini.
sumber
Gema, 45 karakter
Contoh dijalankan:
sumber
Julia ,
50383331 byteSaya pergi untuk format output yang berbeda untuk mempersingkat kode dengan 12 byte. Fungsi mengembalikan array string sekarang. Dipersingkat 5 byte lebih. Terima kasih kepada Alex A. untuk mengingatkan saya pada interpolasi string dan menggunakan fungsi anonim (menghilangkan 2 byte lebih).
atau sebagai alternatif
Uji
sumber
n->["0."reverse("$i")for i=1:n]
map(n->["0."reverse("$i")for i=1:n],3)
(untuk n = 3) diperlukan untuk menghasilkan output apa pun? Itu akan membuatnya (setidaknya) selama solusi saya.Python 2, 40 byte
Contoh:
Pemecahan aljabar:
sumber
jq 1.5,
4035 karakter(34 karakter kode + 1 opsi opsi perintah karakter.)
Contoh dijalankan:
Tes online (Melewati
-r
URL tidak didukung - periksa sendiri Output Raw.)Sama dengan tautan ke dokumentasi:
Sebagai alternatif yang lebih mudah dibaca, hal di atas juga dapat ditulis seperti ini ( online ):
sumber
"\(.+1).0"/""
kerjanya?\(…)
dan pembagian/
, yang dalam hal string dipisahkan.BBC BASIC,
898887 byteSingkatan yang digunakan untuk mempersingkat hal-hal sebanyak mungkin. Kompatibel dengan Brandy Basic dan BASIC 2 pada mesin asli.
Untuk BASIC BBC modern Anda juga dapat meninggalkan nomor baris untuk menghemat dua byte lagi.
sumber
Dyalog APL , 12 byte
Cobalah online!
Straight-forward:
{
string fungsi'0.'
sebelum representasi string-,
terbalik argumen ke fungsi untuk masing-masing angka 1 sampai n⌽
⍕
⍵
}
¨
⍳
.sumber
JS, 66
Output adalah array yang disebut "o"
sumber
Groovy, 36 karakter
Contoh dijalankan:
sumber