Liệt kê toàn bộ các số điện thoại đẹp lên trang tính.

Liên hệ QC
Code bài 8

Tương tự bài trên, chỉ làm 3.125 dòng, sau đó:

Range("A3126:F15625").FormulaR1C1 = "=R[-3125]C+200000"
Range("G3126:J12500").FormulaR1C1 = "=R[-3125]C+200000"
Range("A3126:j15625") = Range("A3126:j15625").Value

Giảm còn 1/2 thời gian
Dùng đoạn code này (Test tại máy của em 0.375") các bác kiểm tra lại giúp
PHP:
Sub Bai8_03()
Dim Rng As Variant, iR As Long
Dim n2 As Long, n3 As Long, n4 As Long, n5 As Long, n6 As Long
[A1:J15625].Clear
Rng = [A1:A3125]
[m1] = Timer
With Application
    .DisplayAlerts = False
    .ScreenUpdating = False
    .Calculation = xlCalculationManual
For n2 = 1 To 9 Step 2
    For n3 = 1 To 9 Step 2
        For n4 = 0 To 9 Step 2
            For n5 = 0 To 9 Step 2
                For n6 = 0 To 9 Step 2
                    iR = iR + 1
                    Rng(iR, 1) = 1 & n2 & n3 & n4 & n5 & n6
Next: Next: Next: Next: Next: iR = 0
    [A1:A3125] = Rng
    [A3126:A15625].FormulaR1C1 = "=R[-3125]C+200000"
    [B1:B15625].FormulaR1C1 = "=RC1 - 900"
    [C1:C15625].FormulaR1C1 = "=RC1 - 990"
    [D1:D15625].FormulaR1C1 = "=RC1 - 9900"
    [E1:E15625].FormulaR1C1 = "=RC1 - 10890"
    [F1:F15625].FormulaR1C1 = "=RC1 - 9990"
    [G1:G12500].FormulaR1C1 = "=RC1 + 99110"
    [H1:H12500].FormulaR1C1 = "=RC1 + 100010"
    [I1:I12500].FormulaR1C1 = "=RC1 + 100100"
    [J1:J12500].FormulaR1C1 = "=RC1 + 90110"
    [A1:J15625] = [A1:J15625].Value
    [m2] = Timer: [m3] = [m2] - [m1]
    [m4] = [A1:J15625].SpecialCells(2, 1).Count
    .Calculation = xlCalculationAutomatic
    .ScreenUpdating = True
    .DisplayAlerts = True
End With
End Sub
 
Lần chỉnh sửa cuối:
V/v Bài 7

Đề bài 07:
Có bao nhiêu số chẵn gồm sáu chữ số khác nhau từng đôi một, trong đó chữ số đầu tiên là chữ số lẽ.

Không hiểu: Ý bác ChanhTQ@ muốn các số này có dạng như thế nào? khó hình dung quá

--------------------------------------------
Có phải là: số n = n1 - n2 - n3 - n4 - n5 - n6

  1. Số chẵn <=> n6 luôn là số chẵn <=> n6 = { 0, 2, 4, 6, 8 }
  2. Sáu chữ số khác nhau từng đôi một <=> trong 6 chữ số không có số nào giống nhau
  3. Số đầu tiên lẻ <=> n1 = { 1, 3, 5, 7, 9 }
 
Lần chỉnh sửa cuối:
Các bạn hỏi lại mình thì mình biết hỏi ai đây?

Hay ta chuyển nó sang đề bài khác đi:
Bài 7: Có bao nhiêu số có 6 cữ số, mà tổng của cặp hai chữ số từ trái qua phải là bằng nhau, nhưng các cặp này có trị không trùng nhau
Ví dụ: 192837, 453627, . . . . . , 174435, . . . 177144,. . .
 
3.240 số, 0,17199 giây. Chưa thử giảm vòng lặp.
PHP:
Sub LietKe()
Dim Arr As Variant
Range("M5") = Timer

With Application
        .DisplayAlerts = False
        .ScreenUpdating = False
        .Calculation = xlCalculationManual
Rowi = 0
Colj = 0
Arr = Range("A1:a3240")
[a1:a5000].ClearContents

For S1 = 2 To 97
    Couple1 = Format(S1, "00")
    Scong = Int(Couple1 / 10) + Couple1 Mod 10
    For S2 = 2 To 97
        Couple2 = Format(S2, "00")
        If Int(S2 / 10) + S2 Mod 10 = Scong And S2 <> S1 Then
             For S3 = 2 To 97
                Couple3 = Format(S3, "00")
                If Int(S3 / 10) + S3 Mod 10 = Scong And S3 <> S2 And S3 <> S1 Then
                    Rowi = IIf(Rowi + 1 = 50001, 1, Rowi + 1)
                    Colj = Colj + IIf(Rowi = 1, 1, 0)
                    So = Couple1 & Couple2 & Couple3
                    Arr(Rowi, Colj) = So
                End If
            Next
        End If
    Next
Next
Range("A1:a3240") = Arr
[a1:a3240].NumberFormat = "00 00 00"

    Range("M6") = Timer
        .Calculation = xlCalculationAutomatic
        .ScreenUpdating = True
        .DisplayAlerts = True
    End With
End Sub
 
Hình như PTM ngại dùng toán tử "\" !?!

PHP:
Scong = Int(Couple1 / 10) + Couple1 Mod 10
có thể thay bằng:
Mã:
[COLOR=#0000bb][COLOR=#0000bb][COLOR=#0000bb]Scong [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#0000bb]Couple1 \[/COLOR][COLOR=#0000bb]10[/COLOR][COLOR=#007700] + [/COLOR][COLOR=#0000bb]Couple1 Mod 10 [/COLOR][/COLOR]
[/COLOR]


& Xin rất cảm ơn mọi người đã & đang quan tâm đến Topic này!!
 
3.240 số, 0,17199 giây. Chưa thử giảm vòng lặp.
PHP:
Sub LietKe()
.........................................
For S1 = 2 To 97
    Couple1 = Format(S1, "00")
    Scong = Int(Couple1 / 10) + Couple1 Mod 10
    For S2 = 2 To 97
        Couple2 = Format(S2, "00")
        If Int(S2 / 10) + S2 Mod 10 = Scong And S2 <> S1 Then
             For S3 = 2 To 97
                Couple3 = Format(S3, "00")
                If Int(S3 / 10) + S3 Mod 10 = Scong And S3 <> S2 And S3 <> S1 Then
                    Rowi = IIf(Rowi + 1 = 50001, 1, Rowi + 1)
                    Colj = Colj + IIf(Rowi = 1, 1, 0)
                    So = Couple1 & Couple2 & Couple3
                    Arr(Rowi, Colj) = So
                End If
            Next
        End If
    Next
Next
.................
End Sub
Thay đoạn For ... Next như sau thấy code chạy nhanh hơn đáng kể (Từ 0.140625" còn 0.046875" )
Mã:
Tmp = [A1:J324]
[A1].CurrentRegion.ClearContents

For n1 = 2 To 97
    S1 = (n1 \ 10) + (n1 Mod 10)
    For n2 = 2 To 97
        If (n2 \ 10) + (n2 Mod 10) = S1 And n2 <> n1 Then
             For n3 = 2 To 97
                If (n3 \ 10) + (n3 Mod 10) = S1 And n3 <> n1 And n3 <> n2 Then
                    iR = IIf(iR + 1 = 325, 1, iR + 1)
                    iC = iC + IIf(iR = 1, 1, 0)
                    Tmp(iR, iC) = (n1 \ 10) & (n1 Mod 10) & (n2 \ 10) & (n2 Mod 10) & (n3 \ 10) & (n3 Mod 10)
                End If
            Next
        End If
    Next
Next
[A1:J324] = Tmp
[A1].CurrentRegion.NumberFormat = "00 00 00"
 
Lần chỉnh sửa cuối:
Bài số 7

Đề bài 07:
Có bao nhiêu số chẵn gồm sáu chữ số khác nhau từng đôi một, trong đó chữ số đầu tiên là chữ số lẽ.

Bạn hãy cho vài ví dụ theo cách hiểu của bạn. Xin cảm ơn các bạn nhiều, nhiều vô kể. . .


Bài tập 08:
Có bao nhiêu số chẵn gồm sáu chữ số, trong đó luôn chứa ba chữ số lẽ & chúng đều lớn hơn 99 999. Bạn giúp tôi liệt kê chúng lên trang tính.
Ví dụ: 111222, . . ., 121416, . . . . 987654, . .

Bổ sung & sửa đổi (Ngày 09/12/08):
Đề bài 07 này tạm thời chưa ai hiểu được, vậy nên đã chuyển sang giải quyết đề bài 07 thay thế tại #85; Mong các bạn gần xa tích cực ủng hộ.
Rất xin cảm ơn!!

Bài số 7 (cũ) tôi đã đưa ra 1 phương án, hix, không ai bình luận gì, không biết có đúng ý người ra đề không. Không có phản hồi. Rồi bây giờ lại kết luận là : tạm thời chưa ai hiểu được. Tôi không hiểu lắm về kết luận này.(?) +-+-+-+
Thân!
 
Bài số 7 (cũ) tôi đã đưa ra 1 phương án, hix, không ai bình luận gì, không biết có đúng ý người ra đề không. Không có phản hồi. Rồi bây giờ lại kết luận là : tạm thời chưa ai hiểu được. Tôi không hiểu lắm về kết luận này.(?) +-+-+-+
Thân!

Chẹp chẹp, cái này thì phải đề nghị chủ topic trả lời thôi

Hình như có tổng cộng 42.000 số thỏa mãn yêu cầu:
công thức tính là:
1. có 5 chữ số lẻ 1, 3, 5, 7, 9 đứng đầu mỗi nhóm số
2. có 5 chữ số chẵn 0, 2, 4, 6, 8 đứng cuối mỗi nhóm số
3. ở giữa có 4 số khác nhau với 2 vị trí đầu và cuối => có 8 số, chọn 4 trong 8 (tổ hợp chập 4 của 8: hàm Combin(8, 4) ) để tạo ra 1 hoán vị (4! - hàm Fact(4))
4. Tóm lại, số các số là: 5 * 5 * Fact(4) * Combin(8, 4) = 42.000

Không biết có gì sai sót không?

riêng boyxin nghĩ: Nếu thế này thì khác gì bài 4: thay đổi tý xíu
<=> bắt đầu = {3, 5} thay bằng {1, 3, 5, 7 , 9} + kết thúc = {0, 2, 4, 6, 8}
các chữ số khác nhau(vẫn giữ nguyên)
 
Bài số 7 (cũ) tôi đã đưa ra 1 phương án, hix, không ai bình luận gì, không biết có đúng ý người ra đề không. Không có phản hồi. Rồi bây giờ lại kết luận là : tạm thời chưa ai hiểu được. Tôi không hiểu lắm về kết luận này.(?)
Nói nặng ra thì bạn làm như trên là lạc đề; Đề bài bảy iêu cầu đưa ra ví dụ, là chuỗi các số thỏa & như bạn hiều theo đề bài mà!

Nói vui vậy thôi, bản thân mình chưa hiểu nó thì sao mà nói được, thiệt tình!

Nói theo 'Kiếm hiệp chuyện", Hồi sau sẽ quay lại vấn đề, nếu xét thấy cần hiểu thêm tiếng Việt!
 
n số đôi một khác nhau

Khi người ta nói: cho n số đôi một khác nhau thì có nghĩa là trong n số đó không có bất kỳ 1 cặp số nào giống nhau, hay nói gọn lại là: tất cả các số trong n số đó đều không giống nhau.
Với cách hiểu này, thì ở bài 7 tôi đã tính ra 42000 số có 6 chữ số đáp ứng yêu cầu và đã trình bày 1 code in ra 42000 số này. Nhưng sau đó thì không thấy giám khảo bình luận gì nên tôi mới thắc mắc không biết đáp án và cách nghĩ của mình có đúng không?

Thân!
 
Bài 09 đây, mại zô!

Dùng VBA để tìm các số mà các chữ cái dưới đây đang làm đại diện cho chúng:

WONDERFUL = (OODDF)^2
 
Đáp án là:
W O N D E R F U L = 5 2 3 8 1 4 7 6 9
O O D D F = 2 2 8 8 7
 
Đó chỉ là đáp số thôi; chưa phải là lời giải. . . .

Bạn nào chưa có macro nào tại Topic này hãy đưa ra lời giải xem sao!
 
Chỉnh sửa lần cuối bởi điều hành viên:
Dùng VBA để tìm các số mà các chữ cái dưới đây đang làm đại diện cho chúng:

WONDERFUL = (OODDF)^2

Với đoạn code sau: Trong chớp mắt đã tìm được duy nhất 1 giá trị như đáp án như hvl đã đưa ra:
Đáp án là:
W O N D E R F U L = 5 2 3 8 1 4 7 6 9
O O D D F = 2 2 8 8 7

PHP:
Code đã Hide
Trót post code lên, đọc lại thấy yêu cầu

Bạn nào chưa có macro nào tại Topic này hãy đưa ra lời giải xem sao!
Nên đành phải Hide, sợ bị Bác HYen17 mắng thì tội

Thế có Macro tại topic này thì không được trả lời à?
 
Lần chỉnh sửa cuối:
Bài 11: Hãy tìm các số thỏa điều kiện sau(dành cho tất cả):

Bằng VBA, hãy viết giúp tôi macro để tìm các số mà các ký tự dưới đây đang làm đại diện:
Mã:
[B][SIZE=3]     twenty[/SIZE][/B]
[B][SIZE=3]  twenty[/SIZE][/B]
[B][SIZE=4][SIZE=3]+[/SIZE]    [/SIZE][SIZE=3]twenty[/SIZE][/B]
[B][SIZE=3]    ten[/SIZE][/B]
[B][SIZE=3]    ten[/SIZE][/B]
[B][SIZE=3]------------------[/SIZE][/B]
[B][SIZE=3] eighty[/SIZE][/B]
 
Lần chỉnh sửa cuối:
Bằng VBA, hãy viết giúp tôi macro để tìm các số mà các ký tự dưới đây đang làm đại diện:
Mã:
[B][SIZE=3]     twenty[/SIZE][/B]
[B][SIZE=3]  twenty[/SIZE][/B]
[B][SIZE=4][SIZE=3]+[/SIZE]    [/SIZE][SIZE=3]twenty[/SIZE][/B]
[B][SIZE=3]    ten[/SIZE][/B]
[B][SIZE=3]    ten[/SIZE][/B]
[B][SIZE=3]------------------[/SIZE][/B]
[B][SIZE=3] eighty[/SIZE][/B]

Có phải là twenty * 3 + ten * 2 = eighty
để anh em còn biết đường
 
Đúng đó bạn & xin viết giúp các câu lệnh VBA;
Bằng cách giải khác, ta có:


i=7



:-=-\\/.@$@!^%:=\+
 
Lần chỉnh sửa cuối:
Bằng VBA, hãy viết giúp tôi macro để tìm các số mà các ký tự dưới đây đang làm đại diện:
Mã:
[B][SIZE=3]     twenty[/SIZE][/B]
[B][SIZE=3]  twenty[/SIZE][/B]
[B][SIZE=4][SIZE=3]+[/SIZE]    [/SIZE][SIZE=3]twenty[/SIZE][/B]
[B][SIZE=3]    ten[/SIZE][/B]
[B][SIZE=3]    ten[/SIZE][/B]
[B][SIZE=3]------------------[/SIZE][/B]
[B][SIZE=3] eighty[/SIZE][/B]

Kết quả duy nhất, nhưng code hơi củ chuối, đang tìm cách tồi ưu
twenty​
|
ten​
|
eighty​
|
123416​
|
134​
|
370516​
|
 
Lần chỉnh sửa cuối:
Đáp án là:

T W E N T Y = 1 2 3 4 1 6
T E N = 1 3 4
E I G H T Y = 3 7 0 5 1 6
 
Lần chỉnh sửa cuối:
twenty * 3 + ten * 2 = eighty

Đúng đó bạn & xin viết giúp các câu lệnh VBA;
Bằng cách giải khác, ta có:


i=7



:-=-\\/.@$@!^%:=\+
Các bác kiểm tra giúp xem có sai sót gì không
Mã:
Dim twenty As Long, ten As Long, eighty As Long
Dim nho_chuc As Long, nho_tram As Long, nho_nghin As Long, nho_van As Long
Dim t As Long, w As Long, e As Long, n As Long, y As Long, i As Long, g As Long, h As Long
Sub Bai11() 'twenty * 3 + ten * 2 = eighty
    [h1] = Timer: [a1].CurrentRegion.ClearContents
    ir = 1: [a1] = "twenty": [b1] = "ten": [c1] = "eighty"
For y = 0 To 9
    n = ((y \ 6) + 1) * 5 - y: nho_chuc = (y * 3 + n * 2) \ 10
    For te = 10 To 39
        t = te \ 10: e = te Mod 10: nho_tram = (t * 3 + e * 2 + nho_chuc) \ 10
        If t = (t * 3 + e * 2 + nho_chuc) Mod 10 Then
            h = (n * 3 + t * 2 + nho_tram) Mod 10: nho_nghin = (n * 3 + t * 2 + nho_tram) \ 10
            g = (e * 3 + nho_nghin) Mod 10: nho_van = (e * 3 + nho_nghin) \ 10
            For i = 0 To 9
                For w = 0 To 9
                If i = (w * 3 + nho_van) Mod 10 Then
    twenty = t & w & e & n & t & y: ten = t & e & n: eighty = e & i & g & h & t & y
If twenty * 3 + ten * 2 = eighty And _
    (t <> w) And (t <> e) And (t <> n) And (t <> y) And (t <> i) And (t <> g) And (t <> h) And _
    (w <> e) And (w <> n) And (w <> y) And (w <> i) And (w <> g) And (w <> h) And _
    (e <> n) And (e <> y) And (e <> i) And (e <> g) And (e <> h) And _
    (n <> i) And (n <> g) And (n <> h) And (y <> i) And (y <> g) And (y <> h) And _
    (i <> g) And (i <> h) And (g <> h) Then
    ir = ir + 1: Cells(ir, 1) = twenty: Cells(ir, 2) = ten: Cells(ir, 3) = eighty
End If: End If:  Next: Next: End If: Next: Next
    [h2] = Timer: [h3] = [h2] - [h1]
End Sub
 
Lần chỉnh sửa cuối:
Web KT
Back
Top Bottom