[Bài viết] Mẹo tìm kiếm thông tin trên Google

Một số mẹo tìm kiếm chuyên nghiệp trên Google, có thể bạn chưa biết!
Google là công cụ tìm kiếm phổ biến nhất hiện nay, là một phần gần như không thể thiếu trong cuộc sống công nghệ. Nhưng việc biết và tận dụng được thế mạnh của Google thì không phải ai cũng biết hoặc khai thác được. Trong bài viết dưới đây sẽ giới thiệu với các bạn một số mẹo, thủ thuật để tăng hiệu suất tìm kiếm để tận dụng hết thế mạnh của Google.

1. Tìm kiếm chính xác với từ hoặc cụm từ

Một công thức cơ bản và phổ biến nhất mà gần như ai cũng biết, đó là sử dụng dấu ngoặc kép để tìm chính xác thông tin cần thiết.
Ví dụ, nếu thực hiện yêu cầu tìm kiếm cụm từ "Lap trinh may tinh" thì bạn để cụm từ đó trong cắp " " : “lap trinh may tinh”

2. Loại trừ từ khóa

Bên cạnh đó, khi bạn thêm dấu trừ "-" vào phía trước 1 từ bất kỳ trong chuỗi thông tin tìm kiếm thì hệ thống sẽ loại bỏ tất cả các kết quả có chứa từ đó.
Ví dụ: nếu muốn tìm kiếm các trang cung cấp thông tin về Linux distribution mà không có liên quan gì đến Ubuntu thì các bạn nhập từ khóa như sau: linux distributions -ubuntu

3. Tìm kiếm trên một website nhất định

Toán tử site: cho phép người dùng tìm toàn bộ thông tin cần thiết trên 1 trang cố định nào đó.
Ví dụ: Bạn muốn tìm thông tin về C++ trên laptrinhmaytinh.net thì các bạn hãy gõ từ khóa như sau:

site:laptrinhmaytinh.net  C++

Bên cạnh đó, chúng ta cũng có thể áp dụng cách này trên 1 domain bất kỳ. Chẳng hạn khi cần tìm các bài viết, đường dẫn có chất lượng thì nên chú tâm vào những tên miền có đuôi edu, như site:.edu để “đẩy” các kết quả từ các trang edu đó lên đầu.

4. Các từ ngữ có liên quan

Ngược lại với ý kiến ở phần 2, các bạn hãy sử dụng dấu ~ để tìm tất cả các từ ngữ có liên quan đến từ khóa nhập vào, bên cạnh chính bản thân keyword đó. 
Ví dụ: khi gõ ~thanhdo thì chúng ta sẽ nhận được rất nhiều kết quả với nhiều từ có liên quan với từ thanhdo:

Theo như trên thì Đại học thành đô chính là từ “gần gũi” nhất với thanhdo, tiếp theo là Tư vấn, và sau đó là sieu thi.

5. Ký tự đặc biệt

Dấu hoa thị được sử dụng trong trường hợp người dùng muốn tìm kiếm nhiều thông tin trùng khớp với bất kỳ từ khóa nào.
Ví dụ: nếu muốn biết Google đã bỏ ra bao nhiêu tiền trong việc mua và bán trong thời gian qua, các bạn hãy gõ: “ lap trinh may tinh * for * Java”

6. Giới hạn trong khoảng thời gian
Một thủ thuật nữa rất hay mà lại ít người để ý tới, đó là tìm trong 1 khoảng thời gian có giới hạn. Ví dụ: nếu muốn tìm kiếm dữ liệu, thông tin về Lap trinh may tinh từ năm 2013 cho tới 2014 thì nhập nội dung từ khóa như sau:  lap trinh may tinh 2013 .. 2014

7. Tìm theo định dạng file

Thông số filetype: cho phép người dùng dễ dàng tìm kiếm bất kỳ định dạng tài liệu nào. Chẳng hạn, nếu muốn tìm tất cả các file PDF có tên Microsoft ASP.NET 4 Step by Step thì gõ:

filetype: pdf Microsoft ASP.NET 4 Step by Step

8. Sử dụng OR

Tham số OR có tác dụng tìm kiếm bất kỳ kết quả nào có liên quan tới 1 trong 2 thuật ngữ trước và sau OR. Ví dụ như sau: Laptrinhmaytinh OR Programming


9. Định nghĩa theo từ

Rất đơn giản và dễ dàng, nếu muốn tìm nghĩa của 1 từ nào đó thì các bạn chỉ cần gõ từ khóa theo cú pháp chung như sau: define:programming
10. Sử dụng AND

Tham số AND và + có tác dụng tìm kiếm bất kỳ kết quả nào có liên quan tới cả 2 thuật ngữ. Ví dụ như sau: "Laptrinhmaytinh" AND "Programming" hoặc
"Laptrinhmaytinh" + "Programming"


11. Tính toán

Thay vì việc phải dùng Google để tìm kiếm những tiện ích trực tuyến, ứng dụng hỗ trợ để thực hiện phép tính, thì chúng ta chỉ cần sử dụng những ký tự và công thức toán học thông thường ngay trên Google. Ví dụ như sau: (4 + 2) * (6 / 3)



Hoặc vẽ đồ thị với: (sqrt(cos(x))*cos(400*x)+sqrt(abs(x))-0.4)*(4-x*x) ^0.1

12. Chuyển đổi đơn vị

Tương tự như trên, đây là 1 trong nhiều chức năng thú vị nhất của Google tính cho tới thời điểm hiện tại, đó là chuyển đổi giữa nhiều đơn vị khác nhau. Chỉ cần nhập nội dung tương ứng dựa theo công thức: “X [units] in [units]” hoặc “X [units] to [units]” hoặc “X [units] –> [units]”

Ví dụ: 1 mile to km

Ngoài ra, Google còn rất nhiều tính năng tìm kiếm nâng cao nữa, như tìm kiềm với ngôn ngữ, với lãnh thổ, với định dạng,...

Chúc các bạn luôn tìm được những thứ mình muốn tìm !
 

Tham khảo Internet

[Algorithm] Thuật toán leo đồi (Hill Climbing Search)



Giơi thiệu Thuật toán leo đồi (Hill Climbing Search).


Trước hết, ta nghiên cứu bài toán sau: Trò chơi n2-1 số (n thuộc N, n > 1).

Bài toán:

 Có n2-1 số mang các giá trị từ 1 tới n2-1 được sắp xếp vào một lưới các ô vuông kích thước n x n. Mỗi số đó được gọi là một quân cờ và lưới ô đó được gọi là bàn cờ. Có một vị trí của bàn cờ bỏ trống. Mỗi lần di chuyển quân, người chơi được phép chuyển một quân ở vị trí ô tiếp giáp cạnh với ô trống vào ô trống.

Yêucầu

Từ một trạng thái ban đầu (sự sắp xếp ban đầu của các quân trên bàn cờ), hãy thực hiện các nước đi hợp lệ để thu được trạng thái kết thúc (trạng thái đích cần đạt được).

Vídụ: với trò chơi 8 số ta minh họa trạng thái ban đầu và trạng thái kết thúc qua các hình vẽ dưới đây:

Hình 1


Để giải bài toán này, chúng ta sẽ nghĩ ngay tới việc xây dựng một cây tìm kiếm mà gốc của cây tương ứng với trạng thái xuất phát của bàn cờ. Các đỉnh khác của cây tương ứng với các trạng thái thu được do việc thực hiện các nước đi hợp lệ (các nước đi được phép thực hiện là: lên trên, xuống dưới, sang trái và sang phải). Với ví dụ trên, ta có cây tìm kiếm sau:
Hình 2

 Tiếp đó, ta chỉ việc áp dụng các thuật toán thông dụng như: thuật toán tìm kiếm theo chiều rộng hoặc thuật toán tìm kiếm theo chiều sâu để tìm ra lời giải.

Ý tưởng thuật toán:

Việc suy nghĩ như trên xem ra có tính khả thi (đơn giản, dễ cài đặt), tuy nhiên, dễ nhận thấy rằng nếu số n lớn hơn, ta sẽ phải phát triển một số quá lớn các trạng thái trước khi phát hiện ra trạng thái đích. Những hạn chế về mặt thời gian và dung lượng bộ nhớ không cho phépthực hiện điều đó.

Trong thực tế, có nhiều bài toán mà số các trạng thái của nó là rất lớn (như cờ vua, cờ tướng...), thì việc giải bài toán chỉ có thể thực hiện nếu bằng một cách nào đó ta lược bỏ những trạng thái thừa, không cần thiết nhằm giảm số lượng trạng thái cần phát triển. Để làm được điều đó, phải sử dụng khéo léo các thông tin phản hồi nảy sinh trong quá trình tìm kiếm (các thông tin này còn gọi là thông tin cảm tính: HeuristicInformation). Cách làm này được đưa ra nhằm mục đích lựa chọn được hướng tìm kiếm tốt nhất tại mỗi bước theo nghĩa: hướng đi đó nhanh dẫn tới trạng thái đích nhất và nhằm giảm công sức tìm kiếm.


Thuật toán leo đồi:

Thuật toán tìm kiếm leo đồi đã đáp ứng được yêu cầu trên. Nội dung thuật toán được mô tả như sau:

Bước 1: Nếu trạng thái đầu trùngvới trạng thái đích thì dừng ngay, ngược lại thì chuyển sang bước 2.

Bước 2: Sử dụng các quy tắc biến đổi để tạo ra 1 tập hợp các trạng thái từ trạng thái hiện thời (trong bài toán trên ta có 4 quy tắc biến đổi tương ứngvới 4 phép di chuyển quân).

Bước 3: Với mỗi trạng thái trong tập hợp vừa tạo ra kiểm tra xem đó có phải là trạng thái đích hay không? Nếu phải thì ngừng việc tìm kiếm, nếu không phải thì ta kiểm tra xem trạng thái mới này có tốt hơn (gần trạng thái đích hơn) so với trạng thái đã có hay không? Nếu quả thật như vậy thì ghi nhận trạng thái này, ngược lại thì bỏ qua.

Bước 4: Trong các trạng thái được tạo ra (sau khi thực hiện các thao tác ở bước 3), ta ưu tiên phát triển trạngthái tốt nhất (trạng thái tốt nhất là trạng thái có tiềm năng dẫn tới đích nhanh nhất).
Bước này nhằm mục đích chuyển hướng tìm kiếm lời giải nhanh đến đích nhất.

Bước 5: Lặp lại từ bước 2.

Đến đây bạn có thể nhận thấy thuật toán tìm kiếm leo đồi thực chất là thuật toán tìm kiếm theo chiều sâu, song tại mỗi bước ta sẽ ưu tiên chọn một trạng thái có hứa hẹn nhanh tới đích nhất để phát triển trước. Vấn đề quan trọng là ở chỗ biết khai thác khéo léo thông tin phản hồi để xác định hướng đi tiếp và đẩy nhanh quá trình tìm kiếm.Thông thường ta gắn mỗi trạng thái của bài toán với một số đo (1 hàm đánh giá) nào đó nhằm đánh giá mức độ gần đích của nó.

Như vậy: Nếu trạng thái hiện thời là u, theo bước 4 của thuật toán trên thì trạng thái v sẽ được phát triển tiếp theo nếu vẻ kề(u) và hàm đánh giá của v đạt giá trị max (hoặc min).


Phần tiếp theo sẽ trình bày cụ thể thuật toán để giải bài toán trên. Trong bài toán này, ta sẽ sử dụng hàm đánh giá ký hiệu là h với ý nghĩa: h(u) cho biết số cácchữ số trong trạng thái u không trùng với vị trí của nó trong trạng thái đích.Trạng thái có tiềm năng dẫn tới đích nhanh nhất (được ưu tiên phát triển trước)là trạng thái có hàm đánh giá h đạt giá trị min.
Thuật toán cho trò chơi n2-1 số được mô tả như sau :
Hình 3


Algorithm:

Input: Trạng thái ban đầu u0và trạng thái đích ut

BEGIN

1. P:={u0} ; { P để lưu các trạng thái chờ phát triển được tổ chức dưới dạng Stack }

   Q:=Φ ;  { để lưu các trạng thái đãphát triển được tổ chức dưới dạng hàng đợi Queue }

   P:= Φ ; { P để lưu tạm thời các trạngthái kề với trạng thái đang xét }

   found:=false;

2. While (P # y) and (not found) do

   2.1. Loại bỏ trạng thái u ở đỉnh stack P và đặt nó vào hàng đợi Q:
          Pop(P, u);
          Add(u, Q);

2.2. if u=ut then found:= true
       else
           For v kề (u) do
              if (v thuộc P U Q) and (h(v) <= max { h(w)| w thuộc P U Q } then
               Begin
                  father (v):=u;
                  Add (v, P);
              End;

        if P <> f then
         Begin
           - Sắp xếp các trạng thái trong P theotrật tự tăng của hàm h;
           - Chuyển các trạng thái trong P vàođỉnh của stack P sao cho trạng thái có giá trị hàm h nhỏ nhất ở đỉnh của P;

         End;

END.

Output:  
- Nếu found = false thì bài toán không có lời giải.

- Nếu found = true thì lời giải là đường đi từ u0 tới ut được xác định bằng cách sử dụng hàm father.


Chú ý: Sau khi chuyển các trạng thái từ P vào P thì P= f



 Hình 4

h(v1)  ≤  h(v2)  ≤ .... ≤  h(vk)

Với ví dụ trên, cây tìm kiếm được hình thành bởi tìm kiếm leo đồi có các trạng thái được phát triển như hình vẽ dưới (nét đậm thể hiện hướng tìm kiếm), các số ghi cạnh mỗi đỉnh là giá trị của hàm h tại đỉnh đó.

Thuật toán này có tên gọi là thuật toán tìm kiếm leo đồi, vì tư tưởng của nó tương tự như trường hợp: Một người ở vị trí chân đồi u0 và muốn leo lên đỉnh đồi tại vị trí ut. Anh ta chọn một đỉnh cao nhất trong số các đỉnh mà anh ta có thể đến được (từ vị trí đang đứng) để leo lên, tại vị trí này anh ta lại chọn một đỉnh cao nhất như bước trước để leo lên. Quá trình cứ lặp lại như vậy cho đến khi tới được đích ut.

Nhận xét: Thuật toán này đơn giản, dễ cài đặt và tỏ ra có nhiều hiệu quả. Bạn đọc có thể tự lập trình để giải bài toán trên, kết quả khá tuyệt vời! Tuy nhiên, thuật toán này không phù hợp với các bài toán có giá trị hàm đánh giá đột nhiên thay đổi khi đến ngưỡng nào đó. Một số hiện tượng sẽ nảy sinh trong quá trình tìm kiếm được ghi nhận như sau:

*Có cực đại địa phương, là nơi đạt được lời giải tốt hơn các lời giải lân cận, nhưng chưa phải là lời giải tốt trên tổng thể. Như vậy phải có biện pháp ghi nhớ lại nhiều đường đi đề phòng khi cần đi lại đường cũ.

*Có vùng lời giải như cao nguyên bằng phẳng, không thể xác định được ngay hướng nào tốt hơn nếu chỉ so sánh vùng lân cận (các trạng thái của bài toán có hàm đánh giá xấp xỉ bằng nhau). Khi đó cần có bước nhảy xa để thoát khỏi vùng bằng phẳng.

đỉnh hình chóp, đó là trạng thái được lựa chọn tốt hơn vùng lân cận nhưng không vượt qua được theo bất kỳ hướng nào. Để xử lý hiện tượng này, nên chuyển theo đồng thời vài hướng.

Cực đại địa phương Cao nguyên Chóp

Minh họa cực trị địa phương khi giải bài toán bằng thuật toán leo đồi.

Như vậy: Thuật toán này chỉ làphương pháp giải quyết cục bộ, để tăng tính tối ưu, có thể sử dụng phối hợp nóvới các thuật toán tìm kiếm khác.

 Hình 5


Tham khảo 123doc



[Bài viết] Những nghề rất được quan tâm trong lĩnh vực Công nghệ thông tin nóng bỏng

Những nghề rất được quan tâm trong lĩnh vực nóng bỏng này


1. Lập trình viên

- Mô tả khái quát: 

Là những người "viết" nên các chương trình, phần mềm ứng dụng cho việc điều khiển các hệ thống máy móc cơ khí, xử lí các dữ liệu... như hệ thống điều khiển máy hàn, máy tiện, điều khiển camera, các phần mềm xử lý văn bản, hình ảnh, âm thanh...
- Yêu cầu:

Bạn cần có những kĩ năng về các kĩ thuật Activex X, C#, Visual Basic, .Net hay Java... Thêm vào đó, bạn cũng cần phải có khả năng giải quyết và phân tích vấn đề, khả năng giao tiếp, làm việc theo nhóm cũng như làm việc độc lập.


2. Thiết kế website:

- Mô tả khái quát:
Công việc của chuyên viên thiết kế web là thiết kế website sao cho thân thiện, dễ dàng sử dụng, nhìn bắt mắt với các nút bấm, các banner, màu sắc các liên kết, độ đậm, nhạt của kiểu chữ...
- Yêu cầu:
Được đào tạo chương trình thiết kế, có năng khiếu mỹ thuật, có khả năng sử dụng thành thạo các phần mềm đồ họa như Photoshop, Corel Draw, Flash, Dreamwave,... và có thêm kiến thức về lập trình web.


3. Phát triển web

- Mô tả khái quát:
Tập hợp các yêu cầu kinh doanh, phát triển các chi tiết kĩ thuật cho các phần mềm ứng dụng cho web và giúp đỡ các chuyên gia quản lý trang web về kĩ thuật.
- Yêu cầu:

Nắm rõ về Internet, các chương trình ứng dụng cho web cũng như chiến lược kinh doanh thương mại điện tử. Các kĩ năng về .Net, C#, Java cũng sẽ được đề cao.


4. Tester (Kiểm thử phần mềm)

- Mô tả khái quát: 

Là những người chuyên thử nghiệm, kiểm tra để tìm ra lỗi của các ứng dụng, phần mềm do các lập trình viên "viết" ra. Đây là một vị trí rất quan trọng trong một dự án viết ứng dụng, phần mềm bởi lẽ họ sẽ hoàn thiện các ứng dụng đó.
- Yêu cầu:

Để làm được công việc này, bạn cũng cần phải được đào tạo bài bản trong các trường đại học và nắm chắc các kỹ thuật như một lập trình viên. Công việc khá nhẹ nhàng và phù hợp với nữ giới.


5. Xây dựng và Quản lý dữ liệu

- Mô tả khái quát: 

Thiết kế các chương trình ứng dụng ví dụ giao diện sử dụng, giao dịch giữa khách/chủ trong toàn mạng và các bộ phần cấu thành hệ thống. Bạn cần cung cấp thông số kĩ thuật cho đội phát triển phần mềm, thiết kế, kiểm tra việc mã hoá.
- Yêu cầu:

Cần có kiến thức về kĩ thuật, lên kế hoạch, điều phối và khả năng giao tiếp. Những kiến thức về DB2, các sản phẩm dữ liệu Orracle, XML, C+++ sẽ gây ấn tượng đến các nhà tuyển dụng.


6. Quản lý dự án
- Mô tả khái quát: 

Quản lý toàn bộ việc điều phối các dự án phát triển phần mềm ứng dựng công nghệ thông tin, từ khi lên kế hoạch đến quá trình thực hiện. Công việc cũng đòi hỏi lập mục tiêu dự án, các vấn đề được ưu tiên, ngân sách, thời hạn hoàn thành, lên kế hoạch cũng như đàm phán với những người giữ tiền đặt cọc dự án.
- Yêu cầu:

Yêu cầu tối thiểu bạn cần phải có là bằng cử nhân về lĩnh vực công nghệ thông tin, bằng quản lý kinh doanh, kiến thức cơ bản về các chương trình ứng dụng. Bên cạnh đó, bạn cũng cần phải có kinh nghiệm trong việc quản lý dự án, sự giao tiếp đối với các thành viên trong đội nhóm...


7. Quản trị mạng

- Mô tả khái quát: 

Công việc của các chuyên viên quản trị và an ninh mạng là thiết kế, vận hành và theo dõi sát xao các hệ thống mạng an toàn và bảo mật, nắm được các kỹ thuật xâm nhập và các biện pháp phòng, chống tấn công của các hacker (tin tặc) hiệu quả. Thiết kế và duy trì hệ thống tường lửa hay nhận dạng và sửa chữa các lỗ hổng trên hệ thống mạng của đơn vị, triển khai và giám sát hệ thống phát hiện tấn công...
- Yêu cầu:

Một chuyên viên an ninh mạng giỏi nghề thường lên kế hoạch bất ngờ tạo độ an toàn vững chắc nhằm ngăn chặn, phát hiện sự xâm nhập trái phép. Điều này đòi hỏi tư duy nhanh nhạy và sáng tạo rất cao.


8. Phát triển game (GD)

- Mô tả khái quát: 

GD không chỉ là vẽ đồ họa 2D, 3D mà còn làm quản lý dự án, phát triển ý tưởng, thiết kế kịch bản trò chơi, màn chơi, lập trình và người chuyên chơi để tìm lỗi của game. Bởi vậy, đây là một công việc rất giàu tính sáng tạo chứ không hề khô cứng như nhiều người lầm tưởng về những nghề liên quan đến máy móc.
- Yêu cầu:

Đối với những GD chuyên thiết kế hình ảnh thì tư duy mỹ thuật là một điều rất quan trọng bởi lẽ hình ảnh của game đẹp hay xấu là phụ thuộc vào những chuyên viên thiết kế này. Ngoài ra, tư duy logic rất cần thiết cho những GD chuyên lập trình.


9. Kỹ thuật máy tính

- Mô tả khái quát: 

Nghiên cứu và thiết kế các bộ phận chức năng của máy tính, tham gia làm việc trong các dự án sản xuất các thiết bị máy tính cho các tập đoàn lớn trên thế giới như: Intel, IBM, Samsung, Nidec...
- Yêu cầu:

Nắm vững các nguyên lý cơ bản và thực tiễn trong lĩnh vực kỹ thuật máy tính, đặc biệt là lĩnh vực thiết kế vi mạch.


10. SEO

- Mô tả khái quát: 

SEO là viết tắt tiếng Anh của thuật ngữ Search Engine Optimization (Tối ưu hóa công cụ tìm kiếm), là một quá trình làm nội dung trang web dễ dàng được các công cụ tìm kiếm tìm thấy, và hiển thị. Công việc tối ưu hoá website có thể hiểu cách khác là một tập hợp các phương pháp nhằm nâng cao thứ hạng của một website trong các trang kết quả của các công cụ tìm kiếm và có thể được coi là một tiểu lĩnh vực của tiếp thị qua công cụ tìm kiếm
- Yêu cầu:

Có những kiến thức về lập trình, thiết kế, quản trị.


Ngoài ra còn nhiều nghề liên quan gần hoặc xa đến lĩnh vực CNTT nữa. 

Chúc các bạn chọn được nghề nghiệp phù hợp với bản thân nhất.

Tham khảo: thanhdo.edu.vn