Skip to main content

Posts

Showing posts with the label Algorithm

[CodeGolf] Dài nhất và ngắn nhất

Đã có code Golang, các ngôn ngữ khác lại chờ bạn đóng góp :D  Trong cuộc sống, người ta vẫn luôn quan tâm đến những cái nhất, nhất, nhất chứ không phải thứ 2 hay thứ 10. WorldCup cứ 4 năm diễn ra, nóng bỏng là thế, nhưng vẫn có đội đề xuất bỏ hẳn trận đá tranh giải 3-4 vì người ta xem cũng chỉ quan tâm đội được nhất thôi. Và để được nhớ mãi, hãy là dài nhất, hoặc ngắn nhất chứ đừng là dạng vừa: Cho một danh sách các loài, tìm con nào tên dài nhất và ngắn nhất: In [6]: xs = ['chim', 'bo', 'ga', 'vit', 'voi', 'buom', 'than lan']

[algorithm] sleep sort

UPDATED : đã update phiên bản viết bằng golang ở cuối bài. Ngày hôm nay,  cộng đồng hackernews điên đảo vì một thuật toán sắp xếp được phát minh từ năm 2011 do một người ẩn danh đưa ra với tên gọi "sleep sort" . Nguyên văn implement trên bash như sau: #!/bin/bash function f () {     sleep "$1"     echo "$1" } while [ - n "$1" ] do     f "$1" &     shift done wait example usage: . /sleepsort.bash 5 3 6 3 6 3 1 4 7 Chỉ cần google là bạn sẽ tìm thấy nguồn, bài viết này sẽ không link đến trang mà thuật toán này được công bố, đơn giản vì không thích. Nếu lười gõ google, bạn có thể bấm vào đây .

[Programming] phê ROT13

Lâu rồi cảm giác phê ấy mới trở lại ~^.^~ Giống như mỗi lần vắt óc giải một bài ProjectEuler và bấm vào nút check kết quả thấy nó màu xanh :3 Hôm nay là ROT13, thật ra nó chẳng có gì phức tạp cả, nhưng sau khi implement được ROT13 sử dụng một ngôn ngữ mới thì lại phải phê. Tại sao lại là ROT13 - 13 - 13 - 13 ? ROT13 (" rotate by 13 places") là một phương pháp "mã hoá" đơn giản bằng việc thay thế 1 chữ cái bằng chữ cách nó 13 chữ cái trong bảng chữ cái tiếng Anh. Lý do có số 13 (mà không phải 14 hay 15 cho trăng tròn) bởi bảng chữ cái tiếng Anh gồm 26 chữ, và nhờ vậy mà để giải mã các ký tự đã bị đảo đi, người ta chỉ cần dịch nó đi tiếp 13 chữ là thu được kết quả ban đầu. Tưởng tượng bảng chữ cái là một vòng tròn như sau: ... a b c ... x y z a b c ... Hoặc tưởng tượng khác đi một chút, hãy chia bảng chữ cái làm đôi và xếp cạnh nhau, ta có: a  b  c  d  e  f  g  h  i  j  k  l  m n  o  p  q  r ...

[Cập nhật liên tục] Các thư viện JS hay ho

 JavaScript (JS) là ngôn ngữ lập trình duy nhất ở client side (đã có mặt cả ở server side), nên hầu như tất cả các website đều cần-dùng đến nó. Với 1 Web developer yêu cầu cơ bản là bạn phải biết về JS Familug xin list 1 số các thư viện JS hay ho mà chúng tôi sưu tập, tìm kiếm được để giúp website của bạn thêm phần sinh động, nâng cao tính tương tác với người dùng. jQuery, Mootool và đồng bọn không được nhắc đến trong này vì quá khủng rồi

[Algo] Sieve of Eratosthenes

1.  Sieve of Eratosthenes Sieve of Eratosthenes là một giải thuật tìm số nguyên tố rất phổ biến ở nước ngoài (ở VN thì tớ không biết). Độ phức tạp: xem ở [1]. Tư tưởng của thuật toán: Giả sử ta kiểm tra các số từ 1-100 xem có những số nào là nguyên tố. Bắt đầu từ 2: ta lần lượt loại các bội của 2 ra khỏi danh sách (không tính 2, như vậy loại ra 4 6 8 10 ... tiếp theo : loại các bội của 3 (6 9 12 ...) ... cho đến hết. Dễ dàng hiểu rằng ta đã loại đi các bội số(hợp số) và sau khi loại hết các số này thì chỉ còn lại các số nguyên tố. Thuật toán cài đặt bằng Python2.7:   https://github.com/hvnsweeting/FAMILUG/blob/master/Python/bulb_state.py 2. Số chính phương.

Popular posts from this blog

Tài liệu và hướng dẫn học Python

Để tiết kiệm thời gian, tốt nhất là đi học PyMI Updated: 130617 Sau đây là các tài liệu khuyên dùng: Vì nhiều lý do, nên học python2.7 tại thời điểm hiện tại (giờ là tháng 6/2013 - muốn biết tại sao thì tự tìm hiểu) python 3.5+ (giờ là tháng 2/2017) Chuẩn bị: 1. biết bật tắt máy 2. biết cài python 3. tập gõ 10 ngón - gõ 2 ngón hay 1 ngón cũng không sao, nhưng 10 ngón là cách dễ nhất để gõ nhanh nhất. Tài liệu - Nên dùng tài liệu tại trang chủ của Python làm chính, tham khảo thêm các tài liệu khác tại http://www.familug.org/2016/12/free-ebook.html Căn bản, mới học 1.1 Python PyMI.vn https://pymi.vn/tutorial/ 1.2. Python offical tutorial kết hợp làm bài tập trên HackerRank  (đề bài bằng tiếng Anh, nhưng Google translate 1 lúc cũng ra vì có nhiều ví dụ mẫu đi kèm). Học viên của Pymi.vn có rất nhiều học viên đã tự học với Learn Python the hard way nhưng chưa thấy ai thành công cả. Hai link dưới nên đọc sau khi đã nắm được những phần cơ bản của ngôn ngữ pytho...

The PyMiers

New FAMILUG