Picproje Elektronik Sitesi

SERBEST BÖLGE => Programlama ve Algoritma => Konuyu başlatan: desman - 04 Ekim 2011, 19:49:12

Başlık: Programda kök alma
Gönderen: desman - 04 Ekim 2011, 19:49:12
Selamlar;
Programda kök alma işlemi, nasıl anlatırız pc'ye bu işi 
1)Üst alma işlemini şöyle yapıyoruz 5^2gibi yani,

[jstex]5^2[/jstex]

2)Çarpmayı 5*5 yani,

[jstex]5*5[/jstex]

kare kök almayı nasıl yaparız ?
Teşkkürler :)
Başlık: Ynt: Programda kök alma
Gönderen: z - 04 Ekim 2011, 20:12:03
Üst almayı biliyorsan karekök almayı da becerirsin.

Mesela X in karekökü, X^0.5 demektir.
Başlık: Ynt: Programda kök alma
Gönderen: since1990 - 04 Ekim 2011, 20:38:54
Şöyle yapabilirsin. O sayıyı sıra ile 1den başlayarak böl. bölüm ile bölen birbirine eşit olduğunda o onun köküdür.
25/1 = 25 25-1=24 bu değil
25/2=12.5-2=10.5
.
.
25/5=5 5-5=0 iştebu kökü.
sayıyı 0.0001 artırarak daha net sonuç bulursun. bir önceki fark ile bir sonrakini karşılaştırarak 0 a en yakın olan için tahmini bir sonuçta bulabilirsin.
Başlık: Ynt: Programda kök alma
Gönderen: bigbey - 04 Ekim 2011, 20:43:20
https://www.picproje.org/index.php/topic,6255.msg39301.html#msg39301
burada bahsettiğim şekilde olabilirmi?
Başlık: Ynt: Programda kök alma
Gönderen: desman - 04 Ekim 2011, 22:02:26
Alıntı YapÜst almayı biliyorsan karekök almayı da becerirsin.

Mesela X in karekökü, X^0.5 demektir.
Üst almayı biliyodum hocam takdir edersinizki kök almayı bilmiyodum ve öğrenmek için sizlere sordum ne yazık ki ingilizcem

http://en.wikipedia.org/wiki/Fast_inverse_square_root (http://en.wikipedia.org/wiki/Fast_inverse_square_root) bunu anliyacak kadar iyi olmadıgı için cevap alamadım.
Neyse soruyu biraz değiştirerek tekar sorucam,
Şöyle bir işlem olsun dielim.. (5*2)+(3+4)/(8^2*2) yani;
[jstex](5*2)+(3+4) / (8^2*2)[/jstex]
Bu ifadeyi kök içerisine nasıl alırız? benim öğrenmek istediğim bu.
Teşekkürler.
Başlık: Ynt: Programda kök alma
Gönderen: since1990 - 04 Ekim 2011, 22:23:49
arkadaşlar liseye giden bir kardeşim var benim bulduğum yöntemi oda  bulabilecekmi diye ona sordum. Ve iq mu bitirdi. Öyle bir yöntem buldu ki 10 dakikadır şoktayım :D
Şimdi şöyle oluyor. Öncelikle sayının tam bölenlerini buluyoruz.
örneğin
81= 1 3 9 27 81 ortadaki sayı karekökü 9
64= 1 2 4 8 16 32 64 yani karekökü 8
sanırım çalışıyor. tam bölenlerini mod yardımı ile mikoişlemciye buldurabiliriz. Örneğin c için % işareti bu işi görür.
Başlık: Ynt: Programda kök alma
Gönderen: z - 04 Ekim 2011, 22:31:53
Alıntı yapılan: since1990 - 04 Ekim 2011, 22:23:49
arkadaşlar liseye giden bir kardeşim var benim bulduğum yöntemi oda  bulabilecekmi diye ona sordum. Ve iq mu bitirdi. Öyle bir yöntem buldu ki 10 dakikadır şoktayım :D
Şimdi şöyle oluyor. Öncelikle sayının tam bölenlerini buluyoruz.
örneğin
81= 1 3 9 27 81 ortadaki sayı karekökü 9
64= 1 2 4 8 16 32 64 yani karekökü 8
sanırım çalışıyor. tam bölenlerini mod yardımı ile mikoişlemciye buldurabiliriz. Örneğin c için % işareti bu işi görür.

Bunda sasiracak bir sey yokki.

Carpanlardan birini saga birini de sola yaziyorsun. En ortadaki zaten iki carpanin da es oldugu ve ust uste yazildigi deger oluyor bu da aranan karekok.

Fakat bolme islemi, 4 elamenter islem icinde, islemciyi en fazla yoran islemdir. Neden acaba?

Başlık: Ynt: Programda kök alma
Gönderen: since1990 - 04 Ekim 2011, 22:36:19
Yanlış anlaşıldım, matematiğe şaşırmadım, kardeşime şaşırdım. :D Mikroişlemci zaten sadece toplama ve çıkartma yapabilir temelde.,
Mikroişlemciyi yormasının sebebi bence sayıdan böleni çıkartıyor 0 olmuşmu diye bakıyor sayacı arttırıyor bir daha çıkartıyor .... falan prosedürü çok çünkü. :) Ama çarpma sadece çarpan kadar topluyor.
Başlık: Ynt: Programda kök alma
Gönderen: z - 04 Ekim 2011, 23:02:18
Alıntı yapılan: since1990 - 04 Ekim 2011, 22:36:19
Yanlış anlaşıldım, matematiğe şaşırmadım, kardeşime şaşırdım. :D Mikroişlemci zaten sadece toplama ve çıkartma yapabilir temelde.,
Mikroişlemciyi yormasının sebebi bence sayıdan böleni çıkartıyor 0 olmuşmu diye bakıyor sayacı arttırıyor bir daha çıkartıyor .... falan prosedürü çok çünkü. :) Ama çarpma sadece çarpan kadar topluyor.

Okul oncesi bebeler sekeri soyle dagitir.

Bir bana bir sana bir ona
Bir bana bir sana bir ona
Bir bana bir sana bir ona......

Bu da bolme yontemi fakat bolme boyle yapilmaz. 
Başlık: Ynt: Programda kök alma
Gönderen: since1990 - 04 Ekim 2011, 23:07:52
doğru ama mikro işlemciler bölme işlemini farklı bir algoritma ile mi yapıyor? Geçen sene mikroişlemciler dersinde bu algoritmayı öğrenmiştik.
Başlık: Ynt: Programda kök alma
Gönderen: z - 04 Ekim 2011, 23:22:59
http://www.google.com.tr/search?sourceid=navclient&hl=tr&ie=UTF-8&rlz=1T4GGHP_trIE417IE417&q=binary+division+algorithm
Başlık: Ynt: Programda kök alma
Gönderen: esensoy - 04 Ekim 2011, 23:25:04
Alıntı yapılan: bunalmis - 04 Ekim 2011, 23:02:18
Okul oncesi bebeler sekeri soyle dagitir.

Bir bana bir sana bir ona
Bir bana bir sana bir ona
Bir bana bir sana bir ona......

Bu da bolme yontemi fakat bolme boyle yapilmaz.

çok güldüm ya, Allah da sizi güldürsün inş:)

bence desman karekök ün algoritmasından ziyade karekök fonksiyonunun ne olduğunu sormuş,
bu soruya da cevap olarak
sqrt() ya da pow() olabilir diyorum ben,
tabi ki derleyicinin manuel ine bakmak en doğrusu
Başlık: Ynt: Programda kök alma
Gönderen: z - 04 Ekim 2011, 23:27:18
Bolme algoritmasina guzel bir ornek

http://courses.cs.vt.edu/~cs1104/Division/ShiftSubtract/Shift.Subtract.html

Başlık: Ynt: Programda kök alma
Gönderen: ferit06 - 05 Ekim 2011, 10:28:19
karekok alma konusunda daha önce bir yerleren topladığım şeyler var

http://www.dosya.tc/server4/AlMtbd/karekok.rar.html

Başlık: Ynt: Programda kök alma
Gönderen: GreeN - 05 Ekim 2011, 11:40:03
Türevle yaklaşık hesap yapılabiliyor.

Edit: f(x)=sqrt(x)

f (a + h) ≈ f '(a)*h + f (a) yaklaşık değer hesabı.

Örneğin ; f(x) = sqrt(200)

200 = 196 + 4  (a=196 h= 4)

f'(a)= 1/(2*sqrt(196)) = 1/28

sqrt(200) = sqrt(196) + f'(196)*4 =14+4/28 = 14,142857...




Başlık: Ynt: Programda kök alma
Gönderen: bigbey - 05 Ekim 2011, 15:04:47
Alıntı yapılan: since1990 - 04 Ekim 2011, 22:23:49
Şimdi şöyle oluyor. Öncelikle sayının tam bölenlerini buluyoruz.
örneğin
81= 1 3 9 27 81 ortadaki sayı karekökü 9
64= 1 2 4 8 16 32 64 yani karekökü 8

82 nin karekökünü bulalım dersek ne yapacağız?
Başlık: Ynt: Programda kök alma
Gönderen: desman - 05 Ekim 2011, 16:27:11
Örnekler için teşekürler çok yardımcı oldunuz :)
Başlık: Ynt: Programda kök alma
Gönderen: since1990 - 06 Ekim 2011, 00:00:02
Alıntı yapılan: bigbey - 05 Ekim 2011, 15:04:47
82 nin karekökünü bulalım dersek ne yapacağız?
1 2 41 82 -->2 ile 41 arasında olduğuna emin olabilirsin :)
Başlık: Ynt: Programda kök alma
Gönderen: bigbey - 06 Ekim 2011, 08:17:11
Arkadaşlar bu koşulu, yani karekök alma işlemini binary logic mantığı ile çalışan bir sistemde ideal olarak nasıl yapılacağını merak ediyorum. Bu fonksiyonu ASM ile nasıl yaparız veya parmak sayma usulü ile nasıl yapabiliriz. Floating point 3 digit yeter.
Başlık: Ynt: Programda kök alma
Gönderen: bigbey - 10 Ekim 2011, 19:18:53
Güncelleme. :o