Sing in RSS

Özlem Hancıoğlu

"Bir şeyi gerçekten bilmek, onu anlatmakla olur"

Biraz da algoritma...

by ozlem 9. Eylül 2008 20:43
Microsoft Student Partner olurken hedeflerimden biri olan Microsoft Redmond kampüsünde staj için, mülakat soruları araştırırken, ilginç sorular buldum. Eğlenceli ve zevkli bu sorulardan birkaçını sizinle de paylaşmak istiyorum.
 
  • Multiple by 8 without using multiplication or addition.
 
  • Given an array of characters. How would you reverse it. ? How would you reverse it without using indexing in the array
 
  • Suppose you have an array of 1001 integers. The integers are in random order, but you know each of the integers is between 1 and 1000 (inclusive). In addition, each number appears only once in the array, except for one number, which occurs twice. Assume that you can access each element of the array only once. Describe an algorithm to find the repeated number. If you used auxiliary storage in your algorithm, can you find an algorithm that does not require it?
 
  • You have 8 balls. One of them is defective and weighs less than others. You have a balance to measure balls against each other. In 2 weighings how do you find the defective one?
 
Soruların cevabını hemen vermiyorum. Bakalım kimler ne cevaplar verecek =)

Yorumlar

09.09.2008 23:39:50 #

Suna Eralp

2) of course by pointer arithmeticSmile
Özlemcim çok ilgi çekici bi konu olmuş bizim için, teşekkür ederizSmile Bu ilginç sorulardan 2.si, bizi okul projelerinde birazcık sinirlendiren bi konuydu da, ondan ilgimi çekti hemenSmile

Suna Eralp Turkey

10.09.2008 00:04:20 #

Suna Eralp

sevdim ben bu algoritma bulmaca işiniSmile 4.cüsü de şöyle oluyor..
bi 6lı grup seçiyoruz. 3e 3 tartılmada hafif gelen bi grup varsa o grubu 1e 1 tartıyoruz. 1 tanesi de dışarda kalıyor.
    Burda toplardan biri daha hafifse istediğimiz odur.
    Toplar eşit ağırlıktaysa istediğimiz dışarda kalandır.
3e 3te iki grup da eşit ağırlıktaysa (8-6=)2 topu 1e 1 tartıyoruz. Hafif olan istediğimizdir.

Suna Eralp Turkey

10.09.2008 01:24:18 #

Mehmet Aydın Bahadır

4. sorunun çok benzerini Algoritmalar sınavında karşılaşmıştık. Suna çözümü vermiş, ilk soruyu da Modern Programlama dersinde hocamız sınavda sormuştu. 5 dakikada sınavdan çıkanlar da vardı 2 saatte de (ben gibi) Tong

Mehmet Aydın Bahadır Turkey

10.09.2008 02:01:05 #

Murat Duman

@Mehmet, soru hakkında geniş bir bilgi vermişsin ama cevabını göndermemişsin. Özlem cevap göndermeyenlere ödül yok sanırım?
Ben de 4 için cevap yazacaktım ama Suna önce davranıp göndermiş. İşte RSS takip savaşı başladı Smile
Bu arada 3. sorunun cevabını gönderene benden Windows Home Server kiti Smile hediyeyi incelemek için bloguma bakabilirsiniz.

İyi çalışmalar.

Murat Duman Turkey

10.09.2008 08:53:26 #

Burak Kanmaz

@Murat,
Uzunca düşündüm ama bulamadım. Sanırım matematiksel düşünmek gerek dedim ve googleda arayınca 1.sırada Özlemin sitesi Smile 3.sırada ise çözümün olduğu siteyi buldum. Google'a erişimin olduğu bir yerde ödüllü sorunun esprisi kalmıyor Smile

Burak Kanmaz Turkey

10.09.2008 08:54:26 #

Burak Kanmaz

Yinede Google'a bakmadan yapmak isteyenler için çözümü yazmıyorum buraya. Hakederek çözüm yapan varsa Murat'tan güzel bir set kazanacak ;)

Burak Kanmaz Turkey

10.09.2008 12:18:03 #

Mehmet Aydın Bahadır

Dizideki tekrar eden sayıyı bulmayacak mıyız ki? For döngüsüyle diziyi toplarız. 1000*1001/2'yle çıkarırız. Sonuç bu değil mi?

Mehmet Aydın Bahadır Turkey

10.09.2008 12:23:53 #

Mehmet Aydın Bahadır

1. sorunun cevabı kalmış bir tek onu da vereyim, genel olarak şöyle formüle edelim. 'x' bizim 8'le çarpacağımız sayı olsun.
x-x-x-x-x-x-x-x-x-x/-1
bize sonucu verecektir..

Mehmet Aydın Bahadır Turkey

10.09.2008 14:58:38 #

Muhammed Medeni Baykal

1. icin cevap Smile  x sayi olsun, (x << 3)

Yyanlis hatirlamiyorsan << operatoru bit kaydirir. x i uc bit sola kaydimak demek 2 uzeri 3 ile carpmak demektir.

***

simdi bir daha baktim herpsi cevaplanmis zateno nedenle sadece cevaplanmayan biri yazayim Smile

Muhammed Medeni Baykal Turkey

10.09.2008 15:22:59 #

Mustafa Bodur

Algoritma derslerinden herkesin geçtiği iyi olmuş Smile Ama ilk soru yanlış Smile bir kere çıkarma(subtraction) da bir toplama işlemidir (x+(-x)) gibi.. Zaten toplama(çıkarma'nın) + çarpma(bölme'nin) tersi olduğundan toplama ve çarpma bize yeter. Çarpmanında toplamanın birden fazla tekrarlanması olarak düşünürsek bir tek toplama basit işlemler için yeterde artar. Karışık işlemlerde çarpma yardıma gelir.

Biz bunlarla uğraşalım adamlar 600bin km ile parçacık çarpıştırsın.. Laughing Herşey sırayla sanırsam.

Mustafa Bodur Turkey

10.09.2008 15:35:00 #

Muhammed Medeni Baykal

Heyt nereye yanlis :d Gerci benim cevaptan bahsetmemissin ama..

Bu arada, Murat Dumanin bahsettigi olayi gordum de simdi, (yine uzerime alindim) ben hediye istemiyorum, cunku bende de yaklasik bir 5 tane var ve elimden cikartmaya baslayacagim (kargo gorevlisi kapimi calar calmaz Smile)

Muhammed Medeni Baykal Turkey

10.09.2008 16:10:26 #

Erçin Yontar

1. soruya baktım aklıma direk öteleme işlemi geldi, 8, 2'nin 3. kuvveti olduğuna göre 3 kere öteleme yaparsak sınırdan taşmadığı her durumda 8'le çarpılmış olur.

Erçin Yontar Turkey

11.09.2008 21:55:28 #

ozlem

Cevaplarınız için hepinize teşekkür ederim. Şimdi birincileri açıklama vakti =)

1. Soru: Muhammed Medeni Baykal - http://www.nesterosa.com
2. Soru: Suna Eralp - http://sunaeralp.blogspot.com" rel="nofollow">http://sunaeralp.blogspot.com
3. Soru: Mehmet Aydın Bahadır - http://www.aydinbahadir.com
4. Soru: Suna Eralp - http://sunaeralp.blogspot.com" rel="nofollow">http://sunaeralp.blogspot.com

Murat, birinci olan üç arkadaşa (Sunaya 2 tane =)) ödüllerini toplantımızda verirsin artık. Sorular devam edecek. Takibe devam. =)

ozlem Turkey

12.09.2008 12:36:53 #

Mustafa Bodur

İyi de Murat bana daha dün bir tane bu ödüllerden verdi.. Ben ne ödülü aldım ki Laughing en iyi beceriksizlik ve kıvırma ödülü gibi bir şey mi? Smile Ya da avuntu olsun diye sadece kutusunu mu verdi yoksa! Frown Kontrol etmeli...

Mustafa Bodur Turkey

12.09.2008 13:57:00 #

Suna Eralp

Ödül olduğunu bilmeden katılıp iki tane kazanarak çıktım, iyi oldu Tong Özlemcim toplantıda bi de şu bizim XNA ödülünü de alıp aradan çıkartsak mı =) Yeni sorularını gene erken yakalarsam yanıtlamaya çalışıcam, takip edilesi blogunda başarılar diliyorum tekrar Smile

Suna Eralp Turkey

12.09.2008 15:23:09 #

özlem

Teşekkür ederim yorumlarınız için...

@Mustafa,
Serverı kur ve bizi bununla ilgili paylaşımlarınla bilgilendir diye bence dolu bir kutu vermiştir Murat ;)

@Suna,
Hazır gitmişken elimiz boş dönmeyelim mi diyosun, tamam olur Laughing

özlem Turkey

13.09.2008 03:25:52 #

Murat Duman

@Özlem, ben sadece 3. sorunun cevabını bilene gönderecektim ama Suna'ya da geldiğinde Ankara'ya hediyelerini iletirim. Smile

@Aydın iletişim bilgilerini gönderirsen ya da İstanbul-Ankara'da isen yakın zamanda iletebilirim.

@Mustafa, sen zarfı aç, whs kur, makaleleri bekliyoruz Smile

@Özlem Smile yorum eklendiğinde haberdar etmiyor sistem, bu problem sadece bende mi var?

İyi çalışmalar.

Murat Duman Turkey

25.09.2008 10:41:04 #

Sıradan Birisi

Sitenizi ilk defa ziyaret ediyorum. Makaleniz ilgimi çekti. Biraz kafa yorayım istedim. Açıkçası cevaplara daha bakmadım. Nitekim göründüğü kadarıyla cevabını veren vermiş.
Beni kafa yormaya teşvik ettiğiniz için yinede teşekkür
edeyim Smile ve cevaplarımı yazayım.


1) x << 3;

2)char text[] ={ ... }
  ...
  {
    char *ptr = text;
  size_t slen = strlen(ptr);

    for (int i = 0; i != slen / 2; ++i)
    *(ptr + i) ^= *(ptr + slen - i - 1)
    ^= *(ptr + i) ^= *(ptr + slen - i - 1);
  }

3)  const int ELEM_COUNT = 1001;
    int_arr[ELEM_COUNT];
    ...
    for (int i = 0; i != ELEM_COUNT; ++i)
      sum += int_arr[i];

    val = sum - (1000 * 1001 / 2);


4) Soruda kesinlik isteniyorsa tam cevap değil açıkçası.
  
   Bütün toplarımızı numaralandıralım (1,2,3..8)
   1-2-3 = 1. grup
   4-5-6 = 2. grup
   7     = 3. grup
   8     = 4. grup

   1.grup ile 2. grup tartılır. Eğer eşitlerse. 7 ve 8 tartıldıktan sonra
   sorunlu top bulunur.
   Eğer 1.grup ile 2. grup arasındaki tartımdan sonra 1. grubun hafif
   geldiğini farzedelim. Sorunlu top 1. grupta demektir.
   1. gruptan rastgele 2 top çekelim ve terazinin bir kefesine koyalım. 7. ve 8. topları
   diğer kefeye koyalım. Eğer terazi dengelendiyse 1. gruptan alınmayan top sorunludur.
   Aksi takdirde sorun 1. gruptan alınan o iki toptan birinde.
   Yine dengede kalmıyorsa haklarımı doldurduğum için, 1. gruptan alınan topları elimle
   tartarım Laughing. Ne yapayım? Smile.
      
   Şimdi cevaplara bakabilirim ;). Herkese iyi günler.

Sıradan Birisi Turkey

24.06.2010 10:23:04 #

gucci

love it! It holdsbooks and I just<a href="www.guccibagsale.org/...ags.html">discount gucci handbags</a>love it! It holdsfind the
of small binderslove it! It holds<a href="www.guccibagsale.org/">Gucci</a> I even have pencilsThe Bean

gucci People's Republic of China

16.07.2010 08:43:31 #

uk ugg boots

Here elaborates the matter not only extensively but also detailly .I support the write's unique point.It is [url=http://www.bootoutlet.co.uk]Sheepskin Boots[/url] useful and benefit to your daily life.You can go those sits to know more relate things.They are strongly recommended by friends.Personally I feel quite well.

uk ugg boots People's Republic of China

Yorum ekle


(Gravatar simgesini gösterecek)

  Country flag


biuquote
  • Yorum
  • Canlı önizleme
Loading