Menu
CoddyTech

Aritmetika Vektor dan Daur Ulang

Termasuk bagian Dasar-Dasar dalam perjalanan R di Coddy. Pelajaran 69 dari 78.

Saat kamu melakukan operasi aritmetika antara dua vektor dengan panjang yang sama, R menerapkan operasi tersebut elemen demi elemen:

a <- c(1, 2, 3)
b <- c(10, 20, 30)
print(a + b)

Output:

[1] 11 22 33

Namun, apa yang terjadi jika panjang vektornya berbeda? R menggunakan perilaku yang disebut daur ulang. Vektor yang lebih pendek diulang agar panjangnya sama dengan vektor yang lebih panjang:

numbers <- c(1, 2, 3, 4, 5, 6)
multiplier <- c(10, 100)
print(numbers * multiplier)

Output:

[1]  10 200  30 400  50 600

Di sini, multiplier didaur ulang menjadi c(10, 100, 10, 100, 10, 100) sebelum perkalian. Ini sangat berguna saat mengoperasikan satu nilai:

prices <- c(10, 20, 30)
print(prices * 1.1)

Output:

[1] 11 22 33

Nilai tunggal 1.1 digunakan kembali agar panjangnya sesuai dengan prices. Berhati-hatilah saat panjang vektor yang lebih panjang bukan kelipatan dari vektor yang lebih pendek, karena R tetap akan melakukan operasi tersebut, tetapi mungkin menampilkan peringatan tentang penggunaan ulang sebagian.

challenge icon

Tantangan

Mudah

Kamu akan menerima dua baris input:

  1. Daftar angka yang dipisahkan dengan koma, yang mewakili nilai dasar (misalnya, 10,20,30,40,50,60)
  2. Daftar pengali yang dipisahkan dengan koma (misalnya, 2,5)

Dengan menggunakan aritmetika vektor dan daur ulang:

  1. Buat vektor numerik dari nilai dasar
  2. Buat vektor numerik dari pengali
  3. Kalikan nilai dasar dengan pengali (R akan mendaur ulang vektor yang lebih pendek)
  4. Cetak hasil perkalian
  5. Tambahkan 100 ke setiap elemen nilai dasar asli (daur ulang satu nilai)
  6. Cetak hasil penjumlahan
  7. Kurangi vektor pengali dari vektor nilai dasar
  8. Cetak hasil pengurangan

Contohnya, jika inputnya adalah:

5,10,15,20,25,30
3,7

Outputnya seharusnya:

[1]  15  70  45 140  75 210
[1] 105 110 115 120 125 130
[1]  2  3 12 13 22 23

Penjelasan:

  • Perkalian: Pengali c(3, 7) didaur ulang menjadi c(3, 7, 3, 7, 3, 7), sehingga menghasilkan 5*3, 10*7, 15*3, 20*7, 25*3, 30*7
  • Penjumlahan: Nilai tunggal 100 didaur ulang untuk ditambahkan ke setiap elemen
  • Pengurangan: Pengali didaur ulang lagi, sehingga menghasilkan 5-3, 10-7, 15-3, 20-7, 25-3, 30-7

Coba sendiri

# Baca input
con <- file("stdin", "r")
base_input <- suppressWarnings(readLines(con, n = 1))
multipliers_input <- suppressWarnings(readLines(con, n = 1))
close(con)

# Ubah nilai yang dipisahkan koma menjadi vektor numerik
base_values <- as.numeric(strsplit(base_input, ",")[[1]])
multipliers <- as.numeric(strsplit(multipliers_input, ",")[[1]])

# TODO: Tulis kodemu di bawah ini
# 1. Kalikan base_values dengan multipliers (nilai akan didaur ulang secara otomatis)
# 2. Cetak hasil perkalian
# 3. Tambahkan 100 ke setiap elemen base_values
# 4. Cetak hasil penjumlahan
# 5. Kurangi base_values dengan multipliers
# 6. Cetak hasil pengurangan
quiz iconUji dirimu

Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.

Semua pelajaran di Dasar-Dasar

Latihan sendiri: Compiler R online