Đến nội dung


Chú ý

Nếu các bạn đăng kí thành viên mà không nhận được email kích hoạt thì hãy kiểm tra thùng thư rác (spam). Nếu không biết cách truy cập vào thùng thư rác thì các bạn chịu khó Google hoặc đăng câu hỏi vào mục Hướng dẫn - Trợ giúp để thành viên khác có thể hỗ trợ.


Hình ảnh

Lập trình giải phương trình Beal

giải phương trình beal

  • Please log in to reply
Chưa có bài trả lời

#1 phucnguyen207

phucnguyen207

    Lính mới

  • Thành viên mới
  • 1 Bài viết

Đã gửi 20-07-2018 - 17:06

Chào mọi người trong diễn đàn, hôm nay em xin post một tý công sức của em về giả thuyết Beal. Tự thấy đây vẫn chưa phải là thuật toán tối ưu nên mong mọi người cho em nhận xét để em con tiếp tục phát triển thuật toán.

p/s: Đây chỉ là cách 1: Sử dụng chắc thuật toán vét cạn:

package laptrinhbeal;
import java.util.Scanner;
import java.io.*;
public class giathuyetbeal {
public static int luythua(int a, int b) {
int i, s=1;
for(i=1; i<=b; i++)
{
s=s*a;
}
return s;
}
public static void main(String[]args) {
int A=1, B=1, C=1, x, y, z, P=0;
System.out.println("Nhap cac so x, y, z:");
Scanner scan = new Scanner(System.in);
x= scan.nextInt();
y= scan.nextInt();
z= scan.nextInt();
for(A=1; A<=100; )
{
for(B=1; B<=100; )
{
for(C=1; C<=100; )
{
P = luythua(A, x) + luythua(B, y) - luythua(C, z);
if(P!=0)
C++;
else break;
}
  if(P!=0)
B++;
else break;
}
if(P!=0)
A++;
else break;
}
System.out.println("A="+A+", "+"B="+B+", "+"C="+C);
}
Cách 2: Kết hơp̣ thuật toán vét cạn với giải hệ phương trình mũ:
package giathuyetbbeal;
import java.util.Scanner;
import java.io.*;
public class laptrinhtoan {
public static int somu(int a, int b) {
int i, s=1;
for(i=1; i<=b; i++)
s=s*a;
//System.out.println("s="+s);
return s;
}
public static void main(String[]args) {
int m, n, k=1, t=1, A=1, B=1, C=1, x=1, y=1, z=1, P=0;
System.out.printf("Nhap hai so m, n:");
Scanner scan = new Scanner(System.in);
m = scan.nextInt();
n = scan.nextInt();
for(k=1; k<=100; )
{
for(t=1; t<=100; )
{
P = somu(k, n) - somu(t, m) - 1;
if(P!=0)
t++;
else break;
}
if(P!=0)
k++;
else break;
}
System.out.println("k="+k+", "+"t="+t);
// somu(B, y) = somu(t, m)*somu(A, x);
// somu(C, z) = somu(k, n)*somu(A, x);
if((m>2)&&(n<=2))
{
y=x=m;
z=x+n;
C=A=k;
B=t*A;
}
else if((n>2)&&(m<=2))
{
z=x=n;
y=x+m;
B=A=t;
C=k*A;
}
System.out.println("A="+A+", "+"B="+B+", "+"C="+C);
System.out.println("x="+x+", "+"y="+y+", "+"z="+z);
}
}
 





1 người đang xem chủ đề

0 thành viên, 1 khách, 0 thành viên ẩn danh