• Vui lòng đọc nội qui diễn đàn để tránh bị xóa bài viết
  • Tìm kiếm trước khi đặt câu hỏi

bài toán khó về liệt kê dã số các pro giúp em với

Đây là nơi để các bạn trao đổi về cấu trúc dữ liệu và giải thuật

Moderator: Điều hành

thanhthuy40
Thành viên chính thức
Thành viên chính thức
Posts: 32
Joined: Sun 17/05/2009 12:17 am
Location: Daklak
Has thanked: 3 times

bài toán khó về liệt kê dã số các pro giúp em với

Postby thanhthuy40 » Wed 01/01/2014 2:20 pm

cho 1 mảng 6 phần tử

A = Array("1", "2", "3", "4", "5", "6", "7")

Liệt kê ra các số có chiều dài từ 1 đến 4 chữ số với điều kiện không được đảo lộn các số trong dãy

vd: đã lấy ra số là 123 => các số 213, 231 không cần lấy

Em mo hồ quá không biết phải viết thế nào :D



hvcuongit
Thành viên năng nổ
Thành viên năng nổ
Posts: 53
Joined: Sun 24/01/2010 6:09 pm
Has thanked: 1 time
Been thanked: 6 times

Re: bài toán khó về liệt kê dã số các pro giúp em với

Postby hvcuongit » Thu 02/01/2014 2:39 pm

Thuật toán mình nghĩ như thế này:
- Đầu tiên bạn phải liệt kê ra tất cả các số có thể có(theo điều kiện bạn đưa ra) rồi bạn đưa từng số đã tìm được vào một mảng kiểu string chẳng hạn.
- Tiếp theo bạn dùng vòng lặp để duyệt các phần tử trong mảng đã tìm được rồi so sánh từng phần tử 1
Ví dụ: Bạn có mảng tìm được là: A = Array("111", "112", "121", "122", "221",....vv)
Bây giờ bạn phải dùng 2 vòng lặp để get được 2 phần tử khác nhau trong mảng này, tiếp đến bạn phải so sánh từng kí tự phần phần tử này với phần tử kia. Nếu trùng lặp thì loại nó ra, kết quả bạn sẽ có được các số mà bạn mong muốn
p/s: Bạn có thể sùng StringBuilder để so sánh sẽ nhanh hơn .

thanhthuy40
Thành viên chính thức
Thành viên chính thức
Posts: 32
Joined: Sun 17/05/2009 12:17 am
Location: Daklak
Has thanked: 3 times

Re: bài toán khó về liệt kê dã số các pro giúp em với

Postby thanhthuy40 » Thu 02/01/2014 7:10 pm

Không ý em là như thế này cơ
VD: mảng A = Array("1", "2", "3", "4")
lấy ra các số có chiều dài từ 1 đến 3 chữ số ( không được dùng lại item của nhau)

kết quả sai:
ketqua = Array(1,2,3,4...23, 32, 444) ==> (sai ở chõ 32, 444) (vd 32 sai là vi đã có 23 rồi)

kết quả đúng:
ketqua = Array (1, 2, 3, 4, 12, 13, 14, 23, 24, 34, 123, 124, 134, 234)

đây chỉ là vd thôi nhá chứ mảng mà em cần lấy nó như thế này cơ Array("A", "B", "C", "D", "A", "C", "A", "A", "E")

mrhuavn
Posts: 9
Joined: Mon 18/08/2014 10:53 pm

Re: bài toán khó về liệt kê dã số các pro giúp em với

Postby mrhuavn » Tue 19/08/2014 3:36 am

có cách nào đó nhanh và gọn lắm nhưng tôi tìm mãi trong máy khong thấy đâu, bạn dùng tạm phương pháp hơi ngu nhưng được, từ 1 đến 1234567 lấy hết nhưng gì nhỏ hơn 4567, tìm và bỏ những reverstring, bỏ những số có số cuối cùng < = số sát nút

User avatar
xuanquy_th
Guru
Guru
Posts: 803
Joined: Tue 05/08/2008 9:15 pm
Location: Thanh Hoá
Has thanked: 1 time
Been thanked: 10 times
Contact:

Re: bài toán khó về liệt kê dã số các pro giúp em với

Postby xuanquy_th » Thu 21/08/2014 12:00 pm

B1. Tạo 1 mảng tương đương vị trí (Mảng này được đảo lộn các số trong dãy)
B2. Duyệt trên mảng được đảo lộn và lấy vị trí tương ứng ở mảng gốc
===> Kết quả
Khi Chúa Trời đóng cánh cửa này lại, Ngài sẽ mở một cánh cửa khác cho ta.
Nhưng ta thường nhìn quá lâu vào cánh cửa đã đóng nên không thấy được có một cánh cửa khác đang mở ra cho ta!!!

mrhua1
Posts: 8
Joined: Sun 03/05/2015 5:14 pm

Re: bài toán khó về liệt kê dã số các pro giúp em với

Postby mrhua1 » Wed 13/05/2015 6:26 pm

hơi dễ
cho mot list vào ngồi "làm cảnh"
truoc khi cho vao array kiem tra trong list bang count list
neu khong co thi moi cho vao array và đồng thời add vào list
xong roi bo list di.. có thích thì đến xyz cũng được


Return to “Cấu trúc dữ liệu và giải thuật”

Who is online

Users browsing this forum: No registered users and 0 guests