[]
matematikle az çok alakası olan arkadaşlara
basit bi problemim var ama nasıl çözeceğimi bilemiyorum. her türlü öneriye fikre açığım, maksat aylardır durmuş olan beynim biraz çalışsın artık.
problem şu:
bir sayı var ve derdim o sayıdan büyük en küçük 2 kuvvet değerini bulmak.
mesela 7 için 8 i bulmak. 23 için 32 yi. tabi esas problem bu kadar küçük sayılarda değil, büyük sayılarda bulmak.
var mı önerisi olan?
problem şu:
bir sayı var ve derdim o sayıdan büyük en küçük 2 kuvvet değerini bulmak.
mesela 7 için 8 i bulmak. 23 için 32 yi. tabi esas problem bu kadar küçük sayılarda değil, büyük sayılarda bulmak.
var mı önerisi olan?
kağıt üzerinde bir formül mü yaratmaya çalışıyorsun? yoksa bir program mı yazmak istiyosun, bunun sonucunu veren ?
- onakomabunako (08.05.13 14:08:41)
oyle bisi olmaz
mesela yedi icin en yakin iki sayi 7 ve 7 olur
epsulon falan hikayesi
acikcasi ne sordugunu da anlamadik
mesela yedi icin en yakin iki sayi 7 ve 7 olur
epsulon falan hikayesi
acikcasi ne sordugunu da anlamadik
- evrenos (08.05.13 14:15:34)
@onakomabunako: program :) tercihen kestirmeden bişey. yani çarp&kontrol et, çarp& kontrol et dışında bişey var mı, cevabını bulmak istediğim soru bu aslında.
@evrenos: baştan açıklayayım o zaman. elinde bir sayı var ve o sayıya en yakın ama ondan büyük 2^n değerini arıyorsun. ne yaparsın? yani mesela 7 için 8 i arıyorsun, kesinlikle 4 veya 16 yı değil.
@evrenos: baştan açıklayayım o zaman. elinde bir sayı var ve o sayıya en yakın ama ondan büyük 2^n değerini arıyorsun. ne yaparsın? yani mesela 7 için 8 i arıyorsun, kesinlikle 4 veya 16 yı değil.
- cilgin korsan ces (08.05.13 14:15:56 ~ 14:18:34)
2^n i arıyoruz, n = ceil(log2(x))
ceil o sayıya eşit ya da daha büyük en yakın tam sayıyı veren fonksiyon.
edit: örneğin: 23 için:
www.wolframalpha.com
ceil o sayıya eşit ya da daha büyük en yakın tam sayıyı veren fonksiyon.
edit: örneğin: 23 için:
www.wolframalpha.com
- talemon (08.05.13 14:36:12 ~ 15:07:20)
matlab için;
%girilen bir sayı için en yakın 2'nin kuvvetini verir.
n = 0;
x = input('2''den büyük pozitif bir sayı girin:');
c = x;
while x>=2;
x = floor(x/2);
n = n+1;
end
if abs(2^n - c) > abs(2^(n+1) - c)
n = n+1;
end
sonuc = 2^n
edit: Benimki en yakın sayıyı veriyor. talemon'un yaptığı doğru.
%girilen bir sayı için en yakın 2'nin kuvvetini verir.
n = 0;
x = input('2''den büyük pozitif bir sayı girin:');
c = x;
while x>=2;
x = floor(x/2);
n = n+1;
end
if abs(2^n - c) > abs(2^(n+1) - c)
n = n+1;
end
sonuc = 2^n
edit: Benimki en yakın sayıyı veriyor. talemon'un yaptığı doğru.
- onexey (08.05.13 14:37:06 ~ 14:42:49)
1