Picproje Elektronik Sitesi

SERBEST BÖLGE => Programlama ve Algoritma => Konuyu başlatan: desman - 09 Şubat 2015, 20:25:35

Başlık: 6 x+ 9y+ 20z = A
Gönderen: desman - 09 Şubat 2015, 20:25:35
6x+9y+20z =A
bu denklem hangi negatif olmayan x,y,z değerleri için 50, 51, 52, 53, 54, bu 55 sonuçlarını verir?
Benim geliştirdiğim naive algoritma şöyle;

x y z
1 1 1
2 1 1
3 1 1
.....
.....
1 1 1
1 2 1
1 3 1

ama şunu yaparsam çözücem:

x y z
1 1 1
1 2 1
1 1 2

2 2 2
2 1 2
2 2 1

3 1 1
1 3 1
1 1 3
3 2 1
....
....

C yada c++ nasıl yapabiliriz?
Başlık: Ynt: 6 x+ 9y+ 20z = A
Gönderen: hasankara - 09 Şubat 2015, 20:32:52
soruyu anlamadım tekrar sorabilir misin?
Başlık: Ynt: 6 x+ 9y+ 20z = A
Gönderen: Karamel - 09 Şubat 2015, 20:33:14
hocam herhangi birisini 0 tutariz. kalan 2 sinede kafadan 2 deger verip sonuclardan birisini tutturmaya calisiriz. bunu basarabilirsek kalan 2 tanesi. birbirini onundeki katsayisi kadar toplayip cikararak tekrar ederler. bunu bir ornek ile aciklayalim.

2x + y = 51

x = 25
y = 1

x = 24
y = 2

x = 23
y = 4

.
.
.
.
.
.

bu boyle gider. sonra digerini sabit tutar ve baska sonuclar buluruz.
Başlık: Ynt: 6 x+ 9y+ 20z = A
Gönderen: desman - 09 Şubat 2015, 20:41:33
@Karamel hocam haklısınız ama algoritma çalışıyorum ve kafamda kurduğum çözümü anlatamıyorum bilgisayara ben şunu yapmak istiyorum:

x y z   
1 1 1 
1 2 1
1 1 2
2 2 1
2 1 2
2 2 2
(1 ve 2 li kombinasyonların tümü bu kadar şimdi 3 de oyuna dahil,kaldığım yerden devam)
3 1 1
3 2 1
3 1 2
3 2 2
gibi ..

bunu deniyorum.
Başlık: Ynt: 6 x+ 9y+ 20z = A
Gönderen: mufitsozen - 09 Şubat 2015, 20:53:57
#include <stdlib.h>

int main()
{
    int x,y,z,A;

    for (x=0;x<55;x=x+6)
        for(y=0;y<55;y=y+9)
            for(z=0;z<55;z=z+20){
                A=x+y+z;
                if(A>= 50 && A<=55)
                    printf("\n x=%d y=%d z=%d A=%d", x,y,z,A);
            }

    printf("\n");


return 0;
}


Program ciktisi:

x=0 y=54 z=0 A=54
x=6 y=9 z=40 A=55
x=6 y=27 z=20 A=53
x=6 y=45 z=0 A=51
x=12 y=0 z=40 A=52
x=12 y=18 z=20 A=50
x=18 y=36 z=0 A=54
x=24 y=9 z=20 A=53
x=24 y=27 z=0 A=51
x=30 y=0 z=20 A=50
x=36 y=18 z=0 A=54
x=42 y=9 z=0 A=51
x=54 y=0 z=0 A=54
Başlık: Ynt: 6 x+ 9y+ 20z = A
Gönderen: Karamel - 09 Şubat 2015, 21:25:32
Alıntı yapılan: mufitsozen - 09 Şubat 2015, 20:53:57
#include <stdlib.h>

int main()
{
    int x,y,z,A;

    for (x=0;x<55;x=x+6)
        for(y=0;y<55;y=y+9)
            for(z=0;z<55;z=z+20){
                A=x+y+z;
                if(A>= 50 && A<=55)
                    printf("\n x=%d y=%d z=%d A=%d", x,y,z,A);
            }

    printf("\n");


return 0;
}


Program ciktisi:

x=0 y=54 z=0 A=54
x=6 y=9 z=40 A=55
x=6 y=27 z=20 A=53
x=6 y=45 z=0 A=51
x=12 y=0 z=40 A=52
x=12 y=18 z=20 A=50
x=18 y=36 z=0 A=54
x=24 y=9 z=20 A=53
x=24 y=27 z=0 A=51
x=30 y=0 z=20 A=50
x=36 y=18 z=0 A=54
x=42 y=9 z=0 A=51
x=54 y=0 z=0 A=54


yazilimci hocanin hali bir baska....  :P hocam bende butun permutasyonlari nasil deneriz diye dusunuyordum. megersem basit for donguleri ile halledebilirmisiz meseleyi...... ::)
Başlık: Ynt: 6 x+ 9y+ 20z = A
Gönderen: mufitsozen - 09 Şubat 2015, 21:53:25
Alıntı yapılan: Karamel - 09 Şubat 2015, 21:25:32
yazilimci hocanin hali bir baska....  :P hocam bende butun permutasyonlari nasil deneriz diye dusunuyordum. megersem basit for donguleri ile halledebilirmisiz meseleyi...... ::)

Einstein "Everything should be made as simple as possible, but not simpler."(Herşey olabildiğince basit olmalıdır, ama daha basit değil.) demis. (Bu Occamin usturasi prensibi diyede bilinir aslinda!) Bizde onu dinliyoruz, bisi biliyordur diye. ;)

Fakat duzeltmem gereken bir konu var ben yazilimci değilim. Yazilimi kullanmasini iyi bilen bir Telekom/Datakomcuyum.
Başlık: Ynt: 6 x+ 9y+ 20z = A
Gönderen: bluekid - 10 Şubat 2015, 09:10:28
Programda ufak tefek düzeltmeler lazım
başta
6 x+ 9y+ 20z = A
deniyor
program
A=x+y+z;
hesaplıyor

Başlık: Ynt: 6 x+ 9y+ 20z = A
Gönderen: Karamel - 10 Şubat 2015, 10:23:50
Hocam for larin icersine bakarsaniz. sorun olmadigini goreceksiniz ki. hocamiz carpimi toplam olarak for dongusunun icersinde kullanmis. bence cok mantikli olmus...... ::)
Başlık: Ynt: 6 x+ 9y+ 20z = A
Gönderen: bluekid - 10 Şubat 2015, 13:28:39
hesaplanan  çözümlerden biri
"x=6 y=27 z=20 A=53"

yerine koyalım
6* 6 + 9 * 27 + 20 *20 = ?
Başlık: Ynt: 6 x+ 9y+ 20z = A
Gönderen: vitruvius - 10 Şubat 2015, 14:42:02
Program cikti olarak 6x, 9y ve 20z'yi veriyor. x, y, z'yi degil.

X'i bulmak icin degeri 6'ya, y'yi bulmak icin degeri 9'a, z'yi bulmak icin cikti degerini 20'ye bolmek lazim.

Guzel tespit. Ufak bir duzeltme ile hallolur.