Tugas
Tugas Anda adalah membuat program atau fungsi yang, jika diberi input, mengeluarkan teks input dengan huruf kapital acak, sambil tetap menggunakan huruf kapital dengan huruf kapital.
Setiap kombinasi kapitalisasi huruf kecil harus dimungkinkan. Sebagai contoh, jika input adalah abc
, harus ada probabilitas non-nol keluaran salah satu kombinasi berikut: abc
, Abc
, aBc
, abC
, ABc
, AbC
, aBC
atau ABC
.
Memasukkan
Input Anda adalah string, yang berisi sejumlah karakter ASCII yang dapat dicetak, misalnya Hello World
. Output untuk input yang meliputi HeLLo WoRlD
, HElLO WOrld
, dll
Mencetak gol
Ini kode-golf, jadi jawaban tersingkat di setiap bahasa menang!
Japt , 6 byte
Uji secara online!
Penjelasan
sumber
Python 2 ,
6665 byteCobalah online!
sumber
C,
4746 byteBerkat @ l4m2 untuk menghemat satu byte!
Cobalah online!
Akan menjadi 42 byte, jika dapat diasumsikan bahwa
{|}~
tidak muncul di input:Cobalah online!
sumber
srand(1)
pada awal program, sehingga dalam setiap eksekusi urutan nilai yang dikembalikan olehrand()
akan sama).f(char*s){for(;*s++-=(*s-'a'<26&rand())*32;);}
untuk beberapa compiler (def.-funsigned-char
) kerja'a'
ke97u
karya dan bahkan tidak memerlukan-funsigned-char
bendera.'a'
(yangsigned int
bukanunsigned char
) dari*s
(yangunsigned char
),*s
dipromosikan menjadisigned int
bukanunsigned int
, maka nilai negatif menjadi mungkin dan perbandingan tidak berfungsi sebagaimana dimaksud.Jelly , 5 byte
Satu lagi bytes debu berkat dylnan.
Cobalah online!
Penjelasan
sumber
ŒṘ
lebih sering menggunakan untuk melihat bagaimana hal-hal diwakili di bawah tendaPerl 5 , 23 byte
22 byte kode +1 untuk
-p
.Cobalah online!
sumber
JavaScript (ES6), 56 byte
Jika keseragaman yang seragam tidak diperlukan, kami dapat menghemat 6 byte dengan menggunakan waktu saat ini sebagai sumber keacakan:
Ini cenderung huruf besar atau membiarkan semua huruf sekaligus.
sumber
AbC
karena waktu tidak akan berubah begitu cepatR , 66 byte
Cobalah online!
Jawaban R. lainnya .
sumber
for
-loop! BagusExcel VBA,
747164 BytesTheRandomize
panggilan selalu membuat keluaran acak mahal di VBA :(Fungsi jendela langsung VBE anonim yang mengambil input dari jarak
[A1]
dan keluaran ke jendela langsung VBE. MenghasilkanUCase
output 50% (rata-rata) d.sumber
Randomize:
dan menggantiRnd
dengan[RAND()>.5]
. Atau abaikan saja. :)[Rand()]
panggilan itu hanya psuedo-acak dan memiliki panjang periode kira-kira 10 ^ 13, membuatnya secara fungsional identik dengan panggilan unRandomize
dRnd
, pada kenyataannya keduanya menggunakan seed yang sama (yang diatur olehRandomize
call menggunakan fungsi tersebut keluaran).timer
Randomize
panggilan dan bukannya menggunakanRnd>.5
Arang ,
87 byteCobalah online! Tautan adalah untuk mengucapkan versi kode. Penjelasan:
sumber
Ruby, 40 Bytes
Fungsi Lambda yang mengambil string. Disimpan 1 byte berkat Arnauld. Disimpan 5 byte berkat Snack.
sumber
<1
bukan==1
?<s>
tag, misalnya " Ruby, <s> 46 </s> 40 byte ." Tentu itu tidak wajib.APL + WIN, 37 byte
Meminta input layar, mengidentifikasi huruf kecil dan mengubahnya secara acak menjadi huruf besar.
sumber
R ,
8988 bytekalah oleh djhurio!
Cobalah online!
Program ini mengambil setiap karakter, dan dengan probabilitas 1/2 mengubahnya menjadi huruf besar atau membiarkannya sendiri. Dimungkinkan untuk mengubah probabilitas ini dengan bermain dengan nilai
df
dan0
.rt
menarik dari distribusi-t Student, yang memiliki median 0 dengan tingkat kebebasan apa pun (saya memilih1
karena ini adalah jumlah terkecil yang mungkin).sumber
05AB1E ,
65 byteTerima kasih Adnan untuk -1 byte
Cobalah online!
Penjelasan
Metode diambil dari jawaban @ totallyhuman
sumber
ε„luΩ.V
adalah usaha saya, bagus!Ruby, 39 byte
->s{s.gsub(/./){[$&,$&.upcase].sample}}
Sangat terinspirasi dari jawaban displayname . (Saya tidak bisa berkomentar untuk menyarankan versi satu-byte-kurang ini karena kurangnya reputasi, displayname maaf )
sumber
Swift 4, 86 byte
sumber
Java 8, 46 byte
Lambda ini dari
IntStream
keIntStream
(aliran poin kode).Cobalah secara Online
Distribusi kapitalisasi
Apakah menggunakan huruf kapital dulu merupakan kondisi yang cukup masuk akal
Math.random()<.5
, yang dipenuhi sekitar separuh waktu. Dengan kondisi saat iniMath.random()>0
(yang menghemat satu byte), kapitalisasi terjadi hampir setiap waktu, yang membuat program uji menjadi tidak berguna. Tapi itu memenuhi persyaratan keacakan.Ucapan Terima Kasih
sumber
z
. Aku bisa melemparnya dengan kualifikasi.Funky , 55 byte
Cobalah online!
Berkat koma opsional, ini satu byte lebih pendek untuk dilakukan
0s.upper
dalam definisi tabel, yang berartimath.random
akan secara acak memilih salah satu1
atau2
, daripada melakukanmath.random(0,1)
secara acak dan tidak memiliki0
.sumber
R ,
60 59 58 57 5663 byteCobalah online!
Pendekatan yang berbeda dari dua R lainnya menjawab di sini dan di sini . Lebih baik dan diperbaiki berkat Giuseppe!
sumber
90
suka[
, tetapi ini memperbaikinya untuk +7 byte yang masih lebih golf daripada jawaban djhurioOuroboros , 25 byte
Coba di sini
Satu-satunya bagian yang mewah adalah aliran kontrol
.b*)
,. Mari kita bicarakan sisanya dulu.Kami kemudian kembali ke awal baris. Kontrol aliran melibatkan perubahan di mana ujung garis itu; jika dipindahkan ke kiri IP, eksekusi berakhir. Demikian:
Ketika charcode positif,
)
adalah no-op, karena ujung baris sejauh mungkin. Tetapi ketika semua karakter telah dibaca,i
berikan-1
. Kemudian kita memindahkan ujung-11
karakter kode ke kanan - yaitu, 11 karakter ke kiri. Dibutuhkan beberapa iterasi, tetapi akhirnya IP melewati akhir kode dan program berhenti.sumber
MATL ,
1211 byteCobalah online!
Disimpan 1 byte berkat @LuisMendo
sumber
Brachylog , 5 byte
Cobalah online!
Penjelasan
sumber
Alice ,
1715 byteTerima kasih kepada Leo karena telah menghemat 2 byte.
Cobalah online!
Penjelasan
Ini adalah kerangka kerja biasa untuk sebagian besar program linier yang beroperasi sepenuhnya dalam mode Ordinal.
Saya pertama kali mencoba melakukan ini sepenuhnya dalam mode Kardinal, tetapi menentukan apakah sesuatu surat hanya berdasarkan kode karakter mungkin akan mengambil lebih banyak byte.
sumber
Bahasa Wolfram (Mathematica) ,
524944 byteCobalah online!
Menggunakan bentuk operator dari
StringReplace
: memberikan aturan (atau daftar aturan) tetapi tidak ada string yang memberikan fungsi yang menerapkan aturan itu ke string apa pun yang Anda berikan sebagai input.Kita dapat melakukan jauh lebih baik (
RandomChoice@{#,Capitalize@#}&/@#&
34 byte) jika kita memutuskan untuk mengambil sebagai input (dan menghasilkan sebagai output) daftar karakter, yang kadang-kadang orang berpendapat tidak apa-apa di Mathematica karena itu satu-satunya jenis string yang ada dalam bahasa lain. Tapi itu tidak menyenangkan.-5 byte terima kasih kepada M. Stern
sumber
Capitalize
Random
sudah ditinggalkan Anda bisa menghemat empat byte dengan menerapkan Anda sendiriRandomChoice
:StringReplace[c_/;Random[]<.5:>Capitalize@c]
,Random
bekerja pada satu titik, tetapi saya lupa tentang hal itu/;
sehingga saya mencoba untuk membuatIf
pernyataan. Terima kasih!Pyth,
1076 byteDisimpan 3 byte berkat ovs dan 1 berkat Steven H.
Cobalah online
Penjelasan
sumber
r1d
=rd1
, memungkinkan Anda untuk memasukkan-input golf byte lain keluar.PHP,
6353 byteBerhasil mengurangi kode dengan 10 byte oleh (sebagian) mengikuti saran Titus.
sumber
$a
. Cobawhile(~$a=$argn[$i++])
alih-alihforeach
(jalankan sebagai pipa).PowerShell ,
5756 byteCobalah online!
-1 byte terima kasih kepada briantist
Mengambil input sebagai string, secara eksplisit melemparkan
$args
array ke string, melemparkannya sebagaichar
-array, lalu mengumpankan karakter melalui loop. Setiap iterasi, kami 50-50 menampilkan karakter apa adanya$_
atau mengubahnya menjadi huruf besar"$_".ToUpper()
(itu("$_"|% *per)
sampah). Itu dipilih dengan mendapatkanRandom
bilangan bulat dan membawanya mod2
.Karakter-karakter tersebut dibiarkan di atas pipa dan kemudian
-join
disatukan kembali menjadi satu string, yang dengan sendirinya ditinggalkan di dalam pipa dan hasilnya tersirat.sumber
"$_".ToUpper()
ke("$_"|% *per)
: - /Julia , 35 byte
Cobalah online!
Masih cukup mudah dibaca sebagai manusia. Dalam Julia rand (A) mengembalikan elemen acak dari A.
sumber
Rebol , 61 byte
Uji:
sumber
Jelly , 16 byte
Cobalah online!
Penjelasan
Saya tidak bisa membuat ini bekerja dalam satu baris. Saya juga tidak tahu mengapa, tetapi
2ḶXø³L¤Ð¡
memberikan daftar[None,1,0,..,1]
dengan0
s dan1
s yang dipilih secara acak. InilahNone
alasan untukḊ
tautan pertama.sumber