Skip to content

Teka-teki 100 Locker

August 6, 2006

Icha menulis mengenai pertanyaan teka-teki yang diajukan oleh Tommy:

Ada 100 loker dalam keadaan tertutup. Ada 100 orang yang tugas nya itu membalikkan keadaan dari suatu loker tertentu. Membalikkan keadaan maksudnya agar loker yang tertutup dibuka; yang terbuka ditutup. Kerjanya itu berurutan. Setelah orang pertama selesai baru yang kedua, dan seterusnya. Orang ke-1..dia bertugas diloker kelipatan ke-1. Orang ke-2 di loker kelipatan ke-2, dst.. Jadi orang ke-n tugas nya itu di loker2 kelipatan n

Setelah orang ke-100 kelar, ada berapa loker yang terbuka? Loker nomor berapa aja?

Karena matematika saya itu jelek…

01  lockers = [False for x in range(0,100)]
02  for worker in range(1,101):
03      for locker_number in range(worker, 101, worker):
04          lockers[locker_number-1] = not lockers[locker_number-1]
05
06  print [x+1 for x in range(0, len(lockers)) if lockers[x] ]

technorati tags: , ,

10 Comments
  1. Ariya: Makasih linknya. Sayangnya tidak dijelaskan mengapa angka-angka tersebut memiliki jumlah pembagi ganjil.

  2. gampang. ambil contoh 18 dan 16.

    faktor dari 18 adalah 1,2,3,6,9, dan 18. kita bisa “pasangkan” angka terakhir dan angka pertama, jadi 18=1.18 atau 18=2.9 atau 18=3.6. karena bisa dipasangkan (total 3 pasang), pasti jumlah faktornya genap.

    faktor dari 16 adalah 1,2,4,8,16. dalam kasus ini, yang bisa dipasangkan hanya 2 faktor pertama dengan 2 terakhir, yaitu 16=1.6 dan 16=2.8. 4 tidak ada pasangannya karena 16=4.4, alias berpasangan dengan diri sendiri.

    jadi kalau satu bilangan n adalah d.d (misalnya n=16 dan d=4), maka banyak faktornya adalah bilangan ganjil. maka n adalah bilangan kuadrat.

  3. Karena angka kuadrat kalo difaktorisasi selalu bentuknya kayak gini:

    1 | 2 |
    16 ——–| 4
    16 | 8 |

    Yang paling kanan itu dianggep 1 faktor

  4. Ohh ternyata begitu! Sip sip, dah ngerti sekarang.

  5. Suganda permalink

    K, mau tau gak cerita lucu

    lu kan bikin program utnuk problem itu di perl.
    gua mau coba nih bikin di Java.
    baru juga coba declare array… eh ada error
    jadi gw isi something like int a[100] = {0};
    eh salah ad error
    yaudah deh males nerusin lagi
    HAUHAUHAUAHAUHAUHAUAHAUAHU
    kayak gini nih yang jadi TA java di binus international
    wkwkwk

  6. Ini Python gan, bukan Perl.

  7. muhammad habibullah permalink

    jawabnya 50 karena jika loker yang tertutup kemudian dibuka oleh seseorang dan di tutup oleh orang yang lain maka butuh dua atau kelipatannya agar kembali tertutup tetapi untuk yang bukan termasuk dalam bilangan tersebut akan terbuka, yang bilangan itu ada 50 yang semuanya berupa bilangan ganjil

  8. a_mathugm permalink

    Saya mw kirim teka-teki Matematika juga…saya sebut ini adalah teka-teki serba 5. Teka-tekinya adalah sbb :
    Ada lima orang yang akan berlibur ke sebuah negara. Mereka akan mengunjungi lima tempat wisata yang berbeda. Selama lima hari ditempat wisata, mereka akan ditemani oleh lima orang pemandu wisata. Waktu liburan yang direncanakan adalah selama lima hari. Kemudian mereka akan dijadwalkan harus mengunjungi semua tempat wisata selama tepat lima hari. Ketentuannya adalah sbb:
    1. Setiap orang akan ditemani oleh satu pemandu selama tepat satu hari, hari berikutnya harus ditemani pemandu yang lain, tidak boleh ada pemandu yang sama menemani lebih dari sekali.
    2. Selama satu hari satu orang hanya diperkenankan mengunjungi 1 tempat wisata, dan pada hari berikutnya tidak boleh mengunjungi tempat wisata yang sama.
    3. Pemandu juga tidak diperkenankan mengunjungi tempat wisata yang sama pada hari-hari berikutnya.
    4. Didalam satu tempat wisata hanya boleh dikunjungi oleh satu orang dan satu pemandu.

    Mungkinkah jadwal diatas dapat dilaksanakan? jika mungkin bagaimana jadwalnya? sebut saja lima hari itu adalah H1,H2,…,H5
    Lima orang itu adalah O1,O2,…,O5
    Lima pemandu itu adalah P1,P2,…,P5
    dan lima tempat wisata itu adalah T1,T2,…,T5

  9. tuti permalink

    berikut jawaban dari a_mathugm :
    Jadwal mengunjungi 5 negara di 5 hari dengan 5 wisatawan dan 5 pemandu yang berbeda:
    H1: P1O1T1; P2O2T3; P3O3T5; P4O4T2; P5O5T4
    H2: P2O1T2; P3O2T4; P4O3T1; P5O4T3; P1O5T5
    H3: P3O1T3; P4O2T5; P5O3T2; P1O4T4; P2O5T1
    H4: P4O1T4; P5O2T1; P1O3T3; P2O4T5; P3O5T2
    H5: P5O1T5; P1O2T2; P2O3T4; P3O4T1; P4O5T3
    Dengan begitu semua syarat utk mengunjungi 5 negara terpenuhi

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: