vui chơi có thưởng (1 người xem)

Liên hệ QC

Người dùng đang xem chủ đề này

khongtu19bk

Thành viên hoạt động
Tham gia
5/12/09
Bài viết
147
Được thích
69
Mời anh chị em tham gia giải toán bằng VBA.
Thời gian: Ai trả lời sớm nhất, và trước ngày 10/11/2019 sẽ trúng thưởng.
Giải thưởng:
Một cuốn sách VBA.

Yêu cầu dùng VBA để chỉ ra được một đáp án đúng.

Nội dung:
 

File đính kèm

  • B9864BF8-8295-456A-9D31-57E91B9019DA.jpeg
    B9864BF8-8295-456A-9D31-57E91B9019DA.jpeg
    38.6 KB · Đọc: 107
Mời anh chị em tham gia giải toán bằng VBA.
Thời gian: Ai trả lời sớm nhất, và trước ngày 10/11/2019 sẽ trúng thưởng.
Giải thưởng:
Một cuốn sách VBA.

Yêu cầu dùng VBA để chỉ ra được một đáp án đúng.

Nội dung:
tức là làm code tìm kết quả hay sao
 
Đúng rồi bạn. Nếu bạn không thạo vba nhưng trình bày bằng lời giải toán thì cũng được chấp nhận
 
Xin phép quý vị tôi rút lui. Mới đầu xem lầm nó là "Lập Trình" thì tôi mới ọ oẹ. Xem kỹ lại thì mình lầm, tôi không nói chuyện lập trình trong "Giao lưu, Thư giãn"
 
Lần chỉnh sửa cuối:
Ô vuông kiểu này hình như toán cấp 1 chăng?
 
Mời anh chị em tham gia giải toán bằng VBA.
Thời gian: Ai trả lời sớm nhất, và trước ngày 10/11/2019 sẽ trúng thưởng.
Giải thưởng:
Một cuốn sách VBA.

Yêu cầu dùng VBA để chỉ ra được một đáp án đúng.

Nội dung:
Chụp hình sách gởi lên
 
Tôi nghĩ ông ilvba này chơi chữ thôi và tôi thiết nghĩ những câu phản hồi đối với một chủ đề như vậy là dư thừa, làm loãng việc theo dõi những bài viết có tính xây dựng.
Anh không biết mấy thành viên kia là ai rồi. :))
Họ ở diễn đàn kia và 'cực kỳ ghét' diễn đàn GPE. Anh vào đó mà đọc (đọc xong muốn té ghế luôn ấy).
 
Sách thì nhường cho bạn khác. Code gốc sẽ đưa lên sau :D.
Mã:
Const l_I_l = 7, l_I_I_l = 6, l_l_I_I = 5, l_l_I_l = 4, l_I_l_l_I = 3, l_l_l_l_l = True, l_I_I = 2, l_l_I_l_I = 8, l_I_l_l = 511, l_I_I_I_l = 0, l_l_l_l_I = 9, l_l_l = 1, l_I_l_I_l = "_", l_l_l_l = "l", l = "I"
Dim l_l_I_l_l(l_l_l To l_l_l_l_I) As Long, l_I_l_I_I As Boolean
Sub ABC(): Dim l_l_l_l As Long: For l_l_l_l = l_l_l To l_l_l_l_I: l_l_I_l_l(l_l_l_l) = l_l_l_l: Next: l_l_I_I_I l_I_I_I_l, l_I_l_l: l_I_l_I_I = False: End Sub
Private Sub l_l_I_I_I(ByVal l_I_l_l As Long, ByVal l_l_l_l As Long)
If l_I_l_I_I Then Exit Sub
l_I_l_l = l_I_l_l + l_l_l: For l_l_I_I_l = l_I_I_I_l To l_l_I_l_I
If l_I_I ^ l_l_I_I_l And l_l_l_l Then
l_l_I_l_l(l_I_l_l) = l_l_I_I_l + l_l_l
If l_I_l_l < l_l_l_l_I Then
l_l_I_I_I l_I_l_l, l_l_l_l - l_I_I ^ l_l_I_I_l
ElseIf l_l Then
l_I_l_I_I = l_l_l_l_l: l_I_l_l_l: Exit Sub: End If: End If: Next: End Sub
Private Function l_l() As Boolean: l_l = (l_l_I_l_l(l_l_l) / CLng(l_l_I_l_l(l_I_I) & l_l_I_l_l(l_I_l_l_I)) + l_l_I_l_l(l_l_I_l) / CLng(l_l_I_l_l(l_l_I_I) & l_l_I_l_l(l_I_I_l)) + l_l_I_l_l(l_I_l) / CLng(l_l_I_l_l(l_l_I_l_I) & l_l_I_l_l(l_l_l_l_I)) = l_l_l): End Function
Private Sub l_I_l_l_l(): Dim l_l_l_l_l As Long: For l_l_l_l_l = l_l_l To l_l_l_l_I: Cells(l_l_l, l_l_l_l_l) = l_l_I_l_l(l_l_l_l_l): Next: End Sub
 
Mời anh chị em tham gia giải toán bằng VBA.
Thời gian: Ai trả lời sớm nhất, và trước ngày 10/11/2019 sẽ trúng thưởng.
Giải thưởng:
Một cuốn sách VBA.

Yêu cầu dùng VBA để chỉ ra được một đáp án đúng.

Nội dung:
Ma thuật này thời đại học có nghe thầy giáo nói đến: 492 -357 -816 . cộng ngay, cộng chéo đều = 15
nay bạn @khongtu19bk nhắc đến có giống ma thuật này không nhỉ? vba thì chưa nghỉ ra nhưng con số thô thì 1= 4/92+3/57+8/16 có vẽ giống ma thuật này.
Hy vọng sẽ có lời giải bằng vba để học hỏi
 

File đính kèm

  • rua.jpeg
    rua.jpeg
    53 KB · Đọc: 43
Mời anh chị em tham gia giải toán bằng VBA.
Thời gian: Ai trả lời sớm nhất, và trước ngày 10/11/2019 sẽ trúng thưởng.
Giải thưởng:
Một cuốn sách VBA.

Yêu cầu dùng VBA để chỉ ra được một đáp án đúng.

Nội dung:
Mã:
Sub Test()
Dim Arr0
Dim Result
Dim i, k
Sheet1.UsedRange.Clear
Arr0 = Array(1, 2, 3, 4, 5, 6, 7, 8, 9)
k = UBound(Arr0)
ReDim Result(k)
PMT ByVal Arr0, ByVal k, ByVal Result, ByVal i, k
End Sub

Sub PMT(ByVal SArr, ByVal cl, ByVal ResN, ByVal rw, DmS)
Dim Arr1
Dim i, j, k
If cl < 0 Then
    ReDim j(1 To 3)
    For i = 0 To DmS Step 3
        k = k + ResN(i) / (ResN(i + 1) * 10 + ResN(i + 2))
        j(Int(i / 3) + 1) = ResN(i) & "_" & (ResN(i + 1) * 10 + ResN(i + 2))
    Next i
    If k = 1 Then Sheet1.Range("A1000000").End(xlUp).Offset(1).Resize(1, 3) = j
Else
    For i = 0 To cl
        ResN(rw) = SArr(i)
        Arr1 = SArr
        Arr1(i) = Arr1(cl)
        PMT ByVal Arr1, ByVal cl - 1, ByVal ResN, ByVal rw + 1, DmS
    Next i
End If
End Sub
 
PHP:
Private Function TronDe(s As String) As String
Dim i As Integer, lens As Integer, r As Integer
Dim temp As String
Randomize
lens = Len(s)
For i = 1 To lens
    r = Int(Rnd() * lens) + 1
    temp = Mid(s, r, 1)
    Mid(s, r, 1) = Mid(s, i, 1)
    Mid(s, i, 1) = temp
Next i
TronDe = s

End Function
'********************'
Public Sub TimSo()
Dim dapan As String
Dim s As String
Dim i As Long
Const n = "123456789"

For i = 1 To 500000
    s = TronDe(n)
    dapan = Format(s, "0/00+0/00+0/00")
    If Evaluate("=" & dapan) = 1 Then
        Range("K1").Value = dapan
        Exit Sub
    End If
Next i

End Sub
 
Mã:
Sub Test()
Dim Arr0
Dim Result
Dim i, k
Sheet1.UsedRange.Clear
Arr0 = Array(1, 2, 3, 4, 5, 6, 7, 8, 9)
k = UBound(Arr0)
ReDim Result(k)
PMT ByVal Arr0, ByVal k, ByVal Result, ByVal i, k
End Sub

Sub PMT(ByVal SArr, ByVal cl, ByVal ResN, ByVal rw, DmS)
Dim Arr1
Dim i, j, k
If cl < 0 Then
    ReDim j(1 To 3)
    For i = 0 To DmS Step 3
        k = k + ResN(i) / (ResN(i + 1) * 10 + ResN(i + 2))
        j(Int(i / 3) + 1) = ResN(i) & "_" & (ResN(i + 1) * 10 + ResN(i + 2))
    Next i
    If k = 1 Then Sheet1.Range("A1000000").End(xlUp).Offset(1).Resize(1, 3) = j
Else
    For i = 0 To cl
        ResN(rw) = SArr(i)
        Arr1 = SArr
        Arr1(i) = Arr1(cl)
        PMT ByVal Arr1, ByVal cl - 1, ByVal ResN, ByVal rw + 1, DmS
    Next i
End If
End Sub
Có sách gửi mình xem nhé.Mình chưa đọc sách bao giờ.Toàn tìm tài liệu trên diễn đàn chưa có sách đọc.
PHP:
Private Function TronDe(s As String) As String
Dim i As Integer, lens As Integer, r As Integer
Dim temp As String
Randomize
lens = Len(s)
For i = 1 To lens
    r = Int(Rnd() * lens) + 1
    temp = Mid(s, r, 1)
    Mid(s, r, 1) = Mid(s, i, 1)
    Mid(s, i, 1) = temp
Next i
TronDe = s

End Function
'********************'
Public Sub TimSo()
Dim dapan As String
Dim s As String
Dim i As Long
Const n = "123456789"

For i = 1 To 500000
    s = TronDe(n)
    dapan = Format(s, "0/00+0/00+0/00")
    If Evaluate("=" & dapan) = 1 Then
        Range("K1").Value = dapan
        Exit Sub
    End If
Next i

End Sub
Anh ơi chậm rồi.Chắc không có sách đâu.
 
Có sách gửi mình xem nhé.Mình chưa đọc sách bao giờ.Toàn tìm tài liệu trên diễn đàn chưa có sách đọc.

Anh ơi chậm rồi.Chắc không có sách đâu.
Viết cho vui vậy thôi, thưởng phạt gì nữa bạn
Sách vở giờ chịu không dám đọc, nằm xem video cho nó nhàn cái thân :D:D:D
 
Giải hong ra khó quá, ai lãnh thưởng không dùng đến sách Tặng mình nhé
"Ước mơ .... Chắc chỉ là mơ Ước "(@$%@
 
Góp vui
Mã:
Sub ABC()
  Dim KetQua$, DaySo$, i&, r&, N&
  DaySo = "123456789"
  N = Len(DaySo)
  Randomize
  Do
    If i = N Then i = 1 Else i = i + 1
    r = Int(Rnd() * N + 1)
    tmp = Mid(DaySo, r, 1)
    Mid(DaySo, r, 1) = Mid(DaySo, i, 1)
    Mid(DaySo, i, 1) = tmp
    KetQua = Format(DaySo, "0/00+0/00+0/00")
  Loop Until Evaluate("=" & KetQua) = 1
  Range("A2") = KetQua
End Sub
 
Theo tôi thì có hai điều:

1. thuật toán vét cạn bài này tương đối dễ
ở đây ta chỉ có 1-9, tức là có thể gom trong kiểu Long
thử từ số nhỏ nhất là 123456789 đến 987654321 là khoảng 860 triệu lượt. Tuy phải lặp nhiều lần nhưng thuật toán đơn giản.
như vậy chỉ cần 2 hàm phụ:
Hàm phụ 1: xét chuỗi số không có chữ số lặp lại. Hàm này, nếu đem số thử cộng thêm "0" thì nó sẽ loại luôn các số có chứa "0".
Hàm phụ 2: xét chuỗi số có thoả phương trình.

2. thuật toán tính a/bc + d/ef + g/hi = 1 khá nguy hiểm. Nếu bạn làm ra đáp số thì do may mắn thôi.
Thứ nhất:
con toán chia có thể sẽ ra số lẻ. Tổng lại có thể không bao giờ chính xác là 1.
Thứ hai:
may mắn thì không có con số gần đúng. Nếu gặp bài toán khác có thể bị gần đúng làm tròn. Tức là có thể gặp đáp số sai.

Ở bài #4 tôi có gợi ý là không so sánh sau khi chia, mà ta hoá đồng mẫu số rồi so sánh mẫu = tử
Nhờ bác giải thích thêm phần bôi đậm được không
 
Góp vui
Mã:
Sub ABC()
  Dim KetQua$, DaySo$, i&, r&, N&
  DaySo = "123456789"
  N = Len(DaySo)
  Randomize
  Do
    If i = N Then i = 1 Else i = i + 1
    r = Int(Rnd() * N + 1)
    tmp = Mid(DaySo, r, 1)
    Mid(DaySo, r, 1) = Mid(DaySo, i, 1)
    Mid(DaySo, i, 1) = tmp
    KetQua = Format(DaySo, "0/00+0/00+0/00")
  Loop Until Evaluate("=" & KetQua) = 1
  Range("A2") = KetQua
End Sub
Bác oi bác, cháu cho kết quả =2 sao nó chạy mãi vậy hở bác?
 
Mình đã nhìn thấy lời giải cho đáp án đúng rồi. Thật là nhiều lời giải, cảm ơn các bạn.
Mình sẽ thông báo tới người thắng sau.
Buổi giao lưu rất thú vị.
Xin góp vui một lời giải đệ quy, thực hiện 9! phép thử.
Mã:
Dim x(10) As Double
Dim p(10) As Boolean
 
Dim i As Integer
 
Function Res() As Double
Dim r As Double
    r = x(1) / (10 * x(2) + x(3))
    r = r + x(4) / (10 * x(5) + x(6))
    r = r + x(7) / (10 * x(8) + x(9))
    Res = r
End Function
 
 
Sub search(i As Integer)
Dim a As Integer
    For a = 1 To 9
        If p(a) = True Then
            x(i) = a
            p(a) = False
            If i < 9 Then
                search (i + 1)
            ElseIf i = 9 Then
                If Res() = 1 Then
                    MsgBox x(1) & x(2) & x(3) & x(4) & x(5) & x(6) & x(7) & x(8) & x(9)
                End If
            End If
            p(a) = True
        End If
    Next
End Sub
 
Sub work()
    For i = 1 To 9
        p(i) = True
    Next
    Call search(1)
End Sub
 
Ông này đặt bài toán mà cần câu trả lời với VBA đơn giản dễ nhận giải dễ sợ.
Duyệt thay đổi vị trí cho tới khi bằng 1.

Tưởng chi là thuật toán nhanh nhất để tìm được.
Rồi kêu người giải thích về thuật toán. Sẽ có bao nhiêu cách như vậy, nếu chỉ có một cách thì giải thích tại sao.

Hoặc là cho từ 0 đến 9 xếp 10 số này vào cái hình kia rồi đếm số cách, và những số sẽ nằm ở kết quả chẳng hạn

--------------------

Ma thuật này thời đại học có nghe thầy giáo nói đến: 492 -357 -816 . cộng ngay, cộng chéo đều = 15
nay bạn @khongtu19bk nhắc đến có giống ma thuật này không nhỉ? vba thì chưa nghỉ ra nhưng con số thô thì 1= 4/92+3/57+8/16 có vẽ giống ma thuật này.
Hy vọng sẽ có lời giải bằng vba để học hỏi
Bài toán này người ta giải bằng phương "pháp đi bộ":
Cách giải này dành cho các ô cột lẻ và hàng lẻ thì đi theo hàng chéo hướng trên bên phải.

Từ một ô vuông đứng Số 1 bắt đầu từ hàng đầu tiên, và cột chính giữa.
Nếu bị mắc kẹt bởi số khác thì đưa xuống dưới nó sang phải 1
Nếu hết khi lên hàng đầu thì từ nó chiếu xuống hàng cuối sang phải 1 ô.
Nếu đến hết cột bên phải thì từ nó chiếu trái về cột đầu tiên lên trên một ô.

Ô vuông chẳn thì có cách giải khác.
 
Lần chỉnh sửa cuối:
đơn giản hay khó thì nó tùy từng người. Với người này là đơn giản, với người khác có thể không đơn giản.
Nói đơn giản nếu là để muốn chứng tỏ mình giỏi thì nó hơi kệch cỡm. Vì đó không phải là cách chứng minh tài năng.
Với lại, tài năng nếu có thì hãy cứ tự mình tận hưởng thôi, không cần khoe cho người khác biết.
 
Mất 3 tháng để dịch cái này.
Thành viên mình muốn gửi lời cảm ơn là @CHAOQUAY .
Tuy nhiên, tài liệu thì mọi người có thể cùng nhau xem, mục đích dịch không gì khác chính là chia sẻ.
Download:
Link 1: http://www.mediafire.com/file/607zzmhyrvlxm21/Sudoku_tuhocvba.xlsm/file
Link 2: https://drive.google.com/file/d/1GSzBrLaatK363b9a3md42M0uq6rGvmwC/view?usp=sharing

Thuật toán được trình bày cặn kẽ, mình không chắc đó là lời giải đẹp, nhưng đó là lời giải dễ hiểu. Mọi người download file về sẽ thấy phần trình bày thuật toán ạ.
 
Mời anh chị em tham gia giải toán bằng VBA.
Thời gian: Ai trả lời sớm nhất, và trước ngày 10/11/2019 sẽ trúng thưởng.
Giải thưởng:
Một cuốn sách VBA.

Yêu cầu dùng VBA để chỉ ra được một đáp án đúng.

Nội dung:
Sách đâu rồi :mad:
Quân tử nhất ngôn tứ mã nan truy !$@!!
Bút sa gà chết :confused:
 
Link 1: http://www.mediafire.com/file/607zzmhyrvlxm21/Sudoku_tuhocvba.xlsm/file
Link 2: https://drive.google.com/file/d/1GSzBrLaatK363b9a3md42M0uq6rGvmwC/view?usp=sharing

Thuật toán được trình bày cặn kẽ, mình không chắc đó là lời giải đẹp, nhưng đó là lời giải dễ hiểu. Mọi người download file về sẽ thấy phần trình bày thuật toán ạ.

Cảm ơn bạn đã chia sẻ.
Tôi đã test nhưng giải thuật này cũng chưa giải được hết các bài sudoku :)
Bài sau thuộc mức "Chuyên gia" thì chương trình chào thua.

Screen Shot 2019-11-23 at 8.16.36 AM.png
 
Cảm ơn bạn đã chia sẻ.
Tôi đã test nhưng giải thuật này cũng chưa giải được hết các bài sudoku :)
Bài sau thuộc mức "Chuyên gia" thì chương trình chào thua.

View attachment 228879
Bạn thử hai bài cuối trong chủ đề này xem. Tôi nghĩ nếu sử dụng thuật toán vét cạn thì không có khái niệm khó dễ. Có đáp án là tìm được.
 
Theo bài #30, đã chốt hạ rồi, tới màn trao 'sách' thôi mừ. :(

1574473170850.png

Sao lại tới phần giải sudoku và tặng thêm tiết mục cố cài cắm quảng cáo mần chi?

Không lẽ 'Giải sudoku' đích thị là 'Một cuốn sách VBA' đó?

1574473328761.png
 
Mời anh chị em tham gia giải toán bằng VBA.
Thời gian: Ai trả lời sớm nhất, và trước ngày 10/11/2019 sẽ trúng thưởng.
Giải thưởng:
Một cuốn sách VBA.

Yêu cầu dùng VBA để chỉ ra được một đáp án đúng.
Nội dung:
Mất 3 tháng để dịch cái này.
Thành viên mình muốn gửi lời cảm ơn là @CHAOQUAY .
Tuy nhiên, tài liệu thì mọi người có thể cùng nhau xem, mục đích dịch không gì khác chính là chia sẻ.
Download:
Link 1: http://www.mediafire.com/file/607zzmhyrvlxm21/Sudoku_tuhocvba.xlsm/file
Link 2: https://drive.google.com/file/d/1GSzBrLaatK363b9a3md42M0uq6rGvmwC/view?usp=sharing
Thuật toán được trình bày cặn kẽ, mình không chắc đó là lời giải đẹp, nhưng đó là lời giải dễ hiểu. Mọi người download file về sẽ thấy phần trình bày thuật toán ạ.
rảnh thì viết code chơi vậy thôi bạn, giải thưởng của bạn nên gửi cho người khác.
 
Sách thưởng bạn nhận rồi tặng lại bạn khác, để mọi người không nghĩ ban tổ chức hứa lèo
Cám ơn bác nhắc nhở.
Báo cáo với các bác thành viên comments thớt này, tôi không có nhận được bất cứ gì riêng tư từ thành viên @khongtu19bk .
Bài trước tôi có trích dẫn bài viết 1 & bài 32 của @khongtu19bk là cũng có ý này.
Tin hay không và đánh giá chủ thớt thế nào là tùy các bác. Bản thân tôi giờ không đọc sách về VBA.

Thân chào!
 
Tưởng màn mẹ chồng trao 10 cây vàng cho con dâu hóa ra chỉ là màn trao sách VBA mà sao mọi người "hưng phấn" vậy?

Mà rõ khổ, con dâu nhận vàng giả thì bây giờ biết than với ai. À quên, người chiến thắng chỉ nhận được sách ảo thì bây giờ lại phải phân bua với mọi người. Sao chiến thắng mà lại phải khổ thế bạn CHAOQUAY ơi. :D
 
Tưởng màn mẹ chồng trao 10 cây vàng cho con dâu hóa ra chỉ là màn trao sách VBA mà sao mọi người "hưng phấn" vậy?

Mà rõ khổ, con dâu nhận vàng giả thì bây giờ biết than với ai. À quên, người chiến thắng chỉ nhận được sách ảo thì bây giờ lại phải phân bua với mọi người. Sao chiến thắng mà lại phải khổ thế bạn CHAOQUAY ơi. :D
Thấy người ta nói "làm chơi ăn thật", giờ vụ này thành ra "làm chơi ăn đạn".
Làm chơi mà còn vậy, nếu mà làm thật với thành viên này chắc ăn đại bác quá.
Thời buổi giờ một cái việc vặt con con mà cũng lừa đảo kể cũng mệt, thành viên này phải cho vào danh sách đen thôi bác ạ.
Cậu vàng đi thật rồi bác ạ.:cool:


---
Tiện thể báo cáo các bác là tôi xóa code bài trước.
---
Tệ thật, không làm sao xóa được bài cũ.
 
Lần chỉnh sửa cuối:
Cá nhân mình thì nghĩ sách điện tử cũng là sách, nếu chủ topic đã bỏ công 3 tháng ra để dịch thì cũng đáng để mọi người cảm ơn mà. Ngoài ra nếu bạn @khongtu19bk muốn quảng cáo diễn đàn mà không vi phạm nội quy GPE (cái này thì mình không rõ) thì cũng không sao.
 
Cá nhân mình thì nghĩ sách điện tử cũng là sách, nếu chủ topic đã bỏ công 3 tháng ra để dịch thì cũng đáng để mọi người cảm ơn mà. Ngoài ra nếu bạn @khongtu19bk muốn quảng cáo diễn đàn mà không vi phạm nội quy GPE (cái này thì mình không rõ) thì cũng không sao.
Thực chất tôi cho đây là trò quảng cáo rẻ tiền thôi bạn.
Còn cái file đính kèm, đây chỉ là vài đoạn code rối rắm chẳng đáng để đọc nên cũng không cần phải cảm ơn gì cả.
Nếu bạn xem file trên đây là sách thì có lẽ là bạn hơi dễ dãi.

---
Bài sudoku này mà mất 3 tháng để chỉ có dịch không thôi thì tôi cho là có lẽ thớt có vấn đề về trí tuệ.
 

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

Back
Top Bottom