Bilmece bulmaca buçuklu kaydirmaca

Başlatan z, 01 Temmuz 2014, 00:28:15

hasankara

3 kez sağa kaydırılır. kökün derecesi n=1000/9713 olacak şekilde newton rapson algoritmasına sokulur. en son kaydırılmış olan sayı, köklü sayıya bölünür.

muhittin_kaplan


z

Newton Raphson uygulamaya kalkarsak ardisil devreler falan girer isin icine.

Sadece toplama devreleri kullananin.
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

Gökhan BEKEN

Peki neden C++ float sayı kaydırmak istemiyor ya da yanlış kaydırıyor?
(Diğer dillerde denemedim)
Özel mesaj okumuyorum, lütfen göndermeyin.

muhittin_kaplan

Meftun float sayiyi kaydirirsan ne olur sence virgul felan mi kayar?

z

İlginç olan, C++ derleyici neden bir sayının tam sayı olmayan bir sayı ile kaydırılmasına kızmıyor?

Float sayının saga yada sola kaydırılmasını anlarım. Mantis ve exponent birlikte kayınca gene bir anlamı olur. Fakat Bir tam sayının kesirli bir sayı kadar kaydırılmasına anlam veremedim. Üstelik bilmecemizdeki gibi mantıklı sonuç ta üretmiyormuş.
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

d1g1tal

#21
C++ böyle bir işleme ne sonuç veriyor bilmiyorum ama nasıl oluyor da bir tam sayının, tam olmayan sayı kadar sağa/sola kaydırılmasına kızmıyor bu ilginç bir durum gerçekten.

Dijital dünyada matematiksel işlemlerin temel birimi "bit"lerdir ve dolayısıyla buçuklu bitlerden söz edilemez. Bu durumda mantık olarak düşündüğümüzde sanırım işlemci/derleyici 2 veya 3 bit mi kaydırma yapacağına kararsız durumda kalıp bu durumda rastlantısal (ya da rastlantısal olmayıp alta ya da üste yuvarlama da yapabilir) olarak bir durum seçer gibi geliyor bana. 128 sayısı 8 bitlik dizide 0b10000000 şeklinde ifade edilirken;

2 defa kaydırılırsa 0b00100000
3 defa kaydırılırsa 0b00010000 elde edilir.

Yani elde edilecek sayı 36 ile 18 arasında bir sayı değil; 36 ya da 18 sayısından herhangi biri olur sanırım. Sonuç nedir denemedim hiç, tamamen mantıksal olarak düşündüğümü dile getirdim.

hasankara

hocam yanlış anlamaz iseniz eğer aklıma bir filmden kesit geldi paylaşmak istiyorum. :D

pice bak ucagi ne hale getirdi oyle ucak mi uca

z

Bilmecemize devam edelim.

Yarim bitde saklanabilecek en buyuk sayi kactir?
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

RaMu

İkili rakam anlamına gelen 'binary digit' kelimelerinin kısaltmasıdır.
Bilgisayarda veri depolama ve transferlerinde ise bit en küçük dosya birimidir.
Veri (data) boyutları byte cinsinden hesaplanmaktadır. Bir byte 8 bitten oluşur.

binary digit ikili rakam yani ikilik tabandan yola çıkarak
yarım bitin birlik sayı tabanı olmasını beklerim
birlik taban olmuyor çünkü tüm sayılar sıfır
o zaman en büyük tutacağımız SIFIR.

En küçük dosya biriminden gitsek e daha küçüğü olmadığına göre yine birşey saklayamayız.

Soru sayıyı yarım bit kaydırdık mantığından geliyorsa bence hatalı.
Sorularınıza hızlı cevap alın: http://www.picproje.org/index.php/topic,57135.0.html

fatih6167

@z hocam üç şey söylemek istiyorum.
İlki bu yarım kaydırma işlemini başka tabanlara, mesela onluk tabana uygulasak ne olur?
İşlemsel olarak (200)10 sayısını 1.5 basamak kaydırırsak
200/(10^(1.5)) = 6,324... gibi bir değer olur, bunu sormuyorum. Bunun anlamı nedir?

İkincisi,
Alıntı yapılan: z - 01 Temmuz 2014, 21:35:09
Yarim bitde saklanabilecek en buyuk sayi kactir?
demişsiniz, bir sıkıntı var, en büyük sayı 4425226437921... olabilir, isterseniz +inf veya NaN da olabilir,
ancak önemli olan sayı değil çeşit sayısıdır. Basit bir kelime oyunu.
Küçük bir deney yapalım. 1 sayısını ele alalım. İkilik tabanda bir basamaklıdır,
o halde 0.5 basamak kaydırırsak elimizde 0.5 basamaklı bir sayı kalır.
1 / (2^(0.5)) = 1/kök(2) = 0.707.. Peki bu ne demek?
1 bitte 2 çeşit sayı saklanabilir, 1-0 veya a-b, [-3] ile 7 gibi (bkz. negatif sayı tabanı)
0 bitte 1 çeşit sayı saklanabilir, 0, x, q vs. vs...
Buradan yola çıkarsak yarım bitte 1 den fazla, 2 den az çeşit "bilgi" saklanabilir.
Bu noktada bilgi dediğimiz şeyin atomik(bölünemez) olmadığını kabul etmemiz gerek ki burada sıkıntı oluyor.
Eğer bilgi bir elektronun spin yönünde saklanıyorsa sadece iki olasılık vardır;
ara durumlar, belirsiz/kararsız/bulanıktır. Ancak imkansız değildir.
Örneğin sürekli 1-0 gidip gelen bir sistem .5 gibi görünür, en azından öyle tanımlanır,
ancak bu yarım bilgi değil TriState durumdur, ayrı bir olay olmalı...

Üçüncü husus ise, bilginin bölünebilirliğidir.
Mesela elinizde "10"(binary) bilgisini taşıyan iki "bit" var. Bunlar 4 yb(yarım-bit) eder.
Üstte bulduğumuz 0.707... nin manasını anlar gibiyim, ne 1, ne 0 değil mi..
O halde benim bundan anladığım bilginin yarım olarak var olmasına karşın gözlenememesi.
Yani 10 bilgisini (yb)(yb) (yb)(yb) olarak öyle 4 parçaya ayıralım ki bunların ilk ikisi 1 bilgisini,
son ikisi 0 bilgisini taşısın. Bu yb ler birlikte iken 1 veya 0'ı ifade ediyorlar.
Ancak her biri tekil olarak 0.707.. miktar bilgi taşıyor, yani tam bir bilgi değil.
Kendi başına anlam ifade etmiyor, gözlenemiyor, etkisiz...
Sadece diğer yarımla bir araya geldiğinde barındırdığı bilgi gözlenebiliyor,
ancak gözlenemediği durumda da bilgi kaybolmuş değil.

Şimdi bu düşündüklerimi logic kapılara aktarmak var aklımda.
Sanki bir şeyler oluşuyor gibi kafamda ama uykusuzluk başa vurur gibi oldu :)

z

#26
Gun icinde sorularinin hepsiyle ilgilenecegim.

Bildigimiz anlamda kaydirmak demek sayilari bulunduklari pozisyondan bir baska pozisyona tasimak demek.

Ornegin bir ondalik sayiyi 1 basamak saga kaydirirsak sayimizın her bir rakamını bir sağ basamağa taşımış oluruz yani sayımız 10'a bolunmus olur.

123.000 sayisini bir kez saga kaydirinca 12.300 sayisi olusuyor.

O halde 123 sayısını bir kez kaydırmakla aslında 123 sayısını 10^-1 çarpıyoruz.

2 kez kaydirirsak 10^-2 ile carpma yapiyoruz.

Bu durumda yapilan islem, kaydirma degeri n ise sayıyı 10^-n ile carpma islemidir.

n tam sayi oldugunda sayımızı oluşturan rakamlar değişmeden sadece konum  degistirmiş oluyor.

Fakat n tam sayi değilse sayi tamamen farkli rakamlardan olusan sayi dizisine donusuyor.

Yaptigimiz islem matematige aykiri olmadigi icin kesirli kaydirma islemi de mantiklidir.

Ornegin bir sayiyi yarim bit sola kaydirmak bu sayiyi Kok 2 ile carpmak demektir. Bu işlemi sadece kapılarla tasarlayabiliriz.

Diger sorulara işe gidince bakacagim.

Bu tur dusunce tarzlarini dislamayin. Matematikten bildigimiz J sayisi yoktur. Yani Kok (-1) diye bir sey olamaz. Fakat bir kabul ile kok(-1)=j tanimi yaparsak pek cok problem cok kolay cozulebilir hale gelir.



mesaj birleştirme:: 02 Temmuz 2014, 10:56:43

Alıntı Yap1 sayısını ele alalım. İkilik tabanda bir basamaklıdır,
o halde 0.5 basamak kaydırırsak elimizde 0.5 basamaklı bir sayı kalır.
1 / (2^(0.5)) = 1/kök(2) = 0.707.. Peki bu ne demek?

Aslında bu doğru değil.

3 bitlik bir sayımız olsun. Bunu 1 bit sağa kaydırdığımızda artık 3 bitimiz değil 2 bitimiz var. Fakat en sola 0 koymamızın bir sakıncası yok. En soldaki sıfırı yok sayarsak 2 bit, var sayarsak 3 bitimiz var demektir. Hatta sola iki adet sıfır koyarak 4 bitimiz var da diyebiliriz.

1 bitlik sayımızı 0.5 bit sağa kaydırırsak küsüratlı bir  sayı elde ederiz.

Bakalım küsürat 0.5 bit mi?

1 sayısını 0.5 bit sağa kaydırırsak

2^-0.5 =1/kok2 =0.707..

1 - 0.707..=0.292 kalır.

Soruyu şu şekilde soralım. 1/Kök2 sayısı bilmecedeki mantıkla kaç bitle ifade edilebilir?

Bir  A sayısını ifade edebilmek için gerekli bit sayısı n,

n=log(A)/log(2) dir.

A=1/Kök(2) den n = - 0.5 bit buluruz.

Buradaki - işaretine kafa yormak lazım.

-------------------------------------------------------------

e tabanında    123 sayısının decimal karşılığı nedir?
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

Icarus

Yanlız gerçekten 0.5Bit diye bir şey var. Fakat bu sizin söylediğiniz o değil... :(

fatih6167

Alıntı yapılan: z - 02 Temmuz 2014, 11:23:57
e tabanında    123 sayısının decimal karşılığı nedir?
Hocam e tabanında diyorsunuz, 1 olur, 2 eyvallah ama 3 > e olduğundan bu rakam tanımsız değil mi?
Eğer buna dikkat etmeden yazdıysanız 121 sayısı sayısını ele alalım, e^2 + 2e + 1 olur...
Ama sıkıntı şu: [2,718...] tabanındaki rakamların kümesini bana yazabilir misiniz?
{0, 1, 2, sonra? [2,716] veya [2,717] bir rakam olacak mı?
Yani sembolik olarak;
hani 16'lık tabanda 0,1,,,8,9,[10],[11],, yapmak yerine ,,,8,9,A,B,, yapıyoruz ya, bunu soruyorum...

z

#29
@fatih6167

Süpersin elbette olmaz. 123 sayısını 120 olarak değiştirelim. El alışkanlığı düşünmeden yazıverdim.

Tanım kümesini yazamam database'e sığmaz.

2 li sistemde de kesirli sayıları sınırlı bitle yazamıyoruz. O yüzden e tabanındaki 120 sayısını 10'lu sistemde sınırlı digit ile gösteremeyiz. Fakat yuvarlatma yapabiliriz.
Bana e^st de diyebilirsiniz.   www.cncdesigner.com