Hoàng Huỳnh on Wordpress

Thử thách trí tuệ, chia sẻ thông tin về máy tính và heavy metal.

Archive for the ‘Thử thách trí tuệ’ Category

Đố vui kỳ này

with 2 comments

Osama bin Laden, Carrie Underwoodtôi có điểm gì chung?

Bạn nào kể được nhiều đáp án đúng nhất sẽ nhận được một món quà đặc biệt (nếu bạn cho là vậy): hỏi tôi 3 câu hỏi bất kỳ và tôi sẽ trả lời hết sức có thể.

me2

Written by Huỳnh Nhật Hoàng

8 December, 2008 at 4:04 am

Decode một mật mã nhỏ [1]

with 2 comments

Vừa rồi có một người nhờ tôi decode một đoạn code như thế này:

01010100 01101111 01101101 - 01101000 01110101 01101101 - 01100011 01110101 01100001 - 01110010 01101001 01100101 01101110 01100111 - 01100101 01101101.
01000101 01101101 - 01111001 01100101 01110101 - 01100001 01101110 01101000, - 01110110 01100001 - 01100101 01101101 - 01101101 01110101 01101110 01101110 - 01101110 01101111 01101001 - 01100011 01101000 01101111 - 01110100 01100001 01110100 - 01100011 01100001 - 01101101 01101111 01101001 - 01100010 01101001 01100101 01110100. - 01000101 01001101 - 01011001 01000101 01010101 - 01000001 01001110 01001000.

Đoạn code rõ ràng là mã nhị phân, hơn nữa các số lại được nhóm theo từng bộ 8 ký tự rất giống 8 bits của 1 byte. Những ký tự ‘-’, ‘ ‘, ‘.’, ‘,’ có lẽ là những dấu ngắt từ và ngắt câu bình thường. Quan sát một chút, tất cả các số nhị phân này đều bắt đầu bằng 0 nên tôi mạnh dạn mở ngay calulator (calc) lên chuyển thử mấy số nhị phân đầu tiên ra thập phân. Ah, số thứ 3 và số thứ 6 có cùng giá trị. Tôi copy tất cả dán vào notepad thử tìm xem còn những số nào giống nhau. Có khá nhiều. Vậy rất có thể văn bản được mã hóa theo khóa kiểu Caesar. Nếu đúng vậy thì thật mừng :) , vì cùng lắm thì tôi sẽ brute force attack.

Nhưng trước tiên phải chuyển hết văn bản sang số nhị phân đã. Tôi viết một đoạn code nhỏ để làm việc này cho nhanh.

#include <iostream>
#include <fstream>
using namespace std;

ifstream fin("code.txt");
ofstream fout("decode.txt");

int main() {
    char ch;
    int i,s,p;

    while (!fin.eof()) {
        fin.get(ch);
        if (ch=='0' || ch=='1') {
            s=0; p=128;
            if (ch=='1') s+=(ch-48)*p;
            for (i=0; i < 7; i++) {
                p/=2;
                fin.get(ch);
                if (ch=='1') s+=(ch-48)*p;
            }
            fout << s;
        }
        else
            fout << ch;
    }
    return 0;
}

Chạy thử, file decode.txt cho ta:

84 111 109 - 104 117 109 - 99 117 97 - 114 105 101 110 103 - 101 109.
69 109 - 121 101 117 - 97 110 104, - 118 97 - 101 109 - 109 117 110 110 - 110 111 105 - 99 104 111 - 116 97 116 - 99 97 - 109 111 105 - 98 105 101 116. - 69 77 - 89 69 85 - 65 78 72.

Hừm, rõ ràng là mã hóa Caesar, những “ký tự” như 109 và 117 lặp lại khá nhiều (đây hẳn là các nguyên âm). Cụm 101 109 lặp lại 2 lần. Nhìn vào cấu trúc mỗi tiếng có không quá 5 ký tự, tôi đoán đây là văn bản Tiếng Việt, có lẽ không dấu. Tuy nhiên đoạn 110 110 – 110 làm tôi khá lúng túng, trong văn bản Tiếng Việt không dấu không thể tìm từ nào 2 ký tự cuối giống nhau cả. Liệu đây có phải đây là văn bản Caesar? Chắn chắn rồi.Nhận thấy số hiệu của các ký tự khá lớn, tôi nghĩ chắc phải (1) chia lấy dư cho 26 (số chữ cái từ A-Z) hoặc (2) lùi tất cả về cùng một lượng nào đó. Cũng có khả năng xấu nhất là (3) phải tìm bảng đối chiếu từng số với mỗi ký tự, công việc này chắc chắn là khó khăn hơn nhiều. (Dù sao thì nhờ vào một bảng phân bố số lượng các chữ cái thì việc này cũng không đến nỗi quá mất thời gian.)

Nguồn: http://upload.wikimedia.org/wikipedia/commons/4/41/English-slf.png

Vậy là tôi tiếp tục với đoạn mã C++. Thử (1) chia cho 26 xem sao.

//fout << s;
fout << (char) (s%26 + 97);  // cộng thêm 97 vì 97 là vị thứ của chữ 'a' trong bảng mã ASCII

Kết quả:

g h f - a n f - v n t - k b x g z - x f.
r f - r x n - t g a, - o t - x f - f n g g - g h b - v a h - m t m - v t - f h b - u b x m. - r z - l r h - n a u.

Ký tự có vẻ loạn xạ ngầu. Không sao, thử dịch lên và xuống vài đơn vị xem sao. Thay vì xuất ra (char) (s%26 + 97) tôi thử ((s+1)%26 + 97) và ((s-1)%26+97). Vẫn không thành công. Có thể tiếp tục thử thêm nhiều trường hợp những tôi quyết định không làm nữa. Bởi vì cách làm này tương đương như cách sau.
Chuyển qua phương án sau. Tôi thấy trong code số 65 là nhỏ nhất, nên quyết định shift tất cả về 65 đơn vị. Thử xem :) .

//fout << s;
//fout << (char) (s%26);
fout << (char) (s-65+97); // dịch lui 65 đơn vị, cộng thêm 97 vì 97 là vị thứ của chữ 'a' trong bảng mã ASCII

Kết quả:

t  - ˆ •  - ƒ •  - ’ ‰ … Ž ‡ - … .
e  - ™ … • -  Ž ˆ, - –  - …  -  • Ž Ž - Ž  ‰ - ƒ ˆ  - ”  ” - ƒ  -   ‰ - ‚ ‰ … ”. - e m - y e u - a n h.

Mới đầu thì toàn là ký tự loạn xạ, nhưng thật bất ngờ, đoạn cuối có một văn bản đọc được: “-em – yeu – anh”.

Vậy là đã có chút manh mối, có thể tiếp tục với cách decode này. Tại sao lại chỉ có 1 phần văn bản được decoded?
(còn nữa.)

Written by Huỳnh Nhật Hoàng

29 November, 2007 at 12:12 am

Intelligence test — Tìm từ đầy đủ

without comments

Tại đây có 5 bộ test theo kiểu tìm từ đầy đủ, thật khó! Có chấm điểm trực tiếp ngay trên site.

Những phần càng về sau càng khó hơn, xin trích phần 1. (Số đầu tiên mỗi hàng là số thứ tự.)

0 24 H in a D -> 24 HOURS IN A DAY

1 26 L of the A

2 7 D of the W

3 7 W of the W

4 12 S of the Z

5 66 B of the B

6 52 C in a P (W J)

7 13 S in the U S F

8 18 H on a G C

9 39 B of the O T

10 5 T on a F

11 90 D in a R A

12 3 B M (S H T R)

13 32 is the T in D F at which W F

14 15 P in a R T

15 3 W on a T

16 100 C in a D

17 11 P in a F (S) T

18 12 M in a Y

19 13 is U F S

20 8 T on an O

21 29 D in F in a L Y

22 27 B in the N T

23 365 D in a Y

24 13 L in a B D

25 52 W in a Y

26 9 L of a C

27 60 M in an H

28 23 P of C in the H B

29 64 S on a C B

30 9 P in S A

31 6 B to an O in C

32 1000 Y in a M

33 15 M on a D M C

Written by Huỳnh Nhật Hoàng

23 November, 2007 at 12:20 am

Bài toán Monty Hall

with 3 comments

Tôi đã từng đề cập đến bài toán này trong các câu hỏi phỏng vấn.

Monty Hall làm MC của một trò chơi trên truyền hình. Có ba cái cửa chắn trước người chơi. Đằng sau một trong các cánh cửa là phần thưởng. Bạn chọn một trong ba cánh cửa. Monty Hall xem đằng sau hai cánh còn lại và mở một cửa không có phần thưởng.
Hỏi: bạn sẽ giữ chọn lựa cũ hay đổi sang cửa còn lại để lấy phần thưởng? Tại sao?

Đây rõ ràng là một vấn đề về xác suất, nhưng câu trả lời xác đáng không đơn giản. Hôm nay tôi xem được giải thích chi tiết của Ron Clarke (biết qua Stumble). (Bạn nên xem video trước khi đọc tiếp.)

Quả thật kết quả rất counter-intuitive! Thật khó tin. Nhiều người cũng không tin như vậy. Những người theo trực giác còn đưa ra một số tình huống ví dụ thực tế rất thú vị. Thực sự là tôi cũng thấy bối rối. Tôi đã dành thời gian suy nghĩ và rốt cuộc biết được họ sai ở đâu.

Từ kết quả của bài toán Monty Hall, một người đưa ra tình huống như thế này:

Một ngày bạn đi mua quà sinh nhật cho bạn gái, bạn đang băn khoăn không biết cô ấy thích nước hoa, dây chuyền hay lò vi sóng. Bạn quyết định đến tiệm mua nước hoa thì cô ấy gọi điện nói là bạn mua gì thì mua chứ đừng mua lò vi sóng. Vậy bạn có chuyển qua mua dây chuyền?

Một tình huống khác:

Trên đường cao tốc có 3 làn xe, bạn đang chạy ở làn giữa. Bạn nghe radio nói là phía trước có 2 làn đường đang kẹt xe, chỉ có 1 làn đường trống. Bạn biết rằng nếu có kẹt xe thì chắc chắn là đường bên trái sẽ bị kẹt. Bạn có chuyển làn đường để tránh kẹt xe?

Trong các tình huống này, có vẻ như xác suất thành công là 50/50 chứ không phải là 2/3. Bài toán Monty Hall sai?

Bạn sẽ mua nước hoa hay dây chuyền? Kỳ sau tôi sẽ trả lời.

Written by Huỳnh Nhật Hoàng

4 September, 2007 at 6:08 pm

GLAT

with 2 comments

[Mạn phép chủ nhân blog viết tiếp loạt bài về "Câu hỏi phỏng vấn" :D ]
Về các câu hỏi phỏng vấn độc chiêu và trí tuệ thì chắc không công ty nào bằng Microsoft và Google. Microsoft thì blog này đã nói nhiều rồi, ở bài này tôi xin giới thiệu một bộ test của Google: Google Labs Aptitude Test (GLAT). Một điều hay ho là bạn không cần phải đến đại bản doanh của Google để làm test mà chỉ cần tải nó về, làm và gửi đến Google Labs. Và theo như Google thì “Score high enough and we’ll be in touch”. Ở đây có ai muốn làm cho Google không nhỉ :D ?
(Nguồn hình từ Cruftbox.)

1

3

4

Thú thật là những câu hỏi này làm tôi “khó chịu” và thú vị hơn so với của Microsoft. Bác nào bí thì có thể tham khảo câu trả lời ở đây hay đây.

Written by Nam

29 August, 2007 at 8:48 am

Câu hỏi phỏng vấn (5)

with 2 comments

Các câu hỏi kỳ này rất lý thú: câu 1-4 liên quan đến lý thuyết toán, câu 5-6 dẫn đến nhiều hướng suy nghĩ hay, câu 7-9 là các thuật toán thú vị!

Nguồn: Blog KHMT

  1. Giả sử

    f(x) = x^{x^{x^{\vdots}}} = 2

    (mũ x đến vô cùng). Vậy x bằng bao nhiêu?
    Ví dụ, ta có thể lý luận như sau. Dễ thấy rằng f(x) = x^{f(x)}. Do đó 2 = x^2, hay x = \sqrt{2}. Nhưng nếu f(x) = 4 thì, theo lý luận trên, 4 = x^4 cũng dẫn đến x = \sqrt{2}. Sao lạ thế? f(\sqrt{2}) = 2 = 4 à?

  2. Gọi S là một tập 10 số khác nhau giữa 1 và 100. Chứng minh rằng S có hai tập con không giao nhau với tổng bằng nhau.
  3. Có một tập hợp các điểm trên mặt phẳng. Không phải tất cả cùng nằm trên một đường thẳng. Chứng minh rằng có một đường thẳng chỉ đi qua hai điểm mà thôi.
  4. Có một cái đồng hồ mà kim giờ và kim phút giống hệt nhau. Có bao nhiêu thời điểm trong ngày mà nhìn đồng hồ này ta không thể biết được là mấy giờ?
  5. An và Bình thay phiên nhau chọn các số nguyên từ 1 đến 9. Số đã chọn không được chọn lại. Ai chọn được 3 số có tổng bằng 15 trước là thắng. Ai sẽ thắng?
  6. Bạn có 300 lít xăng và một cái xe tải. Xa tải chỉ chở được tối đa 100 lít xăng. Bạn muốn chở xăng đến bán ở chợ xăng cách khởi điểm 100 cây số. Vấn đề là xe tải chạy rất tốn xăng, mỗi cây số tốn 1 lít. Bạn được phép chở xăng để dọc đường rồi sau đó quay lại lấy để chở đi tiếp. Hỏi: Làm thế nào để bán được nhiều xăng nhất? (Nhớ là nếu bạn để xăng đâu đó dọc đường rồi quay lại lấy thêm xăng thì đoạn quay lại cũng tốn xăng.)
  7. Có 30 sinh viên đứng thành vòng tròn. Họ nhắm mắt lại. Giáo sư Tèo đội cho mỗi người một cái mũ. Tổng cộng có 20 mũ đen, 10 mũ trắng. Sau đó các sinh viên được quyền mở mắt. Họ thấy các mũ khác nhưng không biết mình đang đội mũ màu gì. Họ không được quyền trao đổi thông tin.
    Giáo sư Tèo nói: “Ít nhất một trong số các bạn đang đội mũ đen“.
    Sau đó giáo sư Tèo ra lệnh: “Sinh viên nào đã xác định được rằng mũ mình đang đội là màu đen thì ngồi xuống“.
    Dĩ nhiên, chẳng ai ngồi xuống vì không ai biết mình đang đội mũ màu gì.
    Một phút sau, giáo sư Tèo lập lại lệnh trước: “Sinh viên nào đã xác định được rằng mũ mình đang đội là màu đen thì ngồi xuống“.
    Vẫn không ai di động. Giáo sư Tèo lập lại lệnh này, mỗi phút một lần, trong vòng 30 phút kế tiếp.
    Câu hỏi 1: cái gì xảy ra? Khi nào?
    Câu hỏi 2: khi giáo sư Tèo nói “Ít nhất một trong số các bạn đang đội mũ đen” thì các sinh viên có thêm thông tin gì không? Vì rõ ràng là mỗi sinh viên đều biết là có mũ đen trong đám.
  8. Ta có n mẫu máu. Mỗi mẫu máu thuộc về một trong m nhóm máu. (Ta không biết chính xác m là bao nhiêu, và m không nhất thiết phải là hằng số.) Có một thiết bị mà nếu bỏ vào đó hai giọt máu từ hai mẫu máu khác nhau thì thiết bị sẽ cho biết hai mẫu máu có cùng nhóm máu hay không. Nếu bỏ vào thiết bị này hơn hai giọt máu thì câu trả lời không đáng tin cậy nữa.
    Ta muốn trả lời câu hỏi sau đây: có hay không hơn n/2 mẫu máu thuộc về cùng một nhóm máu. Dùng thiết bị trên để thử, làm thế nào để trả lời câu hỏi này với tổng số ít nhất các phép thử? (Chỉ cần ít nhất về mặt asymptotic là được.) Ví dụ: cách dễ nhất là thử tất cả các cặp mẫu máu nhưng như vậy cần dùng đến \Theta(n^2) phép thử.
    Ngoài ra, ta cũng giả sử rằng mỗi mẫu máu có khá nhiều giọt.
  9. Có N anh cướp biển sắp bị xử chém. Họ xếp thành một hàng dài. Mỗi người đội một chiếc nón, xanh hoặc đỏ. Cướp biển số 1 chỉ thấy nón (và màu nón) của cướp biển số 2, 3, … N; cướp biển số 2 chỉ thấy nón của số 3, 4, … N; vân vân. Dĩ nhiên, vì thế mỗi cướp biển không biết màu nón mình đang đội và màu nón của các cướp biển đứng trước mình trong hàng.
    Đao phủ bắt đầu chém từng cướp biển một, từ số 1 đến số N. Tuy nhiên, trước khi chém mỗi cướp biển thì đao phủ cho hắn một cơ hội: đoán màu nón của mình. Nếu nói đúng màu nón thì được tha. Tất cả các cướp biển đều nghe thấy nhau trả lời, nhưng không biết ai bị chém ai không.
    Trước hôm ra xử bắn, bọn cướp biển họp lại và tìm một thuật toán trả lời để cho tổng số cướp biển bị chém là ít nhất trong trường hợp tệ nhất (in the worst case). Ví dụ: nếu cướp biển số 2k-1 trả lời bằng màu nón của cướp biển 2k, và cướp biển 2k lập lại câu trả lời này, thì tệ nhất cũng chỉ có một nửa số cướp biển bị chém.
    Nếu bạn là cướp biển thì bạn thiết kế thuật toán thế nào?

Written by Huỳnh Nhật Hoàng

5 August, 2007 at 3:51 pm

Câu hỏi phỏng vấn (4)

without comments

1. Tèo yêu hai cô gái Tấm và Cám. Cả ba sống trên cùng một con đường, Tèo ở đoạn giữa. Các xe buýt đi cả hai chiều của con đường, mỗi chiều một tiếng một lần có xe buýt đến (tốc độ đều). Sáng sáng Tèo ra bến xe buýt và đón xe nào đến trước thì đi về hướng ấy. Sau một thời gian dài thì Tèo đi thăm Tấm gấp ba lần đi thăm Cám.
Hỏi: sao lại thế được?
2. Có bao nhiêu số nguyên tố có dạng thập phân hoán chuyển giữa 0 và 1, bắt đầu và kết thúc bằng 1 (nghĩa là dạng 1010…101)?
3. Có một sợi dây cao su, một đầu buộc vào tường, đầu kia buộc vào một chiếc xe đi xa khỏi tường với tốc độ 100m/h. Giả sử sợi dây có độ giãn vô hạn và giãn đồng nhất (uniformly). Một con kiến bò trên sợi dây từ trong tường về hướng chiếc xe với tốc độ 1m/h. Con kiến có bao giờ đi tới đụng chiếc xe không? Tại sao?
4. Bốn con kiến nằm ở bốn đỉnh một hình vuông đơn vị. Mỗi con đi về hướng con kề nó theo chiều kim đồng hồ. Tốc độ các con kiến bằng nhau. Mỗi con đi được bao xa thì gặp đối tượng?
5. Tuyết bắt đầu rơi trước nửa đêm. Đến nửa đêm có một xe ủi tuyết đi ủi trên đường. Xe đi được một dặm trong 1 giờ đầu tiên, và 1/2 dặm trong giờ thứ hai. Tuyết bắt đầu rơi từ khi nào? (Giả sử xe ủi đi với tốc độ tỉ lệ nghịch với chiều cao của tuyết.)
6. 501 cặp vợ chồng đi dự một buổi tiệc. Đến cuối tiệc, Tấm (một cô vợ) bảo những người khác ghi lại tổng số người họ đã bắt tay trong tiệc. Các con số được ghi ra là: 0, 1, 2, …, 1000. Giả sử không có ai bắt tay vợ/chồng mình. Hỏi: Tấm bắt tay bao nhiêu người?
7. Cô giáo vào lớp học ngày đầu tiên của năm mới, thấy hai chú nhóc trông giống hệt nhau ngồi bàn đầu, tên là Trần văn Tí và Trần văn Tèo.

o “Các em sinh đôi hả“, cô giáo hỏi.

o “Dạ không phải“, Tí và Tèo đồng thanh trả lời.

Cô giáo kiểm tra học bạ thì thấy Tí và Tèo có cùng cha mẹ và được sinh ra cùng ngày. Làm thế nào có thể thế được?
8. Có 100 tờ tiền đô la xếp thành một hàng dài trên bàn. Tổng giá trị của chúng là một số lẻ đô la. An và Bình chơi trò chơi như sau: họ luân phiên nhau lấy một trong hai tờ tiền ở đầu hàng hoặc cuối hàng. An lấy trước. Ai lấy nhiều tiền hơn thì thắng. Ai chắc chắn sẽ thắng? Chiến lược thắng ra sao?
9. Có năm mươi cái đồng hồ để trên bàn. Các đồng hồ đều chạy tuyệt đối chính xác. Chứng minh rằng có một thời điểm mà tổng khoảng cách từ tâm bàn đến đỉnh các kim phút lớn hơn tổng khoảng cách từ tâm bàn đến tâm các đồng hồ.
9*. Có một cái đồng hồ mà kim giờ và kim phút giống hệt nhau. Có bao nhiêu thời điểm trong ngày mà nhìn đồng hồ này ta không thể biết được là mấy giờ?
10. If you are in a boat on a lake and you throw out a suitcase, Will the level of water increase in the lake?

Written by Huỳnh Nhật Hoàng

29 January, 2007 at 8:15 pm

Câu hỏi phỏng vấn (3)

with one comment

Kỳ này tôi xin giới thiệu các câu hỏi về mặt thuật toán và lập trình (C/C++), một số câu hỏi liên quan đến các vấn đề chung của tin học.

1. Cho một chuỗi ký tự s bao gồm nhiều từ. Viết một đoạn chương trình C đảo thứ tự các từ.
Ví dụ: với input là “this is a nice blog” thì output là “blog nice a is this“.

2. Cho hai dãy số đã xếp thứ tự tăng dần A và B, mỗi dãy có n phần tử. Xét tập hợp sau:
S = { A[i] + B[j] | 1 < = i, j <= n }.
Chú ý rằng S có thể có đến n^2 phần tử. Viết một chương trình in ra n số lớn nhất trong S. Chương trình phải chạy trong thời gian O(n).

3. Lệnh printf(“%d”); sẽ in ra cái gì, tại sao?

4. Trong các định nghĩa sau đây, cái gì là const?

const char* variable;
const* char variable;
char* const variable;

5. Given an array of size N in which every number is between 1 and N, determine if there are any duplicates in it. You are allowed to destroy the array if you like. Try both O(n) and O(n^2). [I ended up giving about 4 or 5 different solutions for this, each supposedly better than the others].

6. Give a fast way to multiply a number by 7.

7. How do we test most simply if an unsigned integer is a power of two? (Thử dùng một #DEFINE).

8. Cho một array A các ký tự trong một bộ ký tự nào đó, và một tập S của vài ký tự. Viết một function chạy trong thời gian tuyến tính, trả về sub-array nhỏ nhất của A chứa tất cả các ký tự trong S.

9. Cho một ma trận m hàng n cột. Các con số trên các hàng đều tăng dần từ trái sang phải, và trên các cột đều tăng dần từ trên xuống dưới. Viết một thủ tục tìm một số xem nó có trong ma trận không? Thời gian chạy là bao nhiêu? (Lưu ý: đây là phiên bản 2-D của binary search.)

9*. An cần gửi một nhẫn kim cương cho Bình. An và Bình mỗi đứa có vài cái khóa và chìa tương ứng (mỗi khóa một chìa). An có một cái hộp thừa lớn để bỏ nhẫn vào. Hộp có móc tròn khá lớn để tròng khóa vào. Làm thế nào để An gửi nhẫn cho Bình một cách bảo đảm?

10. An và Bình thay phiên nhau chọn các số nguyên từ 1 đến 9. Số đã chọn không được chọn lại. Ai chọn được 3 số có tổng bằng 15 trước là thắng. Ai sẽ thắng?

Written by Huỳnh Nhật Hoàng

29 January, 2007 at 7:51 pm

Câu hỏi phỏng vấn (2)

with 19 comments

10. (Bài toán Monty Hall) Monty Hall làm MC của một trò chơi trên truyền hình. Có ba cái cửa chắn trước người chơi. Đằng sau một trong các cánh cửa là phần thưởng. Bạn chọn một trong ba cánh cửa. Monty Hall xem đằng sau hai cánh còn lại và mở một cửa không có phần thưởng.
Hỏi: bạn sẽ giữ chọn lựa cũ hay đổi sang cửa còn lại để lấy phần thưởng? Tại sao?

11. Ba người thuê một phòng khách sạn. Họ đưa cho anh bảo vệ 30 đô. Anh bảo vệ đưa cho người quản lý, nhưng người quản lý trả lại 5 đô vì giá phòng chỉ có 25. Cầm 5 đô, không biết làm sao chia cho 3 người, anh bảo vệ cầm lấy 2 đô xem như tiền boa, còn lại đưa mỗi người 1 đô.
Mồi người bỏ ra 10 đô, lấy lại 1 đô, vị chi là mỗi người 9 đô – tổng cộng 27 đô. Anh bảo vệ lấy 2 đô nữa là 29 đô. Vậy còn 1 đô đi đâu?

12. An, Bình, Chung, Dung phải qua cầu khỉ vào buổi tối. Chỉ có một cái đèn pin. Tối đa là hai người đi cùng một lúc, và phải có đèn mới qua/lại được. Họ đi với tốc độ khác nhau. Nếu hai người cùng đi thì cả hai phải đi bằng tốc độ người đi chậm hơn.
An cần 1 phút.
Bình cần 2 phút.
Chung cần 5 phút.
Dung cần 10 phút.
Dĩ nhiên là phải có người cầm đèn đi ngược lại để đón người kế qua nếu cần!
Hỏi: ít nhất họ cần bao nhiêu phút để cả 4 qua được cầu?

13. Có ba hộp kẹo, một toàn kẹo dừa, một toàn sô cô la, hộp còn lại thì nửa này nửa nọ. Nhãn tất cả các hộp đều dán sai. Giả sử ta có một cục kẹo của một hộp, đoán tất cả các hộp xem là gì.

14. Cho biểu thức 101 – 102 = 1, di chuyển một chữ số hoặc ký hiệu (-, =) sao cho nó biến thành đẳng thức.

15. Cho một ly sữa và một ly cà fê cùng thể tích chất lỏng. Múc 1/10 ly cà fê đổ vào ly sữa, sau đó múc 1/10 ly sữa cà fê đổ vào ly cà fê. Giả sử cà fê và sữa hòa tan tuyệt đối.
Hỏi: sau khi đổ thì phần trăm cà fê và sữa ở hai ly ra sao?

16. Cho một hình vuông đơn vị, mô tả các điểm trong hình vuông này mà nằm gần tâm hơn cạnh ngoài.

17. Có bao nhiêu số 0 ở đằng cuối của biểu diễn thập phân của n! (n!=1.2.3.4…n)?

18. Khi ta soi gương, giơ tay trái lên thì hình nhân trong gương giơ tay phải của hắn. Tuy nhiên, khi ta cúi đầu thì hình nhân trong gương cũng cúi đầu. Tại sao gương “lật” trái/phải, nhưng không “lật” trên/dưới?

19. Có 9 túi đựng tiền, mỗi túi chứa ít nhất 100 đồng tiền, trong đó có một túi chứa toàn tiền giả. Các đồng tiền thật đều nặng 100 grams. Các đồng tiền giả đều nặng 90 grams. Cho một cái cân đĩa (1 đĩa và đồng hồ chỉ cân nặng), cân 1 lần để xác định túi nào chứa tiền giả?

20. Không dùng máy tính, số nào lớn hơn giữa e^ππ^e.

Written by Huỳnh Nhật Hoàng

15 December, 2006 at 4:49 pm

Câu hỏi phỏng vấn (1)

with 15 comments

Microsoft nổi tiếng là có các câu hỏi phỏng vấn nhân viên mới mang tính kỹ thuật theo dạng đố “mẹo” (đa số là về thuật toán hoặc lập trình C/C++). Có nhiều bộ sưu tập các câu hỏi dạng này đã từng được hỏi ở các cuộc phỏng vấn ở Microsoft. Gần đây Google cũng phỏng vấn theo kiểu tương tự. Mỗi câu trả lời chỉ được cho khoảng 5-10 phút suy nghĩ. Đôi khi người ta quan tâm đến quá trình suy nghĩ của bạn hơn là bản thân câu trả lời.

Nguồn: Blog KHMT.

1. Bụt, diêm vương, và Tèo đứng trước mặt bạn. Bụt và diêm vương cái gì cũng biết. Tèo thì cái biết cái không. Bụt luôn nói thật, diêm vương luôn nói dối. Với 3 câu hỏi có/không, mỗi câu chỉ hỏi một trong ba đối tượng, xác định ai là ai.

2. Cho hai sợi dây dài, làm bằng các vật liệu khác nhau, có mật độ vật chất khác nhau ở các điểm khác nhau của từng sợi. Cho biết mỗi sợi dây cháy trong đúng một giờ thì hết. Dùng hai sợi dây (và diêm) để đo 45 phút.

3. Những điểm nào trên quả địa cầu (giả sử là đúng hình cầu) có tính chất sau đây: đi về phía Nam 1km, sau đó về phía Tây 1km, sau đó về phía Bắc 1km thì quay lại điểm cũ.

4. Cho một mảnh giấy hình chữ nhật với một lỗ hổng hình chữ nhật ở giữa. Dùng dao cắt mảnh giấy một nhát như thế nào để có hai nửa có diện tích bằng nhau?

5. Có 500 cái cửa nằm dọc theo một hành lang đánh số từ 1 đến 500. Lúc đầu các cửa đều đóng. Có 500 người xếp hàng đi dọc hành lang. Anh thứ nhất mở tất cả các cửa; anh thứ hai chuyển trạng thái (mở thành đóng, đóng thành mở) các cửa 2, 4, 6, …; anh thứ ba chuyển trạng thái các cửa 3, 6, 9, …; cứ như vậy đến anh thứ 500 chuyển trạng thái cửa 500. Hỏi: cuối cùng có bao nhiêu cửa đóng?

6. Có hai căn phòng nằm cạnh nhau nhưng không thông nhau, và đứng bên này không thấy bên kia. Phòng 1 có ba cái đèn bóng tròn. Phòng 2 có ba công tắc của ba đèn ở phòng 1. Bạn là người lạ, được dẫn vào phòng 2 trước, được quyền nghịch ngợm tắt mở công tắc tùy ý. Sau đó bạn được sang phòng 1 kiểm tra đèn. Nghịch thế nào ở phòng 2 để biết công tắc nào tương ứng với đèn nào?

7. Tí ở tầng 3, Tèo ở tầng 33 của một chung cư. Một hôm hứng chí cả hai ra ban công hét lên cùng một lúc.
Hỏi: ai nghe thấy tiếng của người kia trước?

8*. Có 10 đồng tiền, thật có giả có. Cho một cái cân đĩa không có quả cân. Các đồng thật nặng bằng nhau, các đồng giả nặng bằng nhau và nhẹ hơn các đồng thật.
Hỏi: cân ba lần và chỉ ra các đồng giả.

9. Có hai xe tải đứng đối diện nhau, cách nhau 100km. Xe 1 có tốc độ 50km/h, xe 2 có tốc độ 30km/h, một con ruồi đậu trên mũi xe 1 bay qua bay lại giữa hai mũi xe với tốc độ 5000km/h. Cả hai xe và con ruồi đều xuất phát cùng một lúc.
Hỏi: đến khi con ruồi bị đè bẹp gí giữa hai xe (đụng nhau) thì con ruồi bay được bao xa?

Written by Huỳnh Nhật Hoàng

15 December, 2006 at 4:42 pm