Diberikan bilangan bulat, mengeluarkan nilai kebenaran jika itu terbalik terbalik (diputar 180 °) atau nilai palsu sebaliknya.
0
,, 1
dan 8
memiliki simetri rotasi. 6
menjadi 9
dan sebaliknya.
Urutan angka yang menghasilkan hasil yang benar: OEIS A000787
0, 1, 8, 11, 69, 88, 96, 101, 111, 181, 609, 619, 689, 808, 818, 888, 906, 916, 986, 1001, 1111, 1691, 1881, 1961, 6009, 6119, 6699, 6889, 6969, 8008, 8118, 8698, 8888, 8968, 9006, 9116, 9696, 9886, 9966, 10001, 10101, 10801, 11011, 11111, 11811, 16091, ...
Pertanyaan ini terinspirasi oleh reputasi saya sendiri pada saat posting: 6009
.
code-golf
number
sequence
decision-problem
code-golf
string
parsing
c
code-golf
sorting
integer
code-golf
number
sequence
rational-numbers
graphical-output
atomic-code-golf
assembly
box-256
code-golf
geometry
tips
python
code-golf
number
sequence
arithmetic
number-theory
code-golf
ascii-art
kolmogorov-complexity
geometry
code-golf
graphical-output
code-golf
math
code-golf
grid
cellular-automata
game-of-life
code-golf
string
subsequence
code-golf
arithmetic
rational-numbers
code-golf
tips
dc
code-golf
ascii-art
kolmogorov-complexity
date
code-golf
string
primes
code-golf
string
natural-language
conversion
code-golf
sequence
code-golf
number-theory
primes
base-conversion
code-golf
math
primes
base-conversion
code-golf
ascii-art
fractal
code-golf
matrix
code-golf
math
tips
geometry
python
string
code-challenge
keyboard
code-golf
graphical-output
code-golf
string
code-golf
number
sequence
cops-and-robbers
number
sequence
cops-and-robbers
mbomb007
sumber
sumber
raw_input
, pengguna memasukkan bilangan bulat, yang akan menjadi string di belakang layar. Tidak apa-apa.Jawaban:
05AB1E ,
22161514 byteKode:
Cobalah online!
Kode sebelumnya:
Untuk mencari tahu apakah string adalah simetris rotasi, kita hanya perlu transliterasi
69
dengan96
, membalikkan string dan memeriksa apakah mereka adalah sama. Hal lain yang perlu kita tahu adalah jika nomor hanya berisi angka0
,1
,8
,6
dan9
. Jadi itulah yang akan kita lakukan:Bagian ini
„vd•
benar-benar mengubah stringvd
dari basis 190 ke basis 10 . Anda dapat mencobanya di sini .Menggunakan pengodean CP-1252 . Cobalah online!
sumber
Python 2, 50 byte
Metode ini
'01xxxx9x86'.find
mengambil karakter digit ke angka terbalik itu, dengan pemberian digit yang tidak dapat dibatalkan-1
. Fungsi ini dipetakan ke string angka terbalik, menghasilkan daftar digit.Ini dikonversikan ke string dengan
[1::3]
triknya , kecuali sebaliknya, sebaliknya dengan melakukan[-2::-3]
(terima kasih kepada Dennis untuk ini, menghemat 4 byte), dan dibandingkan dengan string angka asli. Siapa pun-1
dari angka yang tidak dapat dibalik akan menyelaraskan konversi, membuatnya gagal.56 byte:
Memeriksa apakah string nomor terbalik sama dengan penggantian terbalik. Digit yang tidak bisa dibalik diganti dengan
'x'
untuk selalu memberikan jawaban yang salah.Penggantian dilakukan dengan
translate
string 256 karakter, menggantikan nilai ASCII yang sesuai. Hanya 10 nilai48
untuk57
peduli, tapi aku melangkah untuk panjang 16 untuk membuat total panjang menjadi 256. Saya heran jika ada cara yang lebih pendek.Beberapa pendekatan lain (panjang 59, 60, 60):
sumber
Ruby,
5446 byteSaya tidak tahu, apakah fungsi anonim seperti itu diizinkan atau tidak
Ide dasarnya sama dengan jawaban Python2. Jika input bukan bilangan bulat, bertingkahlah buruk (mis.
aba
Memberitrue
)sumber
JavaScript (ES6), 56 byte
sumber
split``
. Lihat array literal yang lebih kuatPerl,
2926 byteTermasuk +1 untuk
-p
Jalankan dengan input pada STDIN:
rotation.pl
:sumber
Jelly,
1615 byteCobalah online!
Bagaimana itu bekerja
sumber
Retina,
5749 byte8 byte disimpan berkat @Martin Büttner .
1610880191
->61088019
->108801
->0880
->88
-> (kosong).1
jika saja0
,1
,8
, atau (kosong) yang tersisa.0
sebaliknya.Cobalah online!
sumber
sh,
4033 byteInput melalui argumen baris perintah, output melalui kode keluar. Hasilkan semua testcases:
sumber
TSQL, 122 byte
Saya baru mengenal kode golf, jadi tidak yakin bagaimana cara menghitung karakter. Menghitung sebagai 1 di sini karena jumlah yang digunakan dalam kasus ini adalah 8
Ini akan mengembalikan 1 ketika nilai yang dibalik cocok dan tidak ada yang tidak cocok:
Dapat dibaca manusia:
sumber
Retina ,
403833 byteCobalah online!
Penjelasan
Ini menggunakan pendekatan yang sama sekali berbeda dari jawaban Retina lainnya. Alih-alih menghapus semua bagian simetris, kita hanya melakukan transformasi membalikkan string dan swapping
6
dan9
s dan kemudian membandingkan untuk kesetaraan. Untuk memastikan bahwa tidak ada angka non-simetris yang muncul, kami juga mengubahnya menjadi9
dalam setengah.Kami menduplikasi input dengan mencocokkan ujung string dan memasukkan
;
diikuti oleh seluruh input.Ini melakukan transliterasi karakter hanya pada babak kedua dengan mencocokkannya
;.+
. Dua set transliterasi meluas ke:Karena
2-7
menunjukkan rentang dan set target diisi dengan karakter terakhir yang cocok dengan panjang set sumber. Karenanya, panggung bertukar6
dan9
dan juga mengubah semuanya23457
menjadi9
s.Berulang-ulang (
+
) menghapus sepasang karakter identik di sekitar;
. Ini akan berlanjut sampai hanya yang;
tersisa atau sampai dua karakter di sekitar;
tidak lagi identik, yang berarti bahwa string bukan kebalikan satu sama lain.Periksa apakah karakter pertama adalah
;
dan cetak0
atau1
sesuai.sumber
Pyth - 21 byte
Test Suite .
sumber
X_zK
melakukan pekerjaan yang sama denganX_z_KK
. Parameter ke-3 adalah opsional.Pyth, 17 byte
Uji di Kompiler Pyth .
Bagaimana itu bekerja
sumber
Visual Basic for Applications,
150111 byteDapat digunakan di konsol atau sebagai UDF.
Ditingkatkan dengan memanfaatkan konversi tipe implisit dan dengan melakukan tiga langkah bertukar alih-alih dua langkah di setiap sisi persamaan. Hitungan termasuk
Function
danEnd Function
pernyataan.sumber
GNU sed, 84 byte
(termasuk +1 untuk
-r
bendera)Jika garis berakhir dengan rotasi karakter awal, pangkas kedua ujungnya dengan satu. Ulangi sampai tidak ada kecocokan. Akun untuk karakter simetris tunggal, maka jika ada yang tersisa, inputnya tidak simetris, dan kami mengembalikan false; jika tidak, kembalikan benar.
sumber
C, 82 byte
Diperluas
Penjelasan
Kami membalikkan angka
x
menggunakan modulo-10 aritmatika, mengganti 6 dan 9 dengan refleksi mereka saat kami melangkah. Kami mengganti angka rotasi-asimetris dengan nol (perhatikan bahwa kami dapat menangani balita simetris dan / atau dua-dua dengan hanya mengubah tabel penggantians
). Jika nomor baru sama dengan yang asli (disimpan dalam 'z'), maka itu simetris secara rotasi.Program uji
Ini mencetak daftar nomor simetris yang diberikan dalam pertanyaan.
sumber
MATL,
252122 byteCobalah secara Online!
Penjelasan
sumber
Serius, 23 byte
Cobalah online!
Ini pada dasarnya adalah pelabuhan solusi Python 2 xnor .
Penjelasan:
sumber
Kotlin, 69 byte
Ini mengambil nomor, mengubahnya menjadi string, memutarnya, dan kemudian membandingkannya dengan yang asli sebagai string untuk kesetaraan. Digit yang tidak dapat diputar hanya dikonversi ke
0
Uji di Sini!
sumber