Bilmece Bildirmece (özel-2)

Bu başlık kilitlidir. Yeni mesajlar gönderilemez veya mevcut mesajlar düzenlenemez.
hasanyasin
25-03-2004, 21:33   |  #1  
OP Yıllanmış Üye
Teşekkür Sayısı: 0
1,100 mesaj
Kayıt Tarihi:Kayıt: Oca 2004

Bize verilecek bir sayı dizisinden yola çıkarak, sonraki dizi elemanılarını bulan bir program nasıl yazılabilir? Sayı dizilerimizle ilgili iki kuralımız var:

1. Her eleman her zaman için, bir önceki elemanın birinci dereceden bir fonksiyonudur
2. Dizideki tüm elemanlar için aynı fonksiyon geçerlidir.

Bizim programımız, bu kurala uyan bir sayı dizisindeki ilk üç elemanın verilmesiyle yetinip, dizinin sonraki N elemanını çıktı olarak verecek...

Janberka
25-03-2004, 21:36   |  #2  
Yeni Üye
Teşekkür Sayısı: 0
45 mesaj
Kayıt Tarihi:Kayıt: Mar 2004

:D

hasanyasin
25-03-2004, 21:41   |  #3  
OP Yıllanmış Üye
Teşekkür Sayısı: 0
1,100 mesaj
Kayıt Tarihi:Kayıt: Oca 2004

Janberk'in [bu onun gerçek adı] çözümü biraz kısa olmuş. Ben derledim; fakat çalışmadı, sanırım bazı eksikleri var... Gene de üzerinde biraz daha çalışılırsa olabilir gibi. Bilemiyorum, sizce bu koddan bir şey çıkar mı?

Her neyse, isterseniz biz sorumuza dönelim: Nasıl bir çözüm olabilir sorumuza?

Son Düzenleme: hasanyasin ~ 25 Mart 2004 21:48
aragorntheelessar
27-03-2004, 18:31   |  #4  
Yıllanmış Üye
Teşekkür Sayısı: 0
268 mesaj
Kayıt Tarihi:Kayıt: Şub 2004

ben yeni gördüm senin sorunu ve şu an hemen başladım bişeylerkodlamaya bu arada ODTÜ'nün bilgisayar topluluğunun yayınladığı soruları gördün mü hiç??

hasanyasin
27-03-2004, 19:29   |  #5  
OP Yıllanmış Üye
Teşekkür Sayısı: 0
1,100 mesaj
Kayıt Tarihi:Kayıt: Oca 2004

Hayır görmedim ve bilmiyorum, link verirseniz çok iyi olur kanaatindeyim. Bilgisayarcılarla hiç ilişkim yok, birkaç arkadaşım dışında. Kendi kendine, kendi başına bir şeyler yapmaya çalışan biriyim sadece. Bilgisayar öğrencisi olsam belki böyle güzel şeylerden de haberim olurdu...

sadique
06-04-2004, 03:48   |  #6  
Taze Üye
Teşekkür Sayısı: 0
1 mesaj
Kayıt Tarihi:Kayıt: Şub 2004

#include <iostream>
using namespace std;

// sanirim bu bi çözüm veriyor
// incelerseniz sevinirim

int main()
{
        int arr[3]; // ilk uc sayi
        int a, b;        // I. dereceden denklemin bilinmeyenleri
        int N;                // sonraki N sayi icin..

        cout<<"lutfen dizinin ilk uc elemanini girin "<<endl<<"> ";
        for(int i=0; i<3; i++)
                cin >> arr;

        a=(arr[2]-arr[1])/(arr[1]-arr[0]);

        b=arr[1]-(a*arr[0]);

        cout<<"dizinin bundan sonraki kac elemanini\ngormek istiyorsunuz"<<endl<<"> ";
        cin>>N;

        int temp = arr[2];

        for(i=0; i<N; i++)
        {
                temp= a * temp + b;
                cout << temp << endl;
        }

        return 0;
}

hasanyasin
11-04-2004, 18:44   |  #7  
OP Yıllanmış Üye
Teşekkür Sayısı: 0
1,100 mesaj
Kayıt Tarihi:Kayıt: Oca 2004

Tebrikler... Çözüm gayet güzel. Derleyip çalıştırmadım; fakat isteneni anlamış ve vermeyi başarmışsınız. Tebrik edeyim ne diyeyim... Gülümseme Sayenizde bana da özel-3'ü sorma şansı doğdu... Hemen bu akşam geliyor, fırına verdim pişiyor. Sıcak sıcak özel-3...

unforgiven
12-04-2004, 03:19   |  #8  
Yeni Üye
Teşekkür Sayısı: 0
25 mesaj
Kayıt Tarihi:Kayıt: Nis 2004

selamlar.. işte yine ben Gülümseme eski nickime benzer bir nickle karşınızdayım. bu aralar fazla ugrayamıyorum elde olmayan sebeplerden ötürü ama elimden geldiğince en azından forumun bu kısmına bakmaya çalışacağım.

hasanyasin kontrol etmemiş ama ben kontrol ettim üstteki kodu onun yerine Göz kırpma  kod mantıken dogru arkadaşımızın eline sağlık.Ama arkadaş birşeyi gözden kaçırmış. array'imizde katsayılar integer olarak tutuluyor. ama bizim fonksiyonumuzun (1/3) x + (2/5) şeklinde oldugunu düşünürsek programın bize verdiği sonuç istenilen sonuç olmaz.


Mesela arkadaşımızın programında yazdıgımız ilk 3 sayı 1 8 ve 12 olsun ve bu serinin devamı olan 5 sayıyı bulmak isteyelim. outputumuz  8 8 8 8 8 oluyor bu durumda. ama bizim fonksiyonumuz (4/7)x + (52/7) te tekabul ediyor (program bu fonksiyonu 0x + 8 olarak algılıyor su an)

Bu nedenle arrayımızdeki elemanları double yada float secersek istenilen tam sonuca ulaşırız. burada temp integer olabilir belki yuvarlatma açısından. ama katsayılarımızı integer alırsak daha güzel olur. bu durumda outputumuz ustteki örnek için 14 15 16 16 olur. sonucun ne kadar farklı oldugunu gördük değil mi.

hasanyasin arkadaşımızın bir sonraki sorusunu merakla beklemekteyiz. ben şu 4. soruya bir cevap yazayım da o suru da sahipsiz kalmasın Gülümseme

Son Düzenleme: unforgiven ~ 12 Nisan 2004 03:37
hasanyasin
12-04-2004, 13:10   |  #9  
OP Yıllanmış Üye
Teşekkür Sayısı: 0
1,100 mesaj
Kayıt Tarihi:Kayıt: Oca 2004

Yaz bakalım 4.soruya bir cevap... Gülümseme
Bir sırrım var bu konuda; ama şimdilik açıklayıp açıklamamakta kararsızım. Belki 4.soru çözülünce açıklarım. Özel-2 ve 4.soruya bakanlar belki nasıl bir hinlik yaptığımı da anlayabilirler... [Hinlik: Kurnazlık, dalaverecilik Gülümseme ]