Dalga mı geçiyorsun?Forum üzerinden C/C++ ğrenmeye çalışıyorsun. Git al bir kitap, oturup oku. d. d.

. yillarin konusunu hortlattigim icin kendimden utaniyorum ama :) yine gecen gun bi arkadasima bu soruyu sordum ve aklima degisik bi cozum geldi. yani butun ihtimalleri deneme konusunda binary aritmetiginden faydalanmak. recursive beklenen cozum yerine farkli bi yaklasim oldugu icin paylasiyorum. kisaca anlatmak gerekirse, bir bit mirasin kime ait oldugunu belli edicek. 1 ise miras, ismi m harfi ile baslayan arkadasin, 0 ise miras, g ile baslayan arkadasin olucak. eger elimizde iki miras urunu varsa, iki bit'e ihtiyacimiz olucak ve bu yuzden iki bit'in ikisinin de bir oldugu konumu kendimize sinir olarak belirliyoruz. yani 1 biti o kadar oteliyoruz. ve sayimizi 0 dan baslatip sinira kadar ilerletiyoruz. bu sirada da tum olasiklar karsimiza dokuluyo. 0 0 :: ikiside m'de (0, ilk durum)0 1 :: sagdaki g de, solda ki m de (1, ikinci durum)1 0 :: soldaki g de, sagda ki m de (2, ucuncu durum)1 1 :: ikiside g de (3, son durum) #include <stdio. h> #define ARRAYSIZE ( sizeof / sizeof ) void show_psb { unsigned long long i, j, rn; // iki arkadasin degiskenleri :] size_t m, g; rn = 1 << ; // i her artimda istedigimiz alt yapiyi bize saglar. // iki tabaninda islem yaptigimizda neler oldugunu sende biliyosun zaten // rn kontrol degiskeni ;) // j diziyi dolassin diye var for (i = 0; i < rn; ++i) { for (g = m = 0, j = 0; j < n; ++j) printf ; putchar ; } } int main { size_t values = ; show_psb(values, ARRAYSIZE ; } guru tarafından 06/Ağu/13 20:30 tarihinde düzenlenmiştir..

: nazmanya bunu yazdı: benim cevabım saçma olcak dedim. sen anlatamamışsın dedim. hemen kızma kızmadım hocam merak ettım yanlıs olan yerı :) beynım sulandı ıyıce zaten değerlerin hepsine a, b, c gibi isimler ver küçükten büyüğe sırala hepsini topla yarısını bul. sonra elseif komutunu kullanarak a< yarısı else if a+f <yarısı else if a+f+c<yarısı gibi bir şey yapmiras paylaşım 1.0 :) http://www.speedtest.net/result/926625321. png

soru tam anlayamadım anlayabildiğim kadarı ile her eşyanın değeri 1 - 200 arasında ise S 199 | G 200S 197 | G 198 S 195 | G 196... eşyalarını alır gibi mi? şizofren olabilirsiniz yardım alın!

: verruckt bunu yazdı: nazmanya bunu yazdı: benim cevabım saçma olcak dedim. sen anlatamamışsın dedim. hemen kızma kızmadım hocam merak ettım yanlıs olan yerı :) beynım sulandı ıyıce zaten değerlerin hepsine a, b, c gibi isimler ver küçükten büyüğe sırala hepsini topla yarısını bul. sonra elseif komutunu kullanarak a< yarısı else if a+d miras paylaşım 1.0 :) :) programın ısmı guzelde soyledıgın olay benım kafama pek yatmadı Zencinin malı züğürtün çenesini yorar

benimde yatmadı, zor bir şey istiyon çünkü eşya sayısıda işi değiştiriyor az olsa teker teker denetilip yapılabilir. vbde bir deneyecem becerirsem dnerim. http://www.speedtest.net/result/926625321. png

Bu sorduğun soru, ünlü networkçülerin yıllardır üzerinde çalışıp polinom zamanda çzüm bulmaya çalıştıkları bir problemdir. Bkz. hungarian matching, knapsack problem, terminal assignment problem vb... Şu an için non-polinomial zamanda çzen algoritmalar mevcut. Ben de senin için N! zamanda çzüme ulaşacak olan çok dandik bir algoritma geliştirdim. #include <stdio. h>#include <stdlib. h>#define N 7int numbers = ;int x ; // 1 veya -1 değeri alicakint tmp_x ; // gecici olarak kullanicazint MIN = INT_MAX;void recursiveFunction { if { if(_previousTotal>0 && _previousTotal<MIN){ MIN = _previousTotal; for(int i=0;i<N;i++) } }else }int main { char c; recursiveFunction(0,0); for(int i=0;i<N;i++){ if(x 1) } printf ; for(int i=0;i<N;i++){ if(x -1) } scanf ; return(0);} d. d.

yok hocam ole degılornekte mesala 7 esya war demıs. daha sonra her esyanın degerını gırmısmesela ;1-282-73-114-85-96-77- 27 daha sonra da degerler arasında ıslem yaparak kendı werdıgı kurala uygun cewap cıkartmıs. anlatabıldım mı? Zencinin malı züğürtün çenesini yorar

saçma olcak ama yazdıkların anlaşılmıyor girdileritopla(28+7+11+8+9+7+27)=s+gS= sG=s+1 http://www.speedtest.net/result/926625321. png

benim cevabım saçma olcak dedim. sen anlatamamışsın dedim. hemen kızmadeğerlerin hepsine a, b, c gibi isimler küçükten büyüğe sırala ver hepsini topla yarısını bul. sonra elseif komutunu kullanarak a< yarısı else if a+d <yarısı. gibi bir şey yap. http://www.speedtest.net/result/926625321. png

: Dalga mı geçiyorsun?Forum üzerinden C/C++ ğrenmeye çalışıyorsun. Git al bir kitap, oturup oku. neyın dalgasını gecıcem ya! soru cozuodum we takıldım sordum. nerden bıleyım bole bı soru oldugunu! ıyı kı bısıler bılıosun he! sakın soleme kımseye kendıne kalsın da hava atarsın mıllete! soru sorduk surda ınsan gıbı. sagolsun ınsan gıbı yardım edenler de war. bısılerı ogrenmeye calıssanları sacmaca azarlayanlar da var... ! Zencinin malı züğürtün çenesini yorar

walla c calısıorum kendım. nette bı yerde buldum. ugrastım ama bı mantık kuramadım. sonra da sızlere sordum yardım beklıorum :)ılgınız ıcın saolunbı de cozum bulabılsek tam super olacak kanımca :) Zencinin malı züğürtün çenesini yorar

tamam da dedıgın gıbı olunca tek sayıyı almıs oluosun ama bak adam ornekte ne yapmıs S için = 28+11+9= 48G için = 7+8+7+27= 49 mesla burda bırıne 3 bırıne 4 deger wererek en yakın durumu hesaplamıs we tabıkı s, g den buyuk olmamak sartıyla Zencinin malı züğürtün çenesini yorar

Verilen her eşya değerini 2 ye blüyorum. eğer küsüratlı sayı çıkarsa birinde floor yapıyorum(0 a yakın olan değeri alıyorum) diğerinde ceil yapıyorum topluyorum eşya değerlerini 48 buluyorum. Burdan gidebilirsin belki çok basit oldu algoritma ama bi kaç değişiklikle istediğin şey olabilir. edit : hatta ne diye uğraşıcan ki topla bütün değerleri bl 2ye tam sayı çıkarsa bir eksilt onu S yap. bir ekle onu da G yap o kadar. Küsüratlı çıkarsa da yuvarlayıp yap Zimbabwe

Çzüm kesin knapsack ama hatırlayamadım bir türlü. Bir bakıyım cevabını yazcam inş.

:S ne soru bulmusum ben de yaa :S wazgectım tamam cozmuourum bunu :Semeklerınıze tesekkurler arkadaslar... Zencinin malı züğürtün çenesini yorar

: benimde yatmadı, zor bir şey istiyon çünkü eşya sayısıda işi değiştiriyor az olsa teker teker denetilip yapılabilir. vbde bir deneyecem becerirsem dnerim. tamam hocam saolasın ılgın ıcınben de bı yemek molası werem de kendıme gelem. sonra dewam ederım Zencinin malı züğürtün çenesini yorar

yok mu bişi solıcek olan. beynım sulandı dusunmekten yaa Zencinin malı züğürtün çenesini yorar

: benim cevabım saçma olcak dedim. sen anlatamamışsın dedim. hemen kızma kızmadım hocam merak ettım yanlıs olan yerı :) beynım sulandı ıyıce zaten Zencinin malı züğürtün çenesini yorar

ya mıllet bu soru ıcın nası bır mantık kurabılırım? kodları ıstemıorum. kendım yazcam :) ama mantıgını kuramadım. nası bır algorıtma ıle gırısıcem kı bu ıse? bı fıkrı olan? ayrıca c ile yazıcam... Supzek ile Gerzek babalarindan kalan mirasi paylasmak istiyorlar. Toplam N adet esya vardir ve her birisinin degerleri vardir. Adil bir paylasim olabilmesi icin onlara yardimci olmaniz gerekmektedir. Aldiklari miktar S ve G seklinde ifade edilirse amaciniz |S-G| degerini minimum yapmaktir. Ayrica S<=G seklinde olmalidir. Girdi Bicimi Ilk satirda N sayisi verilecektir. Ardindan N pozitif sayi verilecektir. Her esyanin degeri 1 ile 200 arasindadir. Cikti S ve G sayilarini yazdirmalisiniz. Ornek Girdi 728 7 11 8 9 7 27 Ornek Cikti 48 49 Zencinin malı züğürtün çenesini yorar

neresı sacma? Zencinin malı züğürtün çenesini yorar

ya beyler yok mu bısıler bulabılen. stres bastı ya! tek soruya takıldım kaldım. ınat ettım cozmeden gecmıcem ya. dusunduklerımızı paylasalım da belkı ortak bısı cıkar. beklıorum... Zencinin malı züğürtün çenesini yorar

nerenin sorusu hocam bu byle :S dur biraz kafa yorayım yapabilirsem yazarım. screw you guys! i"m goin" hoooome!

bana gre bütün girdileri bir liste yap, listenin en büyük değerli eşyasını G ye ver diğerini Sye bu şekilde gitsin. Microsoft isn't evil, they just make really crappy operating systems. Linus Torvalds