2009-08-19 22 views
5

Tôi đang cố gắng để giải quyết những gì có vẻ là một vấn đề toán học đơn giản. Tôi có thể viết vấn đề như là một vòng lặp for, nhưng tôi không chắc chắn làm thế nào để dịch nó thành một phương trình. Có ai giúp được không?Làm thế nào để bạn dịch này cho vòng lặp vào toán học

x = 10; 
for(int i=0; i<3000; i++) 
{ 
    x = x^2 
} 
+1

Xin lỗi, tôi cần phải chỉ định, ở trên là psuedocode. Đây không phải là cho một vấn đề lập trình vì vậy tôi không lo lắng về tràn: Tôi thực sự đang cố gắng giải quyết một vấn đề toán học bằng tay. Tôi biết làm thế nào để thể hiện vấn đề trong mã nhưng không phải trong toán học. Cảm ơn sự giúp đỡ của mọi người – user113164

Trả lời

10

x^(2^3000), nơi^nghĩa với sức mạnh của

+1

Hoặc trong trường hợp này, 10^(2^3000) –

+3

Tất cả x^6000 câu trả lời đều sai. Đúng là (x^2)^3000 == x^6000. Tuy nhiên, đó không phải là những gì vòng lặp đang nói. Tôi ngạc nhiên (và khá thất vọng) rằng bạn đang ở trong thiểu số trong việc đọc nó một cách chính xác. –

-3

Do đó là một hằng số, làm thế nào về chỉ

x = 10000000... (etc.) 

Nhưng tôi nghi ngờ bạn muốn một cái gì đó một chút intensional hơn :

x = 10^6000 

Hoặc thậm chí hơn:

x = (10^2)^3000 

Hoặc (nếu bạn cho phép ký hiệu hơi lỏng hơn):

x = (10^2) ... ^2 

với một ngang "} 3000" dưới "...".

0

Thứ gì đó (giá trị ban đầu là 10 trong trường hợp của bạn) sẽ được bình phương 3000 lần.

6

Bạn đã cung cấp mã và yêu cầu chúng tôi cung cấp phép toán tương đương - vì vậy tôi sẽ lấy mã của bạn theo nghĩa đen và giả sử đó là ngôn ngữ giống chữ C.

Trong môi trường đó,^là toán tử XOR bitwise. Vì vậy, sau vòng lặp x = 10, vì nó là XOR-ed với hằng số 2 (chuyển đổi bit kế tiếp sang LSB) một số chẵn.

Hoặc đây chỉ là mã giả - bạn có thực sự có nghĩa là lũy thừa?

+0

P.S. Tôi có phải là người duy nhất thực sự biên dịch điều này và xem nó đã làm gì không? –

+2

Tôi nghĩ rằng bạn xứng đáng với một số tiền nhất định của đạo cụ cho đề cập rằng^không phải là exponentiation trong C. Tôi nghĩ rằng hầu hết các coders C sẽ không phải biên dịch nó để con số đó ra mặc dù. ;) Ngoài ra, tôi sẽ nêu rõ hồ sơ mà bạn đã trả lời trước khi OP làm rõ rằng ông đã sử dụng mã giả. Tôi cũng sẽ tuyên bố rằng sử dụng C cho vòng lặp và niềng răng không phải là lựa chọn tốt nhất cho PSEUDOcode, điều này làm cho sự nhầm lẫn của bạn trở nên dễ hiểu hơn. –

+0

Bây giờ tôi cảm thấy tốt hơn, cảm ơn. :-) –

4
for(int i=0; i<n; i++) 
    x = x^p 

tương đương với:

x = x^(p^n) 
4

Tên toán học cho các lớp của vấn đề bạn đã cho là recurrence relation. Một mối quan hệ tái định nghĩa một chuỗi Một n về các điều khoản trước Một n-1, A n-2, vv Trong trường hợp của bạn,

Một n = A n -1

Như câu trả lời khác đã chỉ ra, tạo ra một closed-form solution ví dụ cho bạn là đơn giản.Giải quyết một mối quan hệ tái phát có thể nhanh chóng trở nên khó khăn hơn với những thay đổi dường như đơn giản để mối quan hệ:

Một n = A n-1 + c

một tái phát phi tuyến như vậy quan hệ thậm chí có thể không có giải pháp dạng đóng, tùy thuộc vào giá trị c. (Ngẫu nhiên, khi được sử dụng với số phức, quan hệ lặp lại ở trên là trung tâm của Mandelbrot set.)

Các vấn đề liên quan