Ứng dụng của Toán Vedic trong lĩnh vực Khoa học máy tính “Toán

Một phần của tài liệu phát triển các quy tắc toán vedic và ứng dụng (Trang 45 - 61)

Vedicvà mối quan hệ của nó với các lĩnh vực khoa học khác.

Thời thơ ấu, tôi thƣờng tự hỏi có bao nhiêu vị tiền bối của chúng ta đã từng tính toán thời gian của nhật thực, nguyệt thực, các điểm phân mùa, v.v… Ngày nay, khoa học hiện đại vẫn chƣa thể hình dung đƣợc các thiên hà ở cách chúng ta hàng nghìn năm ánh sáng ra sao. Nhƣng khoa học Vedic cổ đại đã đề cập đến 12 cung Hoàng đạo, bao gồm các ngôi sao

Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/

trong một số chòm sao, và dựa trên sự liên kết của chúng, đã tính toán đƣợc mức độ ảnh hƣởng của những ngôi sao này. Ở Đài thiên văn Jantar Mantar có rất nhiều mô hình hình học có thể xác định chính xác thời gian trong ngày, các điểm phân mùa và nhiều thông tin khác dựa trên các bóng đổ. Chiêm tinh học (Jyotisha, một trong những lĩnh vực học thuật của Kinh Veda) là khoa học dựa trên sự chuyển động của các hành tinh, vị trí của các ngôi sao, Mặt trời… so với Trái đất.

[

Nếu chúng ta xem xét kỹ những bài thơ bằng tiếng Phạn thì thấy chúng phải tuân thủ những quy tắc nhất định (gọi là Chandas, một trong những lĩnh vực học thuật của Kinh Veda).Nếu ai nắm đƣợc nhịp điệu thơ ca, thì ngƣời đó có thể đọc đƣợc một bài thơ mà không có bất kỳ khó khăn nào, miễn là có vốn từ vựng cần thiết. Về cơ bản, các bảng chữ cái trong tiếng Laghu và Guru tùy thuộc vào thời gian để phát âm nó. Ví dụ nhƣ "ka" là tiếng Laghu (phát âm ngắn hơn), và "Kaa" là tiếng Guru (phát âm dài hơn một chút), chúng ta có thể ví nhƣ ký hiệu nhị phân.Hệ thống nhị phân là cốt lõi cho máy tính - tƣơng tự nhƣ tiếng Phạn là xƣơng sống cho nhiều ngôn ngữ khác.Tiếng Phạn không giống bất kỳ ngôn ngữ nào, nhƣng nó ƣu việt hơn ở nhiều chỗ.Ngay cả khi không biết ý nghĩa - nếu bài thơ/Sloka đƣợc đọc lên, nó kích hoạt hệ thống thần kinh, mang đến cho ngƣời đọc sức mạnh to lớn và sự tự tin vào chính mình. Đó là lý do ngày xƣa học sinh thƣờng đọc Slokas về Nữ thần Saraswati (Visuddhi, một trung tâm năng lƣợng nằm ở cổ họng chúng ta) và

Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/

Ganapati (Muladhara, một trung tâm năng lƣợng khác nằm ở đáy của cột sống), để có sức mạnh ghi nhớ bài học trong một thời gian rất dài. Nếu một học sinh không hoàn thành bài tập về nhà, giáo viên thƣờng phạt 20 lần giữ tai với hai cánh tay bắt chéo, nằm ngửa rồi ngồi dậy thẳng lƣng (hiện đang là mode trong thế giới hiện đại, đƣợc gọi là yoga siêu trí não). Bằng cách đó, trung tâm năng lƣợng Muladhara đƣợc kích hoạt.Tƣơng tự nhƣ vậy, trong khiêu vũ có một tƣ thế đƣợc gọi là Mandi, cũng đƣợc sử dụng để kích hoạt năng lƣợng Muladhara.

Nếu chúng ta xem xét kỹ các ví dụ trên thì thấy rằng, tổ tiên và các vị tiền bối của chúng ta đã cung cấp kiến thức và sức mạnh (tâm trí lành mạnh) để tìm hiểu những kiến thức mới bằng những cách rất thực tế và đơn giản. Sau khi nghiên cứu cẩn thận các trƣờng hợp trên, tôi hiểu rằng Kinh Veda không chỉ có kiến thức tâm linh mà còn có kiến thức trong các lĩnh vực nhƣ khoa học, công nghệ, luyện kim, hàng không và nhiều lĩnh vực khác nữa. Có một tổ chức đƣợc gọi là Viện Nghiên cứu khoa học về Kinh Vệ đà có trụ sở

Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/

tại Hyderabad đang chuyên tâm nghiên cứu về tri thức Vệ đà với sự giúp đỡ của các học giả tiếng Phạn.

Trƣớc hết, tôi muốn nhấn mạnh khía cạnh lý thuyết, và sau đó là khía cạnh thực tế. Do thiếu hiểu biết về lý thuyết nằm trong Toán học nên trẻ em thƣờng gặp khó khăn và sợ học Toán. Có lẽ đó là lý do các bài học Toán Vedic thƣờng đƣợc xây dựng theo định dạng của một bài thơ, và yếu tố đạo đức của nó đã hỗ trợ để duy trì và xây dựng tính cách dễ dàng hơn, rồi sau đó mới là giảng giải và học nâng cao. Ở thế giới phƣơng Đông, học lý thuyết đã rồi mới thực hành.Còn trong thế giới phƣơng Tây, tất cả mọi thứ đều bắt đầu bằng một hiện tƣợng thực tế, sau đó mới đến lý thuyết. Có lẽ chúng ta cần phải cân bằng hai cách dạy và học này để dạy và học cho tốt hơn.

Thật khó giải thích về những lợi ích của việc học Toán Vedic, trừ khi chính một ngƣời trải nghiệm nó. Không cần phải nói về độ rõ ràng ẩn chứa trong Toán Vedic khi bắt đầu phân tích các vấn đề theo nhiều chiều. Những đứa trẻ không chỉ trở nên thông minh, sáng láng trong môn Toán, mà sẽ còn thông minh, sáng láng trong các môn học khác nữa. Đó là thực tế cho thấy sức mạnh của Toán Vedic đối với những trẻ em đƣợc đào tạo trong dịp nghỉ hè. Khi tham dự các chƣơng trình của Câu lạc bộ Toán học mùa hè, những đứa trẻ bắt đầu suy nghĩ theo các hƣớng khác nhau chứ không phải là suy nghĩ rập khuôn, cứng nhắc. Một số phụ huynh và giáo viên nhận thức đƣợc sự chuyển biến rõ rệt và khác biệt ở con em và học sinh của mình. Đó là sự sắc sảo, thông minh khi đốiphó với bất kỳ loại vấn đề nào.

Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/

CHƢƠNG III: CHƢƠNG TRÌNH THỰC NGHIỆM 3.1. Bài toán:

Qua quá trình thực tế và khảo sát tại một số trƣờng cấp 2 trên địa bàn Thị xã Quảng Yên, học viên nhận thấy rằng có một phần không nhỏ các em học sinh còn chậm về tính toán đơn giản. Từ đó gây cho các em khó khăn trong việc làm bài tập môn toán, và một số môn liên quan tới tính toán khác. Từ thực tế đó, học viên tìm hiểu và giới thiệu một số quy tắc tính toán nhanh, mà cụ thể ở đây là các quy tắc toán Vedic giúp các em học sinh có cái nhìn tổng quan hơn về toán Vedic và giúp các em không sợ tính toán mỗi khi phải tính các số lớn.

Chỉ cần nhập đầu vào là các số tự nhiên bất kỳ, với các công thức toán học , học sinh có thể nhẩm ra ngay kết quả tính toán của bài toán.

3.2. Chƣơng trình:

Để giải quyết bài toán trên, học viên xây dựng một chƣơng trình thực nghiệm để giới thiệu tới các em học sinh, giúp các em học sinh nắm bắt đƣợc các kiến thức cơ bản về toán Vedic và giải các bài tập tính toán một cách nhanh chóng hơn. Thầy cô giáo có thể soạn các bài kiểm tra trắc nghiệm, nhằm giúp các em có đƣợc tƣ duy tốt hơn.

Ở đây học viên đã sử dụng Visual Basic 10 để làm công cụ hỗ trợ, trƣớc tiên chúng ta tìm hiểu sơ qua về Visual Basic.

Tổng quan về ngôn ngữ lập trình Visual Basic

Visual Basic, con đƣờng nhanh nhất và đơn giản nhất để tạo những ứng dụng cho Microsoft Windows. Bất kể bạn là một nhà chuyên nghiệp hay là một ngƣời mới lập trình Windows, Visual Basic cung cấp cho bạn một tập hợp các công cụ hoàn chỉnh để nhanh chóng phát triển các ứng dụng. Vậy Visual Basic là gì ? Thành phần “Visual” nói đến các phƣơng thức dùng để tạo giao diện đồ họa ngƣời sử dụng (GUI). Thay vì viết những dòng mã để

Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/

mô tả sự xuất hiện và vị trí của những thành phần giao diện, ta chỉ cần thêm vào những đối tƣợng đã đƣợc định nghĩa trƣớc ở vị trí nào đó trên màn hình. Thành phần “Basic” nói đến ngôn ngữ “BASIC” (Beginners All-Purpose Symbolic Instruction Code) một ngôn ngữ đƣợc dùng bởi nhiều nhà lập trình hơn bất cứ một ngôn ngữ nào khác trong lịch sử máy tính. Visual Basic đƣợc phát triển dần dần dựa trên ngôn ngữ BASIC, và bây giờ chứa đựng hàng trăm điều lệnh, hàm, và từ khóa… có quan hệ trực tiếp với giao diện đồ họa của Windows.

Ngôn ngữ lập trình Visual Basic không chỉ là Visual Basic. Hệ thống lập trình Visual Basic, những ứng dụng bao gồm Microsoft Excel, Microsoft Access, và nhiều ứng dụng Windows khác đều dùng cùng một ngôn ngữ. Mặc dù mục đích của chúng ta là tạo ra những ứng dụng nhỏ cho bản thân hay một nhóm, một hệ thống các công ty lớn, hoặc thậm chí phân phối những ứng dụng ra toàn cầu qua Internet. Visual Basic là cung cụ mà bạn cần.

Những chức năng truy xuất dữ liệu cho phép ta tạo ra những cơ sở dữ liệu, những ứng dụng front-end, và những thành phần phạm vi server-side cho hầu hết các dạng thức cơ sở dữ liệu phổ biến, bao gồm Microsoft SQL Server và những cơ sở dữ liệu mức enterprise khác.

Những kỹ thuật ActiveX cho phép ta dùng những chức năng đƣợc cung cấp từ những ứng dụng khác, nhƣ là chƣơng trình xử lý văn bản Microsoft Word, bảng tính Microsoft Excel và những ứng dụng Windows khác.

Khả năng Internet làm cho nó dễ dàng cung cấp cho việc thêm vào những tài liệu và ứng dụng qua Internet hoặc intranet từ bên trong ứng dụng của bạn, hoặc tạo những ứng dụng Internet server.

Ứng dụng của bạn kết thúc là một file .exe thật sự. Nó dùng một máy ảo Visual Basic để bạn tự do phân phối ứng dụng.

Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/

Cấu trúc của một ứng dụng Visual Basic

Một ứng dụng thật ra là một tập hợp các chỉ dẫn trực tiếp đến máy tính để thi hành một hay nhiều tác vụ. Cấu trúc của một ứng dụng là phƣơng pháp trong đó các chỉ dẫn đƣợc tổ chức, đó là nơi chỉ dẫn đƣợc lƣu giữ và thi hành những chỉ dẫn trong một trình tự nhất định.

Vì một ứng dụng Visual Basic, trên cơ bản là những đối tƣợng, cấu trúc mã đóng để tƣợng trƣng cho những mô hình vật lý trên màn hình. Bằng việc định nghĩa, những đối tƣợng chứa mã và dữ liệu. Form, cái mà chúng ta nhìn thấy trên màn hình là tƣợng trƣng cho những thuộc tính, quy định cách xuất hiện và cách cƣ xử. Cho mỗi form trong một ứng dụng, có một quan hệ module form (với tên file mở rộng là .frm) dùng để chứa đựng mã của nó.

Mỗi module chứa những thủ tục sự kiện – những đoạn mã, nơi đặt những chỉ dẫn, cái sẽ đƣợc thi hành trong việc đáp ứng những sự kiện chỉ định. Form có thể chứa những điều khiển. Tƣơng ứng với mỗi điều khiển trên form, có một tập hợp những thủ tục sự kiện trong module form đó.

Mã không chỉ quan hệ với một form chỉ định hay điều khiển có thể đƣợc đặt trong một loại module khác, một module chuẩn (.BAS). Một thủ tục đƣợc dùng để đáp ứng những sự kiện trong những đối tƣợng khác nhau phải đƣợc đặt trong cùng một chuẩn, thay vì tạo những bản sao mã trong những thủ tục sự kiện cho mỗi đối tƣợng. Một lớp module (.cls) đƣợc dùng để tạo những đối tƣợng, cái mà có thể đƣợc gọi từ những thủ tục bên trong ứng dụng của bạn. Trong khi một module chuẩn chỉ chứa mã, một lớp module chứa đựng cả mã và dữ liệu. Ta có thể nghĩ nó nhƣ một điều khiển.

Ở chƣơng trình thực nghiệm này, học viên giúp các em tìm hiểu một số quy tắc toán Vedic thông thƣờng, từ các quy tắc này các em có thể tính nhẩm một cách nhanh chóng và tiện lợi.

Trƣớc hết chúng ta tìm hiểu các quy tắc nhân một số với số 11, ta làm lần lƣợt từ phải qua trái nhƣ sau:

Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/

- Ghi chữ số phải nhất vào kết quả.

- Lần lƣợt lấy tổng (có nhớ) hai chữ số kề nhau

- Cộng chữ số trái nhất với số nhớ để ghi vào kết quả.

publicvoid nhanVoi11()

{

//chuyển thành chuỗi

giaithichNhan11.Text = "";

string chuoicannhan = socannhan.ToString();

//tách từng kỹ tự trong chuỗi

string chuoiketqua;

string[] a=newstring[1000];

//MessageBox.Show(chuoicannhan[chuoicannhan.Length-1].ToString());

for(int i=1;i<=chuoicannhan.Length;i++) {

a[i-1] = chuoicannhan[chuoicannhan.Length-i].ToString(); }

//Bƣớc 1 giƣ lại số bên phải

chuoiketqua = a[0];

giaithichNhan11.Text += "KẾT QUẢ CẦN TÍNH LÀ ????"; giaithichNhan11.Text += "\r\nBƣớc 1:";

giaithichNhan11.Text += "\r\n--Gán giá trị cuối của số vừa nhập bên phải

vào kết quả ???"+a[0];

//Buoc 2

int biennho = 0;

if (chuoicannhan.Length > 1) {

giaithichNhan11.Text += "\r\nBƣớc 2:\r\n--Chay vòng lặp nhƣ sau:"; giaithichNhan11.Text += "\r\nTính tổng 2 số liền kề:";

giaithichNhan11.Text += "Kiểm tra tổng đó với 10,nếu lớn 10 thì nhớ 1

lấy phần dƣ, nếu nhỏ hơn 10 lấy phần thƣơng khi chia với 10";

for (int i = 0; i <= chuoicannhan.Length - 1; i++) {

if (a[i + 1] == null) a[i + 1] = "0";

Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/

giaithichNhan11.Text += "\r\n--- ở vị trí " + i + " với vị trí " + (i + 1) +

" (ở ví dụ này là " + a[i] + "+" + a[i+1]+")";

//MessageBox.Show((tong%10).ToString());

if (tong>10) {

chuoiketqua = ((tong % 10)).ToString() + chuoiketqua;

giaithichNhan11.Text += "\r\n--->Tổng là: " + tong + "( với " + biennho + " là biến nhớ trƣớc)>10. Vì vậy lấy phần dƣ của " + ((tong %

10)).ToString() + "/10 và nhớ 1 --> Kết quả ?" + chuoiketqua; biennho = 1;

}

elseif (tong == 10) {

chuoiketqua = "0" + chuoiketqua;

giaithichNhan11.Text += "\r\n--->Tổng là: " + tong + "( với " + biennho + " là biến nhớ trƣớc)=10. Vì vậy lấy phần dƣ của " + (10).ToString() +

"/10 và nhớ 1 --> Kết quả ?" + chuoiketqua;

biennho = 1; }

else

{

chuoiketqua = ((tong % 10)).ToString() + chuoiketqua;

giaithichNhan11.Text += "\r\n--->Tổng là: " + tong + "( với " + biennho + " là biến nhớ trƣớc)<10. Vì vậy lấy phần dƣ của " + ((tong %

10)).ToString() + "/10 và nhớ 0 --> Kết quả ?" + chuoiketqua; biennho = 0;

} }//End for

}

else//Truong hop nhan 11 voi 1 so

{

//buuoc 1

chuoiketqua = a[0].ToString()+a[0].ToString();

//buoc 2

Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/

giaithichNhan11.Text += "\r\n==>KẾT QUẢ CUỐI CÙNG LÀ " + chuoiketqua; //MessageBox.Show(chuoiketqua); } Giải thích: 5843 x 11 = (5)+N|(5+8)+N|(8+4)+N|(4+3)|3; N là số nhớ = (5)+N|(5+8)+1| 2 | 7 |3 = (5)+1| 4 | 2 | 7 |3 = 6 | 4 | 2 | 7 |3 40789 x 11 = 448679.

Kết quả là đúng? hay là sai?

Sau khi đã cho các em học sinh thấy đƣợc cách nhân 1 số với 11, ta có thể hƣớng dẫn các em cách kiểm tra một số lớn cho trƣớc có chia hết cho 11 hay ko mà ko cần dùng máy tính, ở đây học viên có tìm hiểu thêm và đã thử nghiệm tính toán với nhiều số, và kết quả thì hoàn toàn đúng với khi ta kiểm tra bằng máy tính.

publicvoid kiemTraChiaHet11(string layTutextbox)

{

giaithichNhan11.Text = "";

string[] b = newstring[1000];

for (int i = 1; i <= layTutextbox.Length; i++) {

b[i - 1] = layTutextbox[layTutextbox.Length - i].ToString(); }

//tinh tong ky tu chan

int tongchan=0,tongle=0;

string chuoichan = "",chuoile= "";

for (int i = layTutextbox.Length-1; i >= 0; i--) {

//MessageBox.Show((i%2)+"");

if (i % 2 == 0) {

Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/

chuoile += "+" + b[i];

tongle = tongle + Convert.ToInt32(b[i]);

}

else

{

tongchan = tongchan + Convert.ToInt32(b[i]); chuoichan += "+" + b[i]; } } giaithichNhan11.Text += "\r\n Tổng các số vị trí chẵn là "+chuoichan.Substring(1,chuoichan.Length-1)+"="+tongchan; giaithichNhan11.Text += "\r\n Tổng các số vị trí lẻ là " + chuoile.Substring(1, chuoile.Length - 1) + "=" + tongle;

if ( (tongle-tongchan)%11 == 0) {

//MessageBox.Show("Chia hết cho 11");

giaithichNhan11.Text += "\r\nVì ("+tongle+"-"+tongchan+")/11 dƣ 0"; giaithichNhan11.Text += "\r\n=> Chia hết cho 11";

}

else

{

giaithichNhan11.Text += "\r\nVì (" + tongle + "-" + tongchan + ")/11 dƣ

khác 0";

giaithichNhan11.Text += "\r\nKhông Chia hết cho 11";

Ở đây học viên nêu lại quy tắc nhân một số có độ dài k chữ số với một số có k chữ số 9.

publicvoid nhanVoi9() {

if (comboBox1.Text == "") return; giaiThichNhanvoi9.Text = "";

string chuoicannhan = socannhan.ToString();

chuoicannhan = Convert.ToInt64(chuoicannhan).ToString();

if (comboBox1.Text.Length >= chuoicannhan.Length) {

giaiThichNhanvoi9.Text += "\r\n Vì số ký tự " + chuoicannhan + "<=" + comboBox1.Text + "-> Áp dụng công thức sau:";

Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/

giaiThichNhanvoi9.Text += "\r\n A="+chuoicannhan+"-

1="+(Convert.ToInt64(chuoicannhan) - 1).ToString();

giaiThichNhanvoi9.Text += "\r\n B=(" + comboBox1.Text +"-

("+chuoicannhan+"-1)="+ (Convert.ToInt64(comboBox1.Text) -

Một phần của tài liệu phát triển các quy tắc toán vedic và ứng dụng (Trang 45 - 61)

Tải bản đầy đủ (PDF)

(61 trang)