New FAMILUG

The PyMiers

Friday 30 September 2011

[Matlab] Giải phương trình bằng phương pháp chia đôi

Tớ sẽ không code cụ thể ở đây vì không có matlab để test. Chỉ viết lịa nhưng gì hôm nay đã học cho khỏi quên.

1. Symbolic math toolbox:
Symbolic object là đối tượng hình thức (nghĩa là viết bằng chữ - chưa thay số). Ứng dụng của symbolic trong bài này là điểm mấu chốt.
Qua ví dụ này ta cũng hiểu được 1 phần khái niệm functional programming paradism (mô hình lập trình hàm) khi ta dùng 1 hàm làm đối của hàm khác (mặc dù hàm trong trường hợp này mang tính hình thức).


khai báo biến symbolic:
syms x

Become Ubuntu app developer

New Canonical site:

Ubuntu is the third most popular operating system in the world. Find out everything you need to know to start developing and publishing your apps on Ubuntu.


[Matlab]Tính toán với symbolic

matlab hay đúng ko? giúp dễ dàng tính đạo hàm nguyên hàm, phép solve ngược của phép calc cũng như trên máy tính casio fx
trước hết nhập hàm cú pháp tên hàm= 'hàm biểu diễn theo quy ước '
đạo hàm : diff(tên hàm)
nguyên hàm :int(tên hàm)
oy:
giải đa thức dùng hàm solve:
cú pháp =('đa thức = a-hằng số')
giải hệ =('pt1','pt2','pt3')
phần đồ thị giả sử hàm y=f(x)
nhập khoảng x và cách chi điểm thường 1/1
00 cho liền VD x=1:1/100:10;
nhập y=f(x);
dùng plot(x,y) để vẽ


Thursday 29 September 2011

Why Ubuntu (and other Linux-based OSes) ?

"Chỉ những người thông minh nhất dòng họ mới dùng Ubuntu"
 - Trần Dũng lơ ngơ.

Trong FAMILUG =)) hiện có 3 người đang dùng Ubuntu hàng ngày (và vài người đã cài thử). Xin các bạn hay cho ý kiến tại sao mình dùng Linux mà không phải Windows. Xin hãy nói ý kiến của chính mình chứ không phải copy sao chép ở đâu cả. Hãy thử thuyết phục các thành viên của FAMILUG (=.= hổ thẹn cho cái tên =)) ) để họ dùng Ubuntu/Linux!

Tớ:
lúc đầu tớ cài Ubuntu ko phải do những gì người ta quảng cáo . Đơn giản là muốn thử 1 HĐH nhân Linux(trong bài How to become a hacker viết thế :)) ) và đồng thời lúc ấy nhận được đĩa Ubuntu xịn gửi từ nước ngoài về (do đk chơi trên mạng :)) ). Thế là cài, cài rồi dùng. Lúc bắt đầu dùng cũng là lúc bắt đầu lập trình . Thấy lập trình C trên Linux rất đơn giản, dùng Geany làm editor chính :D (không nhớ nổi năm nhất học Tin ĐC mình dùng cái j @@ - hình như ko thèm code thì phải).

Lí do dễ dàng tớ sang Linux vì: tớ không chơi game - không có cản trở lớn nhất :D Tớ đã có ý định học Java từ đầu, có lúc lại PHP nhưng cả 2 đều ngon lành trên Linux.
Dùng nhiều thì quen, tìm hiểu nhiều thì thấy thích. Thích gì?
Thích dùng phím tắt, rất ghét thò tay lên kéo chuột - trừ khi bắn Gunbound :))
Thích mấy cái lệnh cute của Linux :D.
Lợi ích: từ khi dùng Linux, lập trình nhiều hơn, config nhiều hơn. Tìm hiểu nhiều hơn, đọc nhiều hơn. Bị nó kích thích nên code nhiều hẳn :D

Tuesday 27 September 2011

whatis - whereis - which - whois : hỏi Linux!

Bạn nghĩ những câu lệnh trên Ubuntu (hay các Linux-based OS khác) quá khó hiểu. Mọi thứ trong ấy thật mù mờ, rắc rối :-ss

Hãy hỏi những gì muốn biết với cái terminal của bạn :
1. whatis: (nó là cái j ? :D )

hvnsweeting@hvnbox:~$ whatis git
git (1)              - the stupid content tracker

kết quả chính là 1 dòng mô tả vắn tắt xem "nó" là cái gì?
hỏi tiếp nè >:)
hvnsweeting@hvnbox:~$ whatis nautilus
nautilus (1)         - the GNOME File Manager
hvnsweeting@hvnbox:~$ whatis nano
nano (1)             - Nano's ANOther editor, an enhanced free Pico clone
hvnsweeting@hvnbox:~$ whatis vim
vim (1)              - Vi IMproved, a programmers text editor
hvnsweeting@hvnbox:~$ whatis awesome
awesome (1)          - awesome window manager

Saturday 24 September 2011

[KuTe]MỘT SỐ BÀI TOÁN PHÂN TÍCH KINH TẾ VỚI MÔ HÌNH ĐỘNG

Hello :)) Trong tình hình các mác sinh viên sắp bong cóa bị yêu kinh tế nên có cóp nhặt ít về mấy bài toán hề hề
1. Độ nhạy 1 chiều
Bài toán nó là thế này .Hôm nay đi chợ mang mỗi có 10 nghìn mà giá sp nó tự nhiên tăng 11 ,12, 13k..... như vậy độ nhạy ở đây là tính xem thiếu bao nhiêu tiền để có hàng :)))
Đấy vậy độ nhạy là tiền thiếu : 1k,2k,............
Trên thực tế để tính lãi nha :)).Là sinh viên phải chịu :))
2.Độ nhạy 2 chiều
Bài toán : vẫn như trên .nhưng xông xênh nha tiền mang theo nó cũng biến đổi.
Ở đây cả giá mua và giá bán đều biến động lập ma trận nào
Mô hình hóa bài toán như sau: các giá mua là M(j). gia bán là B(i)
Vậy có ma trận nhạy là [A(ij)] : với A(ij)=M(j)-B(i)
3.Scenario :
Bài toán như phần 1 nhưng nhiều ngày ngoài ra có thêm 1 thằng bạn phải trả nợ nó <đen>
Giải quyết : Mỗi ngày sẽ có 1 bộ (tiền thiếu =tiền có-tiền mua- vay)
còn 2 phần nữa nhưng hôm này chưa ăn trưa :((.waitting for me

Đây là 1 số bài toán phân tích sơ đẳng nhất . nói thật chả hay ho cái gì cả.những bài toán trên công cụ exel nhoa

Wednesday 21 September 2011

5 tool để nghịch ngợm với mạng

Ping,etherape, nmap, tcpdump, và wireshack là 5 tool chạy trên linux để phân tích các hoạt động của mạng trên máy của bạn. Hãy dùng và thành thạo ít nhất là 1/2 trong số chúng. Bởi những kiến thức về mạng cần thiết với mọi người cả để biết, cả để thi Mạng máy tính :))

Chơi game và đóng góp cho nghiên cứu khoa học

Fold it chuyển sự gấp nếp của protein thành một môn thể thao cạnh tranh. Cấp độ mở đầu dạy các quy tắc mà có cùng những định luật vật lý mà theo các định luật này, sợi protein quăn và xoắn thành các hình dạng 3 chiều – chìa khóa mở ra bí ấn sinh học từ bệnh Alzheime đến vaccine. 
Down và chơi thử đê :x 

http://fold.it/



Monday 19 September 2011

SQLite - Một DBMS nhỏ, nhẹ, ngon =p~

Đang học CSDL, vậy nên cài một DBMS là điều tất yếu.
 Có thể cài cái nào cũng được cả:
M$ SQL Server
Oracle SQL
MySql
PostgreSQL

Nhưng trong bài này tớ muốn giới thiệu SQLite!
Lại câu hỏi muôn thưở :WHY?

Friday 16 September 2011

[TUT]Một trang để học matlab.ko cần cài

http://www.verbosus.com
Hê nhố!
các bạn kô cần cài matlab vẫn có thể thực hành đc thông qua trang web này
Về cơ bản nóa lệnh của nóa cũng giống matlab
Ở đây các bạn có thể viết hàng loạt công thức rồi bấm nút generate nó sẽ thực hiện các phép toán ngoài ra sau mỗi các phép toán đc đặt chú thích ngăn lại bởi dấu thăng :))


Tuesday 13 September 2011

Hãy chuẩn bị... cuộc chơi chuẩn bị bắt đầu b-(

Cuộc chơi sẽ bắt đầu, vào tuần sau.
Sẽ là trò chơi lớn trên các câu lệnh SQL.
Mai là nhà tớ có mạng :))
Mọi người hãy down cho mình một cái DBMS và cài sẵn (j gỉ gì gi cái gì cũng được) M$ SQL , MySQL, Oracle...
tuần sau sẽ chơi,
nhé ;)

Saturday 10 September 2011

Keep it simple, stupid! (O(n!) vs O(2^n)

Everything should be made as simple as possible, but no simpler.” - Albert Einstein

Độ phức tạp của thuật toán là cái gì đó rất phức tạp.
Để trả lời cho câu hỏi O(n!) và O(2^n) cái nào phức tạp hơn, tốt nhất đừng làm nó phức tạp thêm bằng 1 đống toán.
Thực nghiệm sẽ trả lời:
I love Python : đơn giản, nhẹ, đa nền tảng, interpreter (gõ lệnh vào trả kết quả ra luôn)

>>> from math import factorial
>>> factorial(100)
93326215443944152681699238856266700490715968264381621468592963895217599993229915608941463976156518286253697920827223758251185210916864000000000000000000000000L
>>> print ''.join("{0} {1} {2}\n".format(n, 2**n, factorial(n)) for n in range(1,21))
1 2 1
2 4 2
3 8 6
4 16 24
5 32 120
6 64 720
7 128 5040
8 256 40320
9 512 362880
10 1024 3628800
11 2048 39916800
12 4096 479001600
13 8192 6227020800
14 16384 87178291200
15 32768 1307674368000
16 65536 20922789888000
17 131072 355687428096000
18 262144 6402373705728000
19 524288 121645100408832000
20 1048576 2432902008176640000

giờ thì ko phải nói thêm câu nào nữa.  Kết quả đã sờ sờ trước mắt :D

Một câu lệnh chạy mất bao lâu?

Đã bao giờ ai đó hỏi điều này?
Đã bao giờ bạn đo chương trình của mình chạy mất bao lâu?
Nếu dùng linux, dễ dàng kiểm tra bằng time. Hoặc có thể tự viết vài dòng code để tính. (trong C dùng thư viện time.h)
Tớ sẽ lấy ví dụ với Java - ngôn ngữ bậc cao chậm hơn C tương đối :D

Code:

package com.familug;

public class NanoSecondTest {
    public static void main(String[] args)
    {
        long start = System.currentTimeMillis();
        long finish = System.currentTimeMillis();
        System.out.println("MillisTime: " + (finish - start));
       
        long nanoStart = System.nanoTime();
        long nanoFinish = System.nanoTime();
        System.out.println("NanoTime: " + (nanoFinish - nanoStart));
    }

}
Kết quả:
MillisTime: 0
NanoTime: 427
Như vậy, với em lap của tớ, một câu lệnh chạy không đến 1 mili giây - hiển nhiên vì chỉ với máy thời 198x mới có tốc độ rùa bò như vậy.
Đo bằng nano giây = 1 / tỷ giây thì kết quả là 427.
Máy của tớ là  Intel i3 M370 2.4 Ghz. Tính đơn giản: với tần số 2,4 tỷ circle / giây -> 2,4 circle (xung giao động 2,4 vòng) / nano giây. Nếu chỉ tính 1 nhân thực hiện việc này thì mất 2,4 * 427 = 1024 circle. Chia trung bình cho 3 câu lệnh -> mỗi câu ~400 circle ~ 140 nano giây.
=> trong 1 giây có thể thực hiện khoảng hơn 1 chục triệu câu lệnh.
Vậy những bài mà cắm máy cày top bán Acc ko biết là tính bao nhiêu phép tính đây :">
Tớ tính toán có gì sai ko nhể :D

Friday 9 September 2011

Bài viết cuối cùng về sở thích đam mê và sự lựa chọn!



"Everybody is a genius. But if you judge a fish by its ability to climb a tree, it will live its whole life believing that it is stupid."

Chắc chắn tất cả các bạn, nhưng ai đang đọc dòng này đều biết tới người này.
Đặc biệt với các sinh viên kỹ thuật, số người hâm mộ, thần tượng ông là rất rất nhiều. Một thiên tài khoa học, một biểu tượng của sự say mê và sáng tạo tuyệt vời!

Mỗi con người sinh ra đều có trong mình một tiềm năng nào đó, nó ẩn ở đâu đó và chờ một lúc nào đó (hoặc không bao giờ) để được đánh thức. Hãy thử với 2 bàn tay của bạn, trong 2 tay chắc chắn sẽ có 1 tay thuận hơn, mặc dù tay kia cũng có thể làm được nhiều việc. Người ta làm việc cũng vậy, bạn sẽ làm việc này tốt hơn việc kia, và chính bạn hiểu điều đó mà chẳng cần ai nói cho. Trong những cái bình thường, người ta cố tìm ra cái tốt, trong những cái tốt, người ta lại cố tìm ra những cái tốt hơn. Và chính bạn là người lựa chọn tương lai cho mình, chính bạn chứ không ai khác!

Sở thích, đam mê ... và sự lựa chọn!
Cuộc đời con người ta là một chuỗi các sự lựa chọn liên tiếp. Ví dụ nhé:
"Giữa 2 quyết định ko học đai học và học đại học. Bạn chọn HỌC ĐAI HỌC. Vào đại học rồi, giữa các khoa viện, bạn chọn CNTT (và "ko may"(?) bạn chọn nguyện vọng hai: Toán Tin). Vào khoa rồi, phải lựa chọn theo định hướng Tin-Hay-Toán và bạn chọn TIN. Chọn tin rồi, bạn lại đau đầu quyết định lập trình hay quản trị -> chọn LẬP TRÌNH. Chọn lập trình rồi bạn lại suy nghĩ học Java hay C#, Windows hay Linux, Desktop hay Web...blah blah blah và cứ thế những sự lựa chọn liên tục được đưa ra. Và nó định hướng cuộc đời bạn...

đi u Cafe đã, về viết tiếp, thằng nào viết hộ càng tốt, cứ cm đi :))

Friday 2 September 2011

Move on another ways

Bắt đầu bằng "bài toán" chọn ngôn ngữ để học.
Đưa ra một quyết định to lớn không phải đơn giản, bởi nếu thực sự học, lựa chọn này sẽ quyết định rất nhiều đến cuộc đời bạn, thời gian bạn sử dụng. Bởi vậy làm sao đưa ra quyết định đúng đắn sẽ là 1 câu hỏi?

Vấn đề dẫn tới nảy sinh các "đầu mối" mà các môn học khác có thể nhảy vào.
Ai đó sẽ vác tối ưu để tính toán xem học cái nào là tối ưu nhất (Tối ưu đa mục tiêu - khó lòi =.= )
Hoặc đơn giản hơn, ai đó sẽ vác bài toán kinh tế học ra và so sánh nhu cầu, mức lương để quyết định lựa chọn.
Cũng có khi có người để người khác quyết định hộ mình, đơn giản vì họ không đủ khả năng đưa ra quyết định???

Vậy ta xem xét quá trình lựa chọn: