Đến nội dung

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

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);
}
}
 





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

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