/* Configuration */
var QUESTION_ID = 132558; // Obtain this from the url
// It will be like https://XYZ.stackexchange.com/questions/QUESTION_ID/... on any question page
var ANSWER_FILTER = "!t)IWYnsLAZle2tQ3KqrVveCRJfxcRLe";
var COMMENT_FILTER = "!)Q2B_A2kjfAiU78X(md6BoYk";
var OVERRIDE_USER = 8349457; // This should be the user ID of the challenge author.
/* App */
var answers = [], answers_hash, answer_ids, answer_page = 1, more_answers = true, comment_page;
function answersUrl(index) {
return "https://api.stackexchange.com/2.2/questions/" + QUESTION_ID + "/answers?page=" + index + "&pagesize=100&order=desc&sort=creation&site=codegolf&filter=" + ANSWER_FILTER;
}
function commentUrl(index, answers) {
return "https://api.stackexchange.com/2.2/answers/" + answers.join(';') + "/comments?page=" + index + "&pagesize=100&order=desc&sort=creation&site=codegolf&filter=" + COMMENT_FILTER;
}
function getAnswers() {
jQuery.ajax({
url: answersUrl(answer_page++),
method: "get",
dataType: "jsonp",
crossDomain: true,
success: function (data) {
answers.push.apply(answers, data.items);
answers_hash = [];
answer_ids = [];
data.items.forEach(function(a) {
a.comments = [];
var id = +a.share_link.match(/\d+/);
answer_ids.push(id);
answers_hash[id] = a;
});
if (!data.has_more) more_answers = false;
comment_page = 1;
getComments();
}
});
}
function getComments() {
jQuery.ajax({
url: commentUrl(comment_page++, answer_ids),
method: "get",
dataType: "jsonp",
crossDomain: true,
success: function (data) {
data.items.forEach(function(c) {
if (c.owner.user_id === OVERRIDE_USER)
answers_hash[c.post_id].comments.push(c);
});
if (data.has_more) getComments();
else if (more_answers) getAnswers();
else process();
}
});
}
getAnswers();
var SCORE_REG = /<h\d>\s*([^\n,]*[^\s,]),.*?(-?\d+)(?=[^\n\d<>]*(?:<(?:s>[^\n<>]*<\/s>|[^\n<>]+>)[^\n\d<>]*)*<\/h\d>)/;
var OVERRIDE_REG = /^Override\s*header:\s*/i;
function getAuthorName(a) {
return a.owner.display_name;
}
function process() {
var valid = [];
answers.forEach(function(a) {
var body = a.body;
a.comments.forEach(function(c) {
if(OVERRIDE_REG.test(c.body))
body = '<h1>' + c.body.replace(OVERRIDE_REG, '') + '</h1>';
});
var match = body.match(SCORE_REG);
if (match)
valid.push({
user: getAuthorName(a),
size: +match[2],
language: match[1],
link: a.share_link,
});
});
valid.sort(function (a, b) {
var aB = a.size,
bB = b.size;
return aB - bB
});
var languages = {};
var place = 1;
var lastSize = null;
var lastPlace = 1;
valid.forEach(function (a) {
if (a.size != lastSize)
lastPlace = place;
lastSize = a.size;
++place;
var answer = jQuery("#answer-template").html();
answer = answer.replace("{{PLACE}}", lastPlace + ".")
.replace("{{NAME}}", a.user)
.replace("{{LANGUAGE}}", a.language)
.replace("{{SIZE}}", a.size)
.replace("{{LINK}}", a.link);
answer = jQuery(answer);
jQuery("#answers").append(answer);
var lang = a.language;
if (! /<a/.test(lang)) lang = '<i>' + lang + '</i>';
lang = jQuery(lang).text().toLowerCase();
languages[lang] = languages[lang] || {lang: a.language, user: a.user, size: a.size, link: a.link, uniq: lang};
});
var langs = [];
for (var lang in languages)
if (languages.hasOwnProperty(lang))
langs.push(languages[lang]);
langs.sort(function (a, b) {
if (a.uniq > b.uniq) return 1;
if (a.uniq < b.uniq) return -1;
return 0;
});
for (var i = 0; i < langs.length; ++i)
{
var language = jQuery("#language-template").html();
var lang = langs[i];
language = language.replace("{{LANGUAGE}}", lang.lang)
.replace("{{NAME}}", lang.user)
.replace("{{SIZE}}", lang.size)
.replace("{{LINK}}", lang.link);
language = jQuery(language);
jQuery("#languages").append(language);
}
}
body { text-align: left !important}
#answer-list {
padding: 10px;
width: 290px;
float: left;
}
#language-list {
padding: 10px;
width: 290px;
float: left;
}
table thead {
font-weight: bold;
}
table td {
padding: 5px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<link rel="stylesheet" type="text/css" href="//cdn.sstatic.net/Sites/codegolf/all.css?v=617d0685f6f3">
<div id="answer-list">
<h2>Leaderboard</h2>
<table class="answer-list">
<thead>
<tr><td></td><td>Author</td><td>Language</td><td>Size</td></tr>
</thead>
<tbody id="answers">
</tbody>
</table>
</div>
<div id="language-list">
<h2>Winners by Language</h2>
<table class="language-list">
<thead>
<tr><td>Language</td><td>User</td><td>Score</td></tr>
</thead>
<tbody id="languages">
</tbody>
</table>
</div>
<table style="display: none">
<tbody id="answer-template">
<tr><td>{{PLACE}}</td><td>{{NAME}}</td><td>{{LANGUAGE}}</td><td><a href="{{LINK}}">{{SIZE}}</a></td></tr>
</tbody>
</table>
<table style="display: none">
<tbody id="language-template">
<tr><td>{{LANGUAGE}}</td><td>{{NAME}}</td><td><a href="{{LINK}}">{{SIZE}}</a></td></tr>
</tbody>
</table>
5
. Jika Anda menggandakannya, sumber Anda adalah `` (program kosong) dan itu menghasilkan5
juga, apa pun yang Anda lakukan. Yang sedang berkata, program kosong digandakan masih program kosong, dan selalu menghasilkan output yang sama, kecuali untuk kasus di mana program kosong berarti sesuatu yang lain (generator angka acak, misalnya), yang tidak dapat tetap valid.Jawaban:
Python 2 , 33 byte
Cobalah online!
Coba gandakan
Python 3 , 28 byte
Cobalah online!
Coba gandakan
Penjelasan
Hal ini membuka source code menggunakan
open(__file__)
dan mendapat panjangnya menggunakanlen
yang#
mencegah kode tambahan dari sedang dibaca. Ketika sumbernya berlipat ganda maka panjangnya juga.sumber
tell()
mengembalikan posisi saat ini dalam fileJelly , 1 byte
Cobalah online!
atau Coba dua kali lipat!
Saya tidak tahu bagaimana ini bekerja, tetapi ternyata itu berhasil.
sumber
Google Sheets,
115 BytesRumus lembar kerja anonim yang tidak mengambil input dan output ke dalam sel yang menyimpan rumus
Sebagai formula tunggal ini mengevaluasi ke tumpukan panggilan yang terlihat sedikit seperti
Namun ketika rumus lembar kerja ini digandakan, tumpukan panggilan ini dievaluasi menjadi
Tentu saja, implikasi dari penggunaan metode ini adalah bahwa sekali ini diulang lebih dari sekali, pada yang ketiga dan semua iterasi setelah masalah, tumpukan panggilan akan mencapai
=4/(2=4)
dan dengan demikian mengevaluasi ke bawah=4/0
dan melemparkan#DIV/0!
kesalahan-6 byte dengan beralih ke aljabar dari
=DIVIDE(4,2
rumussumber
)
, jawaban ini adalah satu-satunya jawaban Google Spread yang saya lihat yang tidak diterjemahkan ke dalam jawaban Excel05AB1E , 2 byte
Asli
Cobalah online!
Dua kali lipat
Cobalah online!
Penjelasan
X mendorong 1 ke tumpukan.
O menjumlahkan tumpukan.
sumber
1O
!C (gcc), 37 byte
File tidak mengandung baris baru.
Versi ganda, untuk penyorotan sintaks:
TIO tautan: tunggal , ganda .
sumber
/*
itu dikomentari oleh//
, yang berarti berikuti=1
ini tidak dikomentari . Ini lebih mudah dilihat jika Anda memasukkan versi kode yang berlipat ke dalam highlighter sintaksisHexagony , 7 byte
Mencetak 1 secara teratur kemudian 2 kali lipat.
Cobalah online! atau Coba gandakan secara online!
Versi yang diperluas:
Reguler:
Dua kali lipat:
Program reguler mengikuti jalur:
/)!.@
yang menambah tepi memori (semua diinisialisasi ke nol) kemudian mencetak nilai numeriknya. Program ganda berikut:/.)/)!@
yang menambah tepi dua kali sebelum mencetak, sebagai gantinya.sumber
[@!)
(dan beberapa 570 solusi 5-byte). Karena Anda benar-benar kesulitan mencari solusi dengan tangan, saya sangat senang Anda memposting solusi 4-byte.Python 2 , 21 byte
Cobalah online!
Dua kali lipat:
Cobalah online!
sumber
Braingolf , 1 byte
Cobalah online!
Sekarang kita bicara!
Output
20
, atau40
ketika sumber digandakan.Penjelasan
+
tentu saja adalah operator "penjumlahan", "tambah" atau "plus", di Braingolf, namun ia memiliki fungsi diad, monadik, dan niladik.Ketika setidaknya ada 2 item di stack, itu diad, dan akan menjumlahkan 2 item teratas dari stack.
Ketika hanya ada 1 item di tumpukan, itu monadik, dan akan menggandakan item.
Ketika tidak ada item di stack, itu niladic, dan mendorong 20!
Mengapa itu mendorong 20? Ya karena program Braingolf kosong hanya mencetak baris baru, dan nilai ASCII dari baris baru adalah 10, jadi saya pikir saya akan membuat niladic
+
push 20 jadi sepertinya itu benar-benar menjadi monadik pada baris baru yang tersirat (meskipun tidak sama semua)Karena itu:
Dan saat digandakan:
sumber
Haskell ,
2618 byteCobalah online!
Dua kali lipat:
Cobalah online!
Saya menemukan versi ini ketika menjawab versi tripple dari tantangan .
Versi 26 byte tanpa penyalahgunaan komentar:
Cobalah online! Cetakan
1
.Dalam penjaga pola pengenal
n
diatur ke1
dannmain
untuk2
, laluprint n
dicetak1
.Program ganda:
Cobalah online! Cetakan
2
.Pada penjaga pola pertama
n
diatur ke1
dannmain
ke2
, namun pernyataan cetak telah menjadiprint nmain
, jadi2
dicetak. Karena deklarasi pengidentifikasi dalam penjaga pola mengevaluasi ke true, penjaga pola kedua tidak pernah dapat dijangkau.sumber
Mathematica, 5 byte
output 2 dan (1 +1) (1 +1) output 4
dan tentu saja (karena banyak dari Anda bertanya)
Mathematica, 3 byte
sumber
(2)
bekerja?2
dan sebuah ruang akan berfungsi, seperti yang akan+1
tetapi perlu dicatat bahwa semua ini mengasumsikan lingkungan notebook Mathematicax
, sehingga2
menghasilkan2
dan2 2
menjadi2x2
yang mencetak 4. Anda dapat menambahkannya sebagai solusi alternatif.(2)
berfungsi juga.2
berfungsi juga.Brain-Flak , 6 byte
Cobalah online!
Penjelasan
Apa ini harus cukup jelas.
{}
meraih nilai dari tumpukan, yang secara implisit nol untuk memulai,()
menambahkan satu ke dalamnya dan(...)
mendorong nilai. Pada run kedua karena sudah ada 1 pada stack ini hanya menambah 1 untuk membuatnya menjadi dua. Bahkan jika Anda menyalin koden
kali itu akan selalu ditampilkann
.sumber
> <> ,
76 byte-1 byte terima kasih kepada Teal pelican
Cobalah online!
Coba dua kali lipat!
Penjelasan
Saya menggunakan
0
tetapi saya bisa juga menggunakan1
-9
,a
-f
karena mereka semua mendorong nilai tunggal ke stack.Tidak berlipat ganda:
Dua kali lipat:
sumber
Retina , 3 byte
Cobalah online!
Cetakan
2
. Menggandakannya mencetak4
.The
1
bisa diganti dengan cukup banyak hal lain.Penjelasan
Mengganti input kosong dengan
1
.Menghitung jumlah kecocokan kosong
1
yang dua (satu sebelum1
dan satu setelah itu).Jika kita menggandakan program, kita mendapatkan tahap tambahan seperti yang pertama. Kali ini menyisipkan
1
sebelum dan sesudah yang pertama, memberi111
. Ketika kami sekarang menghitung jumlah korek api dari regex kosong, kami mendapatkan empat dari mereka.sumber
Python REPL, 2 byte
Juga berfungsi di Pip, Dyalog APL, JavaScript, J, dan R
Saya sedang membuat TIO sekarangsaya tidak bisa mendapatkan pengganti python untuk bekerja di TIOsumber
+1
persis apa yang akan saya lakukan: P tapi sial, Anda ninja saya sekitar satu menit> <Neim , 1 byte
Cukup tambahkan bagian atas tumpukan.
Tumpukan dapat dibayangkan sebagai jumlah nol yang tidak terbatas untuk memulai, jadi ini menambah nol untuk mendapatkan satu, dan dua kali lipat, menambahnya lagi untuk mendapatkan dua.
Cobalah online!
Solusi alternatif:
Menambahkan 2, bukan 1.
sumber
JavaScript, 38 byte
sumber
i++
?Java8,
135118110 byteTunggal , cetak 8
Dua kali lipat , mencetak 16
Pratinjau preview, 118 byte
Tunggal , mencetak 1
Dua kali lipat , mencetak 2
Bagaimana ini bekerja?
Java-compiler membuat satu file untuk setiap kelas dalam file sumber. Karena itu saya cukup memeriksa apakah ada sumber daya dengan nama B.class.
Jawaban Asli, 135 byte
Tunggal , mencetak 1
Dua kali lipat , mencetak 2
sumber
Python 2 , 32 byte
Cobalah online!
Kode sumber ganda
Penjelasan
Ini membuka file kode sumber dalam mode tambahkan
Kami kemudian menemukan posisi saat ini di file, ini akan berada di akhir file karena membuka dalam mode append
Kami mencetak panjang ini
Dan tambahkan komentar, sehingga menggandakan kode sumber tidak mengeksekusi lebih banyak kode
sumber
Excel VBA, 12 Bytes
Fungsi jendela langsung VBE anonim yang mengambil input dari dan output ke jangkauan
[A1]
. Nilai default dari rentang[A1]
adalah""
(string kosong) dan setelah satu eksekusi berikut ini menetapkan ini untuk1
dan kenaikan1
dengan semua eksekusi berikutnya.Input output
Versi Tunggal
Versi Berganda
sumber
Japt , 1 byte
Cobalah online!
Coba dua kali lipat!
Mengulangi lebih lama lagi, juga!
Agak sederhana. Japt transpiles ke JS, dan
Ä
transpiles ke+ 1
, jadiÄÄ
transpiles ke+ 1 + 1
, dan seterusnya.sumber
É
- untungnya saya memindai jawaban terlebih dahulu.Sekam , 3 byte
Cobalah online!
Gagasan orisinal, untuk apa yang telah saya lihat di jawaban lain.
Penjelasan
|
dalam Husk adalah operator "atau" yang mengembalikan argumen keduanya jika benar, sebaliknya argumen pertama. Ketika diterapkan pada argumen dari tipe yang berbeda, pertama-tama ia mengubah semuanya menjadi angka: transformasi untuk string (dan daftar pada umumnya) dilakukan dengan menghitung panjangnya.Dalam program asli kami menerapkan
|
ke 1 dan string kosong, yang akan dikonversi ke 0: hasilnya adalah 1.Dalam program yang digandakan kita berlaku
|
untuk 1 dan string "| 1", yang dikonversi menjadi 2: hasilnya 2.sumber
Braingolf, 1 byte
Cobalah online!
Coba dua kali lipat!
Saya tidak tahu bagaimana ini bekerja, yang terpenting itu terjadi!
sumber
CJam, 3 byte
Cobalah secara Online
Enkapsulasi 5 dalam array. Kembalikan panjang array. Saat Anda menduplikasi kode, panjang yang dikembalikan sebelumnya, 1, sudah ada di tumpukan, jadi Anda mendapatkan array [1,5], yang mengembalikan panjang 2.
sumber
Ruby, 16 byte
Cobalah online!
Dua kali lipat:
Coba online! Coba online!
sumber
Wumpus , 4 byte
Cobalah online!
Cobalah online!
Kode normal mencetak
32
dan kode ganda dicetak64
.Penjelasan
"
berfungsi seperti halnya di banyak Fungeoids lainnya: ia mengaktifkan mode string, di mana setiap kode karakter individu didorong ke stack, alih-alih menjalankan perintah. Namun, berbeda dengan sebagian besar Fungeoids lainnya, lapangan bermain Wumpus tidak membungkus, sehingga IP sebaliknya akan memantulkan akhir dan memantul bolak-balik melalui kode.Jadi untuk program tunggal, kode berikut ini sebenarnya dijalankan:
Tali mendorong
32, 79, 64, 79, 32
. Maka ruang tidak melakukan apa-apa,O
cetakan32
, dan@
mengakhiri program.Untuk program yang digandakan, string dihentikan sebelum IP memantul kembali, sehingga kode hanya dilintasi satu kali:
Kali ini, string mendorong
32, 79, 64
,O
mencetak64
dan@
mengakhiri program.Ini tampaknya menjadi satu-satunya solusi 4-byte.
sumber
,,,, 2 byte
Penjelasan
sumber
∑
muncul semua elemen di stack.Batch, 13 byte
Penjelasan:
%~z0
memperluas ke panjang file sumber, jadi menggandakan file hanya menggandakan panjangnya. Baris kedua mendefinisikan label kosong, yang tidak melakukan apa-apa. Ketika file digandakan, itu menjadi label yang@echo %~z0
diganti, sedangkan baris ketiga adalah label kosong lainnya.sumber
QBasic,
4428 byteTidak ada baris baru di akhir. Output
4
saat tunggal,8
saat digandakan.Penjelasan
Untuk versi tunggal:
4
adalah nomor baris.READ x,y
mengambil dua nilai pertama dariDATA
pernyataan dan menyimpannya dix
dany
. Jadi,x
dapatkan4
dany
dapatkan0
.?x+y
menambahkan dua angka dan mencetaknya.END
keluar dari program.Dalam versi yang digandakan,
DATA
pernyataan menjadiDATA 4,04
, yang menetapkan4
untuk keduanyax
dany
, dengan demikian menjadikannyax+y
sama8
.sumber
Befunge-98 , 5 byte
Cobalah online!
g
mendapatkan nilai karakter pada koordinat (9, 0) di Funge-Space;.
mencetaknya sebagai integer, dan@
menghentikan program. Dalam versi un-doubled, (9, 0) berada di luar batas program, dan Funge-Space di luar program diinisialisasi ke nilai default spasi, jadi kami mencetak 32. Dalam versi doubled, (9, 0) adalah@
karakter, jadi kami mencetak 64.sumber
Perl 5 , 7 byte
Dengan
-M5.10.0
Cobalah online!
Dua kali lipat :
-2 Terima kasih untuk Ton Hospel
sumber
say
untuk mendapatkan 2 byte lebih banyak (-M5.10.0
atau-E
bukannya-e
gratis)