Tantangan ini diinspirasi oleh blog pemrograman yang sering saya kunjungi. Silakan lihat posting asli di sini: Puzzle Pemrograman
Tantangan
Tetapkan fungsi f:Q->Qsedemikian rupa f(f(n)) = -nuntuk semua bilangan bulat bukan nol n, dan di mana Qhimpunan bilangan rasional.
Detail
Dalam bahasa apa pun yang Anda inginkan, sebutkan satu fungsi atau program fyang menerima sebagai parameter satu nomor ndan mengembalikan atau menampilkan satu nomor f(n).
Input dapat diberikan melalui mekanisme apa pun yang paling alami untuk bahasa Anda: argumen fungsi, baca dari STDIN, argumen baris perintah, posisi tumpukan, input suara, tanda-tanda geng, dll.
Output harus berupa nilai balik dari fungsi / program atau dicetak ke STDOUT.
Saya ingin membatasi jawaban untuk fungsi yang tidak memanfaatkan status program atau memori / data global yang terlihat dari luar fungsi f. Misalnya, menjaga penghitung di luar fitu dihitung berapa kali fdipanggil dan hanya melakukan negasi berdasarkan perhitungan ini tidak terlalu menantang atau menarik bagi siapa pun. Keputusan yang diambil fharus hanya bergantung pada data dalam flingkup leksikal.
Namun, batasan ini mungkin tidak sesuai untuk beberapa bahasa berorientasi tumpukan atau jenis bahasa lain yang tidak membedakan tipe data atau cakupan ini. Silakan gunakan penilaian terbaik Anda untuk tetap dengan semangat tantangan ini.
Mencetak gol
Aturan golf kode umum berlaku - skor Anda adalah jumlah byte dalam kode sumber Anda.
Jawaban minimal membutuhkan domain dan kode funtuk menjadi subset dari rasional Q. Jika Anda membatasi domain dan kode domain Anda fke bilangan bulat Z, maka skor Anda adalah batas tertinggi 90% dari jumlah byte dalam kode sumber Anda.
Tiebreak
Dalam hal seri, berikut ini akan digunakan secara berurutan:
- Jumlah simbol non-spasi putih yang dapat dicetak dalam kode sumber Anda
- Tanggal dan waktu paling awal pengiriman jawaban
Edit
Anda tidak diharuskan untuk mendukung angka-angka berukuran sewenang-wenang. Silakan mengartikan set Zdan Qsebagai tipe data dalam bahasa yang Anda pilih (biasanya integer dan floating point, masing-masing).
Jika solusi Anda sepenuhnya bergantung pada struktur atau pola bit dari tipe data, mohon jelaskan keterbatasannya dan bagaimana itu digunakan.
f:Q->Qartinya?
fadalah fungsi pemetaan anggota Q(angka rasional) ke anggota lain (mungkin sama) dari Q. lihat en.wikipedia.org/wiki/Function_(mathematics)#Notation
