2009-05-21 21 views
9

Tôi đã thử tìm kiếm logarit + mục tiêu-c, nhưng tất cả những gì tôi nhận được là các trang thử nghiệm toán học từ giáo viên hoặc giải thích về lôgarit là gì;)Các chức năng/phương pháp lôgarit nào có sẵn trong mục tiêu-c/cacao-touch?

Tôi có một số phép đo giống như 83912.41234 và các số đo khác 32.94232. Tôi cần phải nhấn phổ rộng này vào thứ gì đó từ 0 đến 100, và 32.94232 sẽ có ít nhất một cái gì đó lớn hơn 2, nơi 83912.41234 sẽ là gần 100. Vì vậy, tôi nghĩ rằng một hàm logarit sẽ là bạn của tôi ở đây.

UPDATE: Tôi đã đi qua các tập tin math.h qua "Open Nhanh chóng" (lệnh rất thoải mái tại Xcode: SHIFT + CMD + D), và ở đó, bất ngờ lớn:

extern double log (double); 
extern float logf (float); 

extern double log10 (double); 
extern float log10f (float); 

extern double log2 (double); 
extern float log2f (float); 

extern double log1p (double); 
extern float log1pf (float); 

extern double logb (double); 
extern float logbf (float); 

Nhưng : Không có văn bản, không có bình luận. Tôi không phải là một con quái vật toán học. Vì vậy, một số mô tả sẽ là tốt, tức là loại logarit nào cho trường hợp nào, đường cong trông như thế nào, v.v ... vì vậy mọi liên kết tuyệt vời đều được đánh giá cao!

+0

Bạn đang tìm kiếm các kết quả phải được trên một đường cong hoặc một đường thẳng? – Abizern

+0

Tôi phải thử nó, nhưng hiện tại tôi đoán nó là một đường cong. log2() dường như là tốt, nhưng nó cũng có vẻ là một tính toán rất tốn kém. – Thanks

+0

Đắt tiền theo cách nào? – Abizern

Trả lời

1

Làm thế nào để lấy một cuốn sách về chức năng thư viện chuẩn C?

Nếu không, bạn có thể thử các trang người đàn ông: man 3 logf, ví dụ

2

math.h là một tiêu chuẩn bao gồm. trang wikipedia có một số tài liệu.

Cách khác để 'bẻ khóa' các giá trị phù hợp với giá trị của bạn thành đường thẳng. Đối với bạn ví dụ: dòng phương trình

Straight

y = mx + c 
y = 'squished' value. 
x = The value you want to squish 
m = Gradient of the line 
c = intercept on the y axis 

Một tính toán nhanh chóng trên các giá trị bạn mang đến cho một cái gì đó như:

y = 1.17e-3 x + 1.96 

Hope this helps.

+0

+1 cho liên kết Wiki ... sẽ không bao giờ nghĩ về điều đó –

14

Ngoài ra, nhận được một logarit với một căn cứ tùy ý:

float logx(float value, float base) 
{ 
    return log10f(value)/log10f(base); 
} 
Các vấn đề liên quan