İçeriğe geç
ShiftDelete.Net
Haber ara/ SDN'ye SorGiriş
Haber Akışı SDNTV İnceleme Forum Yapay Zeka Akıllı Telefon Elektrikli Otomobil Oyun ShiftDelete.Net Global Teknoloji Haberleri Mobil Otomobil Donanım Savunma Bilim Sosyal Medya İnternet Giyilebilir Teknoloji Rehber Ürünler Son dakika Yazarlar
  1. Ana sayfa
  2. Topluluk
  3. Yazılım
  4. Diğer Yazılım Konuları
Diğer Yazılım Konuları

Algoritma sorusu?

hb821.07.200918 cevap3.067 görüntüleme
2008'den beri19 mesaj
#1
meraba yanlış yere açtıysam özür...

meraba şöyle bir problem vardı da, önerilerinizi bekliyorum.

rastgele oluşturulan n (örn: n=10 ) tamsayıdan, kendi belirlediğiniz bir x (örn: x=100) sayısına; bu n tane sayıdan istediğiniz kadarına toplama işlemi yaptırarak ; en yakın sonucu nasıl elde edebiliriz.

örn:

rastgele sayılar : 10 12 18 24 9 19 17 3 6 9 24

ulaşılmaya çalışılacak sayı 100

17+3+6+24+12+18+19 = 99
Cevaplar
2009'den beri3.006 mesaj
#2
Abi matematik forumlarına ne oldu :D Sorun yaptım kendi kendime :D Oturup ugrassam faydası yok ugrasmasam gönül razı değil :D
2009'den beri2.120 mesaj
#3
Orta okuldada sevmezdim bu (n) sayılarını, çözen olursa belki hatırlarız.
2008'den beri73 mesaj
#4
çok güzel bir soru uğraşmak lazım çözmeye çalışıcam çözen olur diye de burayı takip edeceğim
2009'den beri189 mesaj
#5
9 tane rastgele sayıyı bulursun toplarsın sonra 100den çıkartıp kalan sayıyı 9 sayının toplamına eklersin :) bir yazılmcı olarak bu algoritmayı böyle çözerdim ben :)
2008'den beri73 mesaj
#6
sakallıoğlu dedi: ↑
Orta okuldada sevmezdim bu (n) sayılarını, çözen olursa belki hatırlarız.
bu öyle dediğin tarzda sorular değil gibime geliyor.bilgisayarcıların işi bu
2008'den beri73 mesaj
#7
macit dedi: ↑
9 tane rastgele sayıyı bulursun toplarsın sonra 100den çıkartıp kalan sayıyı 9 sayının toplamına eklersin :) bir yazılmcı olarak bu algoritmayı böyle çözerdim ben :)
öylesine bir cevap vermişsin . Neden 9 sayı belki istenen sayı toplamı küçük olur örnek :27 o zman ne yapacaksın
2007'den beri2.589 mesaj
#8
macit dedi: ↑
9 tane rastgele sayıyı bulursun toplarsın sonra 100den çıkartıp kalan sayıyı 9 sayının toplamına eklersin :) bir yazılmcı olarak bu algoritmayı böyle çözerdim ben :)
9 sayının toplamı cok fazla da olabılır ;) rastgele sonucta.

ben olsa recursive bir fonk içinde, sürekli toplam ve de sıradaki sayıyı ekleyerek giderim.ancak ekleme işlemini eğer sayı 100'ü geçmiyorsa yaparım. ancak anlattığım kadar basit bir algoritma değil kendisi..

oldukça fazla kontrol yapman gerekebilir. Tek vereceğim tüyo : recursive bir fonksiyon gerekli.
Iteratife gidersen çook fazla yorulursun gibime geldi.
2009'den beri3.980 mesaj
#9
ya yazılımcı yok mu aramızda?
2008'den beri121 mesaj
#10
10
12+18=30
3 9 9
6+24=30
24+19+17=60

60+30+10=100

iki çözüm
10+12+18+24+19+17
10+6+24+24+19+17

başka çözüm var mı ,mantığı nedir ,bilmiyorum,
sonuç: çözüm var
2008'den beri73 mesaj
#11
şimdi programını yazmadım ama aklıma böyle bir mantık geldi.Mantık doğruysa (ki öyle inanıyorum :)) koda dökme işi kolay.
önce var olan sayılar(n=10 tane) sıralı değilse önce bunları sıralayacağız.
daha sonra ilk olarak sayıları tekli biçimde doğrudan sonuç veya sonuca yakın mı diye tekli sayılar şeklinde sonuç diye vereceğiz.
rastgele sayılar : 10 12 18 24 9 19 17 3 6 9 24

15 sayısını bul derse tekli sonuçlardan en uygun olanı 12 veya 15 değerini vericez.

daha sonra eğer sayı kesin sonuç değilse bu defa ikili toplamları dizi şeklinde her ikili değer için toplayıp sonuçlar bulacağız.(ör: 10+12,10+18,......,9+6)
burada matematikten (10,2) kombinasyonunundan 45 farklı sonuç çıkar.

burada 9+6 bize kesin sonucu verir. o zaman sonuç bu deriz.ç

eğer yine kesin sonucu bulamazsak o zaman 3 lü toplamları alırız.(10,3) kombinasyondan 120 farklı sayı çıkar.

Kesin sonucu bulana kadar böyle devam ederiz. (10,10) kombinasyonuna kadar

En son sayı tüm sayıların toplamından büyükte olabilir. en son 10 tane sayıyı da toplarız böylece sonucu veririz.

Not:arada her zaman en yakın sonucu da bir değişkende tutarız. kesin sonuç hiç bulunmayabilir.

ilk aklıma bu geldi inşallah ifade edebilmişimdir.bir sorunuz veya takılmadığınız yer varsa cevaplayabilirim.
2007'den beri17 bin mesaj
#12
GKHNCKR dedi: ↑
ya yazılımcı yok mu aramızda?
var da uğraşmak zor geliyo :D zor gelmediği bir zaman yazar programı yollarım :D
2007'den beri973 mesaj
#13
Belirlediğimiz adet 5 ve özel sayımız da 100 olsun.

---

İlk önce 10 tane değişken oluşturulur. Bu 10 değişkenin bir küme oluşturduğunu varsayarsak, 5 elemanlı alt kümelerinin hepsi yazılır. Ardından 10 değişkene rastgele birer değer atanır ve kümelerdeki sayıların hepsi toplanır.

Beş elemanlı alt küme sayısı kadar başka değişkenler oluşturulur ve her biri toplama sonuçlarına eşitlenir. Her birinin hangi kümenin toplama sonucuna eşit olduğunu program bilir. :)

Şimdi bu beş elemanlı alt kümelerinin kendi içlerindeki elemanlarının toplamlarına eşitlediğimiz değişkenlere bakalım.

---

Eğer bütün değişkenler 100'den büyükse program yeniden ilk oluşturduğumuz 10 değişkene rastgele değer versin veya hata versin. Siz seçin :)

Eğer değişkenlerin içinde 100'e eşit olan varsa program bize bu sayıyı ve kümedeki elemanları göstersin ama değişkenlerin içinde 100'e eşit bir veya birden fazla değer varsa içlerinden rastgele biri ve rastgele seçilen değişkene ait küme bize gösterilsin.

Eğer değişkenlerin içinde 100'e eşit değer yoksa, 100'e en yakın olan değişken ve bu değişkene ait küme bize gösterilsin ama değişkenlerin içinde 100'e en yakın değişkene eşit, başka, bir veya birden fazla değişken varsa içlerinden yine rastgele biri seçilip bize kümesiyle birlikte verilsin.

---

Ben yazılımcı falan değilim. :)

Cümlelerimden de belki anlayabilirsiniz, oradan buradan duyduğum ağızlarla yazdım biraz da salladım falan ama yanlış olduğunu zannetmiyorum.

Umarım yardımcı olur. :)
2008'den beri593 mesaj
#14
sorunun çözümü basit ama diğer yorumlardan hiç bir şey anlamadım

bir dizide 10 tane sayımız var (dizi de ki sayılar büyüklüklerine göre sıladağıgımız varsayıyorum)

bu sayılar arasında sadece toplama işlemi yaparak ulaşmaya çalışıcağımız özel sayı

dizideki en büyük sayıdan başlayarak bir küçüğü ile toplayıp özel sayıdan büyük mü diyekontrol ederiz

eğer büyükse hata değişkenine buyuk değerini atayıp bunu altta kontrol ettireceğiz

hata buyuke eşitse (dongüyü 10 sayımız olduğu için 10 defa dönmeye ayarladık ama toplam özel sayıyı gecince döngüden çıktı ve en son hangi sayıyı ekledi bunu döngüden alıcaz) en son eklediğimiz sayıyı toplamdan çıkarıp toplamı bir önceki sayıyla(yani çıkardığımız sayıdan dan dizideki küçük olan sayı)

ve tekrar özel sayıdan büyükmü diye kontol ederiz yine büyükse
en son topladığımız sayıyı çıkarıp onun bir küçüğünü toplarız.

toplam özel sayıdan büyük değilse sonuca ulaştık demektir.
2009'den beri633 mesaj
#15
Delinin biri kuyuya bi taş attı akıllılar çıkarcam diye uğraş veriyor. :D (Yoksa tam tersimiydi)

Not: Söz meclisten dışarı kimse alınmasın..
2007'den beri779 mesaj
#16
palugenclik arkadaşıma katılıyorum

ilk olarak x sayısından küçük-eşit olan rastgele 10 adet sayı seçtirirsin, daha sonra busayıların tek başlarına,ikişerli,üçerli,...,onarlı toplamlarını buldurursun(bulunan toplama da t dersek) , son olarakta bu toplamların içinden x e eşit olan ya da x ten küçük olan en büyük t sayısını çıktı olarak seçersin.Benim düşüncem bu sanırım mantıklı gibi, java programlama da bu kadar karışık olmasa da buna benzer şeyler görmüştüm , inşallah yardımı olur.
hb8 Konuyu açan
2008'den beri19 mesaj
#17
öncelikle çok teşekkür ederim arkadaşlar. ortaya gerçekten çok güzel fikirler çıkmış ancak bazı arkadaşlar genel düşünmemiş. yani sadece 10 sayı için düşünmüş mesela.
bende genetik algoritmayı kendimce uyarlayarak bişeyler bulmaya çalıştım.
2006'den beri98 mesaj
#18
annttiigs dedi: ↑
9 sayının toplamı cok fazla da olabılır ;) rastgele sonucta.

ben olsa recursive bir fonk içinde, sürekli toplam ve de sıradaki sayıyı ekleyerek giderim.ancak ekleme işlemini eğer sayı 100'ü geçmiyorsa yaparım. ancak anlattığım kadar basit bir algoritma değil kendisi..

oldukça fazla kontrol yapman gerekebilir. Tek vereceğim tüyo : recursive bir fonksiyon gerekli.
Iteratife gidersen çook fazla yorulursun gibime geldi.
arkadaşla aynı fikirdeyim recursive en yakın sonucu bulacaktır. birde sayıları sıralayıp olamayacak ihtimalleride atlatırsan tadından yenmez :P
güzel soruymuş gerçekten uğraşılır sırf zevk için ama hic niyetim yok şu sıcak yaz gününde. çok düşünüp, fosfor yakıp, ısı açığa çıkartmaya :scared::w00t::laugh:
2009'den beri1.248 mesaj
#19
rakamları gördükçe Bunalıma giriyorum :D

zaten matematiği hiç sevmezdim

Cevabını yaz

Cevap yazmak için giriş yap ya da üye ol. Eski forum kullanıcı adın ve parolanla girebilirsin.