Dãy số dài nhất, Bao nhiêu số đang xuất hiện ở cuối dãy, Lần cuối xuất hiện của dãy.

Liên hệ QC

trabidaont

Thành viên mới
Tham gia
19/1/11
Bài viết
12
Được thích
0
1. Số lần xuất hiện của một dãy số giống nhau trong một dãy số?
Vd: File đính kèm. Số lần xuất hiện của dãy số là 3 số 0 liên tiếp là 4 lần. (Cái này xong rồi)
2. Lần cuối xuất hiện của dãy số là 3 số 0 liên tiếp? trong dãy này là 19
(Dãy số kết thúc tại A53, dãy 3 số 0 liên tiếp kết thúc tại A34, Lấy 53 - 34 = 19)
3. Bao nhiêu số 0 đang xuất hiện ở cuối dãy? Trong này là 4.
4. Dãy số 0 dài nhất là bao nhiêu số 0? trong này là 6.
5. Lấy 2 số cuối hoặc 3 số cuối của một dãy số.
Vd: Cột f5 là 1234, 2 số cuối là 34.
 

File đính kèm

  • filedinhkem00.xls
    28 KB · Đọc: 12
1. Số lần xuất hiện của một dãy số giống nhau trong một dãy số?
Vd: File đính kèm. Số lần xuất hiện của dãy số là 3 số 0 liên tiếp là 4 lần. (Cái này xong rồi)
2. Lần cuối xuất hiện của dãy số là 3 số 0 liên tiếp? trong dãy này là 19
(Dãy số kết thúc tại A53, dãy 3 số 0 liên tiếp kết thúc tại A34, Lấy 53 - 34 = 19)
3. Bao nhiêu số 0 đang xuất hiện ở cuối dãy? Trong này là 4.
4. Dãy số 0 dài nhất là bao nhiêu số 0? trong này là 6.
5. Lấy 2 số cuối hoặc 3 số cuối của một dãy số.
Vd: Cột f5 là 1234, 2 số cuối là 34.

bạn muốn ứng dụng bài này vào trường hợp nào thực tế?
hay chỉ là bài toán đặt ra, thử làm?

Nếu là bài toán thực tế, chugnx ta phải xem lại cách đặt vấn đề cho đơn giản hơn không (?)
 
Cám ơn bạn đã có ý kiến. Vậy theo bạn thì đặt vấn đề như thế nào cho đơn giản?
 
Cám ơn bạn đã có ý kiến. Vậy theo bạn thì đặt vấn đề như thế nào cho đơn giản?

bạn chưa trả lời
bạn muốn ứng dụng bài này vào trường hợp nào thực tế?
thì làm sao tôi giúp để mô tả và cách tiếp cận đơn giản hơn?
vì thấy như thể bài bạn là 1 bài thuần túy rèn luyện cách nghĩ (tư duy) không khả thi trong thực tế
 
Đúng như bạn nói, Bài này giống như rèn luyện cách tư duy. Còn thực tế mình nghỉ rồi cũng sẽ gặp, giống hoàn toàn thì chưa biết, nhưng tương tự mình nghỉ sẽ có. Nếu giải quyết được thì quá tốt, mọi người có thể tham khảo. :)
 
/)ễ hơn xơi trước, . . .

Bao nhiêu số đang xuất hiện ở cuối dãy

Nội dung hàm tự tạo:

PHP:
Option Explicit
Function DaySoCuoi(Num As Byte, Rng As Range)
 Dim sRng As Range, jJ As Long, Dem As Byte
 
 Set sRng = Rng.Find(Num, Rng(1), xlValues, xlWhole, , xlPrevious)
 If sRng Is Nothing Then
    DaySoCuoi = "Nothing"
 Else
    For jJ = sRng.Row To 1 Step -1
        If Rng(jJ).Value = Num Then
            DaySoCuoi = 1 + DaySoCuoi
        Else
            Exit For
        End If
    Next jJ
 End If
End Function

Tại [G3] bạn nhập cú fáp hàm: =DaySoCuoi(0,A1:A55)
 
1. Số lần xuất hiện của một dãy số giống nhau trong một dãy số?
Vd: File đính kèm. Số lần xuất hiện của dãy số là 3 số 0 liên tiếp là 4 lần. (Cái này xong rồi)
2. Lần cuối xuất hiện của dãy số là 3 số 0 liên tiếp? trong dãy này là 19
(Dãy số kết thúc tại A53, dãy 3 số 0 liên tiếp kết thúc tại A34, Lấy 53 - 34 = 19)
3. Bao nhiêu số 0 đang xuất hiện ở cuối dãy? Trong này là 4.
4. Dãy số 0 dài nhất là bao nhiêu số 0? trong này là 6.
5. Lấy 2 số cuối hoặc 3 số cuối của một dãy số.
Vd: Cột f5 là 1234, 2 số cuối là 34.
Thử cách này, gom vào một hàm tự tạo
Mã:
Public Function Tim(Vung As Range, iSo As Long, iLan As Long, Dk As Long) As Long
    Dim I As Long, SlXuatHien As Long, LanCuoi As Long, DScuoi As Long, DSdainhat As Long, Tong As Long, Kq()
        For I = Vung.Rows.Count To 1 Step -1
            If Vung(I) = iSo Then
                Tong = Tong + 1
            Else
                DScuoi = IIf(DScuoi = 0, Tong, DScuoi)
                DSdainhat = IIf(Tong > DSdainhat, Tong, DSdainhat)
                    If Tong = iLan Then
                        SlXuatHien = SlXuatHien + 1
                        LanCuoi = IIf(LanCuoi = 0, Vung.Rows.Count - I - 3, LanCuoi)
                    End If
                        Tong = 0
            End If
        Next I
            Kq = Array(SlXuatHien, LanCuoi, DScuoi, DSdainhat)
            Tim = Kq(Dk - 1)
End Function
Có gì bàn tiếp, thay thử cell điều kiện [B2] & [C2] rồi kiểm tra thử nhé
Thân
 

File đính kèm

  • filedinhkem00(3).rar
    10.7 KB · Đọc: 3
Mình cũng vừa gôm 3 fương án vô 1 hàm tự tạo đê!

PHP:
Option Explicit
Function BaFuongAn059(Num As Byte, Rng As Range, Optional Day As Byte, Optional FgAn As Byte = 0)
 Dim sRng As Range, jJ As Long, Dem As Integer, Max_ As Integer
 
 Set sRng = Rng.Find(Num, Rng(1), xlValues, xlWhole, , xlPrevious)
 If sRng Is Nothing Then
    BaFuongAn059 = "Nothing"
 Else
    For jJ = sRng.Row To 1 Step -1
        If Rng(jJ).Value = Num Then
            Dem = 1 + Dem
        Else
            If FgAn = 0 Then
                BaFuongAn059 = Dem:                        Exit Function
            End If
            If Max_ < Dem Then Max_ = Dem
            If Dem = Day And FgAn = 5 Then
                BaFuongAn059 = sRng.Row - (jJ + Day)
                Exit Function
            Else
                Dem = 0
            End If
        End If
    Next jJ
    If FgAn = 9 Then BaFuongAn059 = Max_
 End If
End Function

(1) Để tìm dẫy số cuối, tại [G3] ta thiết lập công thức =BaFuongAn059(0, A1:A55)
A1:Ạ5 là vùng khảo sát; 0 là trị cần tìm

(2) Để tìm lần cuối, tại [F3] ta thiết lập công thức
=BaFuongAn059(B2, A1:A55, C2, 5)
[C2] đang chứa số 3; Số 5 - Tùy chọn để nhận kết quả lần cuối số 0 lặp lại 3 lần

(3) Để tìm dãy số dài nhất ta có cú fáp tại [H3] như sau
=BaFuongAn059(B2,A1:A55,,9)

[B2] đang chứ số 0; 9 là tùy chọn để hàm trả về dãy dài nhất từ vùng chọn.
 
Web KT

Bài viết mới nhất

Back
Top Bottom