IPFS: INTERPLANETARY FILE SYSTEM



MẠNG PHAI XUYÊN HÀNHTINH

IPFS là một sángtác cộngdồng của các anh Bương tinhhoa, dặng nhânzân còcon chúng mình cothe tung thôngtin lên mạng trầngian, mà không phải thuê Hosting Server.

Các phai {files} tung vào IPFS network sẽ chủdộng yêucầu tậpdoàn anhem IPFS hảotâm lưutrữ zùm. Khi nao chúng mình hảotâm, thì chúng mình cũng.

Phai của IPFS network dịnhvị bằng mãhóa Hash nộizung nó, kêu là CID, dảmbảo toàn mạng không có phai trùng ID. Việc tìm-soát hay nom-dọc và côngtách phai, cũng zựa theo CID.

Phai IPFS hoàntoàn côngcộng và transparent, không riêngtư kíndáo.

Hiệutrưởng Zì Anh Bwcng {an-hoàng-trung-tướng} sẽ zạy Anh Bò cách chơi IPFS ngay below.

1. Download IPFS Command Line Tool

App này dóng cho mọi máybàn và máydùi, nhõn 1 phai, không cần installer.

Download Link https://dist.ipfs.io/#go-ipfs

Anh Bò, nếu ngudộn và tayngang và manzi hènmọn, thì cothe zùng bản giaoziện GUI "click-to-run". Nhưng hiệutrưởng không ưng.

Unzip gói App download above vào 1 thưmục gọngàng, chảzụ C:/IPFS, và setup Path cho thưmục dó, dặng gọi-thì-chạy-ngay.

2. Test IPFS Command Line Tool

Anh Bò nếu zùng MS Windows thì bật My Computer aka Windows Explorer, nhảy vào một thưmục "test" somewhere, gòy bung ông Command Window, bằng cách phạng-giữ phím Shift và nhích chuột-phải aka shift-right-click.

Hoặc dánh Run & Cmd. Cách này hiệutrưởng không ưng.

Nếu zùng Linux, thì bung một Terminal Window, tươngdương.

Chạy command ipfs version

Anh Bò nghe thôngbáo something tạng ipfs version 0.4.23, nghĩa là IPFS App dã chạy ngoan. Nếu chưa, thì nên check Path settings.

3. Chọn phai phóng vào IPFS network

Cứ trong Command Window above, Anh Bò tạo phai Hello.txt như sau.

Chạy command echo Fuck IPFS > Hello.txt

Phai Hello.txt sẽ dược tạo, nộizung gồm nhõn zòng Fuck IPFS.

Anh Bò nếu có phai khác, ảnh hay phim hay gì-tùy-thích, thì xài luôn, khỏi tạo.

4. Phóng phai vào IPFS network

Chạy command ipfs add Hello.txt

Anh Bò sẽ nghe thôngbáo something tạng added QmQB2RAPv3ZKm3wf9o4y21pHaY2whx6hyVSFswKuQLGdyj Hello.txt

Mừng Anh Bò phóng phai thànhcông và thamgia mạng phai-xuyên-hànhtinh. Quả Hash zài như thòng QmQB2RAPv3ZKm3wf9o4y21pHaY2whx6hyVSFswKuQLGdyj chính là CID của phai Hello.txt thưa anh.

5. Check phai thamgia IPFS network

Anh Bò nên zùng Daemon Server của chính IPFS App above.

Chạy command ipfs daemon

Bật any browser dặng review phai của mình tại:

http://localhost:8080/ipfs/QmQB2RAPv3ZKm3wf9o4y21pHaY2whx6hyVSFswKuQLGdyj

Anh Bò nom zòng QmXXXX sau con /ipfs/ không? CID dó thưa anh.

Không thích Local Daemon, thì Anh Bò cothe review phai mình qua any web IPFS côngcộng, tạng:

http://dweb.link/ipfs/QmQB2RAPv3ZKm3wf9o4y21pHaY2whx6hyVSFswKuQLGdyj

6. Nom và gọi phai từ IPFS network

Như mục (5), Anh Bò cothe nom hay nạp any phai IPFS qua Local Daemon, cần nắm nhõn CID.

Và dây là banner của Asinerum Project hoànvõ trứzanh:

http://localhost:8080/ipfs/QmcCowxPhkCAQJteUVx6QFPNdUr4izCTKX5L98LhuGFUHf

7. Phóng nguyên thưmục vào IPFS network

Anh Bò học tự nha. Nhác thì cắn cứt dcm anh.

Comments

4,759 comments

Page:


Vợ Đánh

Giá dầu quá biến động đã khiến Sàn giao dịch lớn nhứt hành tinh corona, CME group, mới đây đã phải buộc các traders tăng tỷ lệ ký quỹ cho các trading dầu tương lai.

Nói thêm chúc zìa CME aka Chicago Mercanile Exchange, CME đích thị là nơi canh giữ quòa bình thế giới e hèm nghe quen hôn batong, trụ sở tại Chicago đế quốc.

CME là thị trường phái sinh lớn nhứt uy danh hoàn võ, batong ở đấy trading đủ loại hàng hóa từ dầu khí đến kim loại đến ngũ cốc nông trang các kiểu. Phái sinh là gì thì mời mật thư Kỳ tiểu nhị giải thích cho.

Nói hông quá, CME là nơi giúp quản trị rủi ro biến động giá. Bé Ngựa đã nên cơ nghiệp cũng nhờ CME đấy ghê hông, CME hông những thừa nhận bitcoin là tiền tệ mà còn là một vật thế chấp đảm bảo trên thị trường phát sinh, chính điều nài đã góp công lớn đẩy giá bitcoin từ 6k lên 10k và CME cũng là yếu tố chủ lực đẩy giá bitcoin lên tận 20k, mời gúc

Batong QB nếu chưa đi đến Nengcho thì chưa chết được đâu tổ mẹ lão Nghẹo nhà ta cũng ở Pakistan lâu phết đó hehe giờ đây chơi xèng mạng mà hông tham chiếu hóng hớt CME thì ..... thôi chớ biết răng chừ.



Đong Xèng

Giá ông ETH đã nhảy lên 195, các ông khác cũng xanh-mướt.

Zì có chỉ-đạo gì không ạ. Hay cứ yên-tâm ngồi rung-đùi mò-lồn vện, hehe



Vợ Đánh

Dịch zồi cũng sẽ qua sau khi tàn phá nền kinh tế mọi quốc gia, đó là điều hiển nhiên vì thời 4.blockchain zồi vaccine cũng sẽ có thôi, vấn đề là thằng nào có trước và thằng nào sẽ xếp hàng chờ đợi mòn mỏi chỉ vì đơn giản Cầu quá áp đảo Cung.

Gói kíu trợ tỷ nài tỷ kia sẽ gây lạm phát mạnh khiến giá cả leo thang trong khi lương hướng teo tóp và nhơn công phải tranh nhau việc làm đến xì khói tóe máo ghê chưa.

Cửa thiên di sang bương của batong Lừa sẽ hầu như bị khép chặc vì nước nào cũng phải iu tiên jobs cho dân mình, Trump có khả năng phải gia hạn đóng chặc cửa vào Mẽo tiếp sau 60 ngày tới, ong nội zì có lý do xác đáng để mần điều điểu.

Kịu lục địa già zồi cũng buộc phải ngưng các chương trình di dân các kiểu, để bảo vệ jobs cho ae nông phu quê bỏn thôi.

Globalization aka tuyền cầu quóa sẽ chính thức bị xóa sổ sau đại dịch, ai zìa nhà nấy mà tự thắt lưng buộc bụng

Nguy cơ rõ rệt hơn là Khựa buộc phải phát động thế chiến để vực dậy nền kinh tế chết lâm sàng như Hít-le đã làm với Đức heo, nếu Khựa bị dồn ép vào đường cùng. Tổng thơ ký LHQ đã từng cảnh báo chiến tranh cách đây vài tuần đó thôi.

Chỉ có chiến tranh mới giải quyết vấn đề bự chảng cho các anh đại bàng. Khi đó giá vàng nói riêng hay kim lọai nói chung sẽ vọt tận mây xanh. Giờ batong hãy cố mà tích trữ bộ máy tính cùi bắp càng cũ càng tốt, có hứng thiếm giảng cho cách tách vàng và precious metals. Đừng đùa, chiến tranh mà xảy ra thì chỉ cần một con CPU pentium pro bé xíu có thể nuôi sống batong vài tháng đấy ghê hông.

Quan trọng là hãy tranh thủ mần ngay cái hô-chao cho bản thân và bọn nhóc, nếu chưa có, nghe hôn batong.



thitbobiptet

tét hệ hệ



thitbobiptet
This comment has been removed by the author.


thitbobiptet

Ref: thitbobiptet (4003)

Đéo biết chi bộ có đọc được cồng của tôi không (tôi đang bị Zi lock ), nếu được thì ai đó comment báo cho tôi nhé.
cô Trí hiểu sai cụ nó bài tập, tôi thấy sai đã email báo lại mà cô ý vẫn. .
Nhắn anh Lasao: anh làm ơn công tắc với tôi qua mail hunglatitude6410 at gmail. tôi muốn học thêm Bi Thông. thank you before



Lìu Tìu

Ref: thitbobiptet (4005)

Điếu nhìn thấy gì nhé.



Tiểu Mỡ
This comment has been removed by the author.


Lừa Citizen

Ref: Vợ Đánh (3995)

VL thím Dánh, Đánh vẫn là Đánh, ngoài tiền ra thì vẫn salong vãi lồn. Nếu baton có 50k € mà muốn thiên di đàng hoàng ăn thẻ xanh thì liên hệ anh zen vào việc nhé. Hãy mật thư cho anh Zen.
Thằng đệ anh Zen quốc tịch Tiệp đang tìm gái có nhu cầu kết hôn đong xèng.
Cưới công dân Tiệp, được thẻ blue 2 năm. Sau 1 năm apply được thẻ green 10 năm. Và sau 4 năm ly dị. Mission complete. Việc lol gì phải rơm rạ nhở.
Sau dịch này dự là nhu cầu đong xèng kiểu này sẽ cao nên các con dư trên 50k$ hãy chuẩn bị và mật thư anh Zen buôn người. Email thì anh đã đưa ở 1 cồng nào đéo nhớ hehe.



Lừa Citizen

Thím Đánh cồng có trách nhiệm đi cáy đkm. Một khi đã có đến 400k mẽo thì việc lồn gì phải lòng vòng thế
Chả thiếu lồn gì cách. Hehe, đặc biệt là vàng Son. Thậm chí vàng son chỉ cần có 30-35k mẽo là có thể đớp thẻ xanh dễ như ăn gỏi.
À quên, giai đoạn đầu chỉ cần đưa trước gần 10k. Còn lại trả dần về sau. Thiên di rồi làm trả dễ như đỉt nhau. Ngắt cồng



Lừa Citizen

Anh quên, thẻ xanh Tiệp nhé. Sinh sống làm việc khắp Schengen. Hehe



MicroTri

Ref: thitbobiptet (4005)

Hehe, cô Bê Phi Lê: Cô viết yêu cầu như em Trinh viết thư tình, Mỗ vận dụng hơn gần đời kinh nghiệm để thực hiện đấy.



Asinerum Project Commander

Ref: Lil Lyhn (3998)

Nôn-cười mý anh Bò.

Cắn "xoài Úc giồng tại Giùn" gòy chê "xoài Úc déo ngon bằng xoài Giùn" cáy dcm vãi cứt mý nhà nônghọc salông.

Xoài Namkycho chỉ cần mang lên Trungkycho giồng, dã thành mẹ trái Quéo, nghĩa là chỉ bán dược cho chó.



Asinerum Project Commander

Chúng cô có nghĩ Zì nên ra quyếtdịnh chỉ cho con Dánh thảoluận zìa hóachất, thoy không?

Còn mọi vấndề khác như kinhtài, thiênzi, vậntải, xuấtnhập, dều cấm tuyệtdối con này nhúng mõm vào.



Asinerum Project Commander

Con Sao taychuyên déo gì mà déo biết cáy Twitter Githubstatus déo phải của GitHub?

Nom tại dây ngoan hơn:

https://www.githubstatus.com/

Cũng như mọi website trầngian, GitHub ngày nào chả pháthiện ra lỗi. Vấndề là bọn khác ỉm mẹ di, thì ông này cứ bôbô ra, dơngiản vì ông ý là Sàn của anhem taychuyên, khongthe bỏmặc côngchúng như Sàn Phấtbúc của toàn nôngphu.

Vì GitHub hỏng, mà chúng Bò chửi Bill cháu Zì, thì cũng déo côngchính. Vì cháu Zì chỉ mua côngty, còn vậnhành như nào thì cháu Zì déo canthiệp. Như bọn Khựa mua Volvo hay BMW thoy.

Các zoanhvụ cháu Zì mua từ cả chục mùa qua như LinkedIn, Skype, GitHub, NPM, etc, thì hầunhư cháu déo nhúng mũi vào canthiệp. Nhõn ông Nokia thì khongthe không nhúng, vì ông ý tàntạ quá lắm.



Tetracyclin

Ref: Asinerum Project Commander (4013)

Công nhận, đm cáy đéo zì tập đoàn doanh thu vài bịch mà đã đòi zốc bể lật zời
Đù móa a Đánh nổ, Zì cho thêm quả tem lựu đạn nữa đê.



AnKhang

Ref: Danko (3433)

Cô Đàn Cò có thể cho tôi xin địa chỉ congtac email được chăng??? Thành cô rất



Vợ Đánh

Bé nào quỡn trích lại còng cảnh báo của trùm nổ hehe 1- vài tháng trước khi dự khối âu bương sẽ lock down khi dịch còn manh nha ở Zũ háng, por favor aka s'il vous plait

Now, kinh tế muôn nơi nhẹ thì suy thoái aka recession mà nặng thì bước vào suy trầm aka depression, các diễn biến khả dĩ và có thể kiểm chứng được ở hai giai đoạn nài ra sao mời batong gúc.

Thiên di kiểu có nguy cơ gian lận cao như kết hôn giả case bé Lừa sẽ bị soi kỹ, bọn cưới vện ngoại có khi phải chứng minh năng lực tài chánh bảo trợ các kiểu chớ hông còn chỉ là chỉ cần cái 'quốc tịch' ái chà chà nhọc đấy văn công.

Cả trẹo Hồi nhơn tị nạn đã vào bương và sẽ tạo ra hàng chục trẹo thế hệ hai và hàng trăm trẹo thế hệ ba ái chà chà mông mẩy bự chà bá lửa của liền bà Hồi và Latin sanh đẻ khiếp lắm, hên thì bương có lực lượng nhơn công hùng hậu trẻ khỏe mà xui thì chúng Hồi lập mẹ một nhà nước tự trị trong lòng bương luôn ghê chưa.

Lịch sử chứng minh 400k Palestine chại tị nạn qua Yemen đã lập mẹ một nhà nước Hồi giáo tự trị ngay trong lòng xứ đã từng được mệnh danh là cái nôi Then-chù-chao aka Thiên chúa giáo hiếm hoi ờ Trung đông. Yemen giàu có đã gặp vận xui vì lòng trắc ẩn và gánh chịu nội chiến nghèo túng triền miên đến tận ngày nai.

Ngắt còng, fatra & rania đợi ....... khóa mõm hehe.



Sao Sɷlɷ

Ref: Asinerum Project Commander (4014)

Yeah, thanks Zì.

Chửi anh Bill tý cho ló vui mồm thối thôi.

GitHub với chúng anh như dầu-lửa cho xe-bay vậy. Gần như tất cả sản-phẩm của chúng anh đều đang chơi workflow webhook.

Cỏn (github) cứ hắt xì nhát thì chúng anh viêm-phổi luôn. Đcm.

Again, đây là vấn đề cộng sinh thôi, vì chúng anh, là người có tiền và là khách hàng cơ mà. Thì bọn chúng (MS/GitHub) phải phục dịch tốt chứ.

P/S: hai niên trước, khi MS bought GH, chúng anh đã định chạy qua GitLab, cơ mà rồi lại thôi.

Tweet cập nhật tình-thế nhanh hơn trang Status, Zì ạ.

[img=https://ipfs.io/ipfs/QmRpRZamMbGGTu7AFRnXmMMmzv13BcKMa9QbB8ZYuDZJDT/github-issue.jpg]



AnKhang

Hehe; Zì có loạt cồng giảng về máy tính thủa ban đầu hay quá.

Tôi còn nhớ như in, khi năm 96 được mua con máy bàn, có cái Processor X486 gì gì ấy, ổ cứng 2mb; vẫn còn ổ đĩa mềm FDD. ban đầu toàn chạy DOS đen xì với NC...; cũng đú chơi mấy trò game như a Lasao kể ở trên...
Máy tính lúc ấy cũng đắt vãi ra; con PC ghẻ ấy của tôi phải trả mẹ hơn 10 triệu ông cụ; bằng cái xe kêu rồi đó.

Tôi vẫn nhớ cảm giác sướng như lên đỉnh khi cài được quả win95 lên; từ màn hình DOS đen xì mà nó nhảy ra hệ window đẹp vãi chưởng; bố sư bọn MS, quá tài...

Thành ZÌ về loạt cồng gợi nhớ về những gì đã qua...



AnKhang

Như mọi cái nó phải là có đam mê và năng khiếu; tôi đéo có năng khiếu đéo gì; nên có tiếp xúc máy tính sớm mà vẫn ngu như thường; ngoài tài tháo lắp máy phần cứng ra ; thì chả biết đéo.

Ngày đi học nguyên đi sửa máy cho các em hot girl là đã đủ oai oách trẻ ranh rồi; hehe...

Tôi tiếp xúc với các đám bạn có năng khiếu về IT; địt mẹ chúng nó chịu khó học hành mày mò; có thằng trẻ trẻ; mà sau này sáng tác ra các kiểu clip.xxx các thứ; ra xèng phết...

Riêng IT là ngành mà tôi thấy nó chả phụ thuộc đéo gì vào tuổi tác; ông nào chịu khó và đam mê và sáng tạo; thỏa sức mà tung hoành...



Đầu Đất

Ref: Đong Xèng (4001)

Chỉ đạo con cặc. Lúc nào Zi bảo ôm thi ôm, bảo vó thì vó. Đã tin Zi rồi, còn hỏi nghi ngờ thế làm đéo gì.



Danko

Ref: AnKhang (4016)

Ceo@vaxumed.com



Danko

Ref: Danko (4022)

Nếu không có gì bí mật, cô cứ thảo luận trên quán.



Tiểu Mỡ

Đang chuẩn bị đi ngủ thì có thằng trộm ghé,

Tình hình đói nghèo đang diễn ra đông dần,

Các Bựa cẩn thận, nạn trộm , cướp sẽ gia tăng nhan nhản đấy

[img=https://1.bp.blogspot.com/-URJV_lroP3c/XqMwDwcr4lI/AAAAAAAAAyg/Z3xuI9VETxAkMuR5JRTQBo_cnjXxjLC1ACLcBGAsYHQ/s1600/1.jpg]
[img=https://1.bp.blogspot.com/-65DbpH1An98/XqMwD_tClWI/AAAAAAAAAyk/AGUrOJq6kG4uZyH5uOMsxPu3k3-UYWLMQCLcBGAsYHQ/s1600/2.jpg]



Tiểu Mỡ

Ref: Chị Bương Cảnhsátviên (3109)

Cồng này chị Bương nói đúng rồi này,

Kinh tế mà bị đình trệ thế này nữa, là sẽ có 1 bộ phận : đói ăn vụng, túng làm liều,

hây zaaa, Loạn mẹ nó lên cho mà coi,

Mà các anh các chị Zùn nhân, có ai đã nhận được cắc nào gói 62 ngàn tỷ chưa>???



Lừa Citizen

Zì giảng hay vl. Zen theo nghề IT 10 năm nhưng thiên di xong bỏ mẹ nghề nghể, hiện giờ đang làm thợ. Nên đọc Zì và các bựa giảng IT nghe lạc lõng vcl, kiến thức mai một dần đều.
Còn thím Đánh thân yêu, thím chỉ nên giảng về chủ đề đồng nát và dầu lửa.
Còn về thiên di thím nên bớt salong, hehe. Zen bây giờ không còn là Zen ngơ ngác hồi mới thiên di nữa nha.
Mỗi quốc gia bương có 1 chế tài khác nhao nhá.
Đéo phải nước nào cũng như tụi Mẽo.
Ví dụ là Thuỵ Điển, cả một xã thậm chí 1 làng thiên di sang kia kìa. Giá thiên di kết hôn Thuỵ Chó tầm 60k$
Mà Thuỵ như nào thím gúc đéo ra đâu keke.
Còn Tiệp lợn thì khó hơn nhưng không phải không quá khó. Đcm thiên di mà dễ thì đcm Giùn đi hết à?
Bớt salong please.



Asinerum Project Commander

Bâygiờ, Zì lại giảng xuống chúng cô zìa Lậptrình Dộng.

1. Lậptrình Dộng, aka Dynamic Programming, là món cănbản zành cho những con coder nào ghét Dệquy aka Recursion.

Cáy dcm thực ra, Recursion rất ngoan và dẹp và gọn và tiện và hữuzụng, nhưng nhiều con nôngphu coder tayngang nghĩ nó không trựcquan, và sometimes, khó hìnhzung.



Asinerum Project Commander

Ref: Asinerum Project Commander (4027)

2. Dặng có một chảzụ thiếtthực, Zì sẽ dưa ra quả code tính số Fibonacci.

Số Fibonacci, nhẽ chúng Bò cũng nghe dâudó, là số nằm trong zãy Fibonacci.

Zãy Fibonacci là zãy số tựnhiên mà số sau thì bằng cộng của 2 số dứng ngay trước nó:

0, 1, 1, 2, 3, 5, 8, 13, 21, etc

Zãy Fibonacci là một phátminh quantrọng của ông Người ever. Nó ảnhhưởng sâusắc dến nhiều vấndề của thiênnhiên.

Chảzụ bão/zông luôn chạy theo môphỏng Fibonacci:

[img=https://i.pinimg.com/originals/ae/0a/21/ae0a210db77e36b8368b44cd6d06828d.jpg]



Asinerum Project Commander

Ref: Asinerum Project Commander (4028)

3. Muốn tính số thứ {n} trong zãy Fibonacci, thì nhânzân yêu dệquy thường biên code như này:

fibonacci = function(n){
if(n<=1)return(n);
return(fibonacci(n-1)+fibonacci(n-2));
}

Chúng cô mang code này vào Node và tính thử:

fibonacci(10) >> 55
fibonacci(20) >> 6765
fibonacci(30) >> 832040
fibonacci(40) >> 102334155

Mời chúng cô tính luôn fibonacci(100) và báocáo Zì kếtquả.



Asinerum Project Commander

Ref: Asinerum Project Commander (4029)

4. Chúng cô báocáo láo gòy dó, bọn con Bò.

Dơngiản vì, nếu máydùi chúng cô cùi, thì hehe, ông ý phải mất dến 60 phút mý tính xong Fibonacci(100). Mời thử.



Asinerum Project Commander

Ref: Asinerum Project Commander (4030)

5. Nghĩa là, ông Dệquy sometimes dút mẹ chúng cô vào Rọ, không lốithoát.

Và cáy dcm, Lậptrình Dộng phải vào-cuộc.

Doạn code tính số Fibonacci thứ {n} dược sửa thành:

dynFibonacci = function(n){
f = [];
f[0] = 0;
f[1] = 1;
for(i=2;i<=n;i++){
f[i] = f[i-1] + f[i-2];
}
return(f[n]);
}

Mời chúng cô vác vào Node mà thử gòy báocáo Zì lần nữa.



Asinerum Project Commander

Ref: Asinerum Project Commander (4031)

6. Lần này thì, Fibonacci(100) dược tính trong nháymắt.

Kếtquả là: 354224848179262000000

Chúng cô biết tại-sao con số trên có nhiều số zero phía cuối không? Dơngiản vì, số dó vượt mẹ qua số nguyên nhớn nhất của Node.

Chúng cô cothe sửa lại code và mang vào Python, nơi số nguyên to baonhiêu cũng chạy ngoan.

Note rằng, Python déo thích các mảng dộng {dynamic-array}, nên code của chúng cô cothe phình-bự như Buồi trâu.



Asinerum Project Commander

Ref: Asinerum Project Commander (4032)

7. Vậy là dã rõ, trong những tinhtoán mang tínhchất quynạp {induction}, thì không phải lúc nào Dệquy cũng là anhem mý chúng mình.

Con Cơ nhớ nhé, dừng lạmzụng. Chơi thì chơi, dừng tóe máu.

Và lậptrình dộng dã lênngai.



Asinerum Project Commander

Ref: Asinerum Project Commander (4033)

8. Nhẽ có anh Bò sẽ thắcmắc, tại-sao doạn code Dệquy ngắngọn và dẹpdẽ nhường kia, mà chạy lâu kinhhoàng vậy?

Dơngiản vì, hàm dệquy dã khiến ông ý chạy thừa quá nhiều các phéptoán. Số {n} cứ tăng 1 dơnvị, thì số phéptoán lại tăng gấp 2.



Asinerum Project Commander

Ref: Asinerum Project Commander (4034)

9. Vậy nguyêntắc cănbản của lậptrình dộng là gì?

Nguyêntắc là: hoạtdộng trên mảng dộng aka dynamic-array.

Mảng dó tăng/giảm size theo nhucầu tínhtoán, và các phầntử của nó luôn biếndộng phùhợp mý hoàncảnh.



Asinerum Project Commander

Ref: Asinerum Project Commander (4035)

10. Dặng thịphạm, chúng cô sẽ giải bàitoán Knapsack trứzanh. Bài này phải zùng cả ông dệquy khótính cùng mý quyhoạch dộng mềmmại.

Dềbài là, trong kho có {n} món [tàisản] mý trọnglượng tươngứng là W1, W2, .., Wn cânkylô.

Và giátrị tươngứng của chúng là V1, V2, .., Vn.

Nếu chúng cô chỉ có một quả [balô] có sức chứa tốida KW cânkylô, thì chúng cô sẽ chọn những món nào?



Asinerum Project Commander

Ref: Asinerum Project Commander (4036)

11. Bọn con Bò còn nhớ môhình bàitoán vậntải mà Zì dã chỉdạo chúng cô giải bằng quyhoạch Monte Carlo, hay chăng?

Bài Knapsack này tươngtự, cùng là tạng toán vậntrù, một mônhọc mà dám sinhviên Giùn, lười như chó, rất ghét.

Dcm ghét vậntrù và kinhtế, nhưng lại chỉ thích kiếm job lương-cao và thiênzi bằng working-skill. Chúng cô quả hàihước vôdịch thiênhạ.



Gai Ngoan

Nay đã 25/4, em đọc lại tuyệt tác (văn đéo nào của Zì mà không tuyệt tác?) Libration, đến khúc cuối phần 1 mà ứa nước mắt.

Zì bốt tiếp phần sau tác phẩm này đi Zì?



Sao Sɷlɷ

Ref: Asinerum Project Commander (4037)

Chúng anh thích cắn nhanh thôi Zì ơi.

Đọc papers đau sọ lắm.

[img=https://media.springernature.com/original/springer-static/image/chp%3A10.1007%2F978-3-030-03398-9_33/MediaObjects/475721_1_En_33_Fig3_HTML.png]

Nash
[img=http://cafefcdn.com/k:2016/20160820-ebc991-1473752665941/chuyenhaitunhanvanhungungdunglythucuakinhtehoctrongcuocsong.png]



Sao Sɷlɷ

[img=https://www.researchgate.net/profile/Jacek_Mandziuk/publication/320003615/figure/fig1/AS:553453972066304@1508965117895/Four-phases-of-the-MCTS-algorithm-The-figure-replicates-an-illustration-presented-in-3.png]



Asinerum Project Commander

Ref: Asinerum Project Commander (4037)

Dcm rốtcuộc déo con nào dụng dến giảithuật, hoặc chúng cô quá NGUUU.

Zì giảdịnh chúng cô quá Ngu, còn hơn là chúng cô quá Lười, hoặc thảm hơn, chúng cô déo quantâm.

12. Giảithuật giải bàitoán Knapsack như sau.

Giảzụ chúng Bò cần tìm giátrị optimum của hàm knapsack(kw,w,v,n).

knapsack(kw,w,v,n) = ???

Dcm trong dó:

{kw} là tảitrọng tốida của balô chúng cô. Chúng cô khongthe nhặt hàng nặng hơn trọnglượng này, tính bằng cânkylo, chảzụ:

kw = 12;

{w} là trọnglượng của các món hàng trong kho, trìnhbày zưới zạng một mảng [array] các số zương, cũng zùng dơnvị cânkylo, chảzụ:

w = [1,2,3,4,5,6];

{v} là giátrị tươngứng của các món hàng trên, tính bằng xèng ôngtơn, chảzụ:

v = [10,25,32,48,51,64];

{n} chính là số các món hàng trong kho, dươngnhiên bằng 6:

n = 6;



Asinerum Project Commander

Ref: Asinerum Project Commander (4041)

13. Chúng cô lại tiếpcận bàitoán bằng phongcách quynạp-dệquy, như sau:

13.1: nếu n=0 (aka không có món hàng nào trong kho) hay kw=0 (aka balô chúng cô déo nhét dược Cặc gì nữa), thì hàm knapsack(kw,w,v,n) buộc bằng 0, déo cần tínhtoán cặc gì;

13.2: giảdịnh chúng cô dã tính dược giátrị knapsack(kw,w,v,n-1), déo cần biết bằng cách nào;

13.2: và cáy dcm bâygiờ chúng cô cần tính knapsack(kw,w,v,n) căncứ giátrị knapsack(kw,w,v,n-1) dã giảdịnh above.

Dây rõràng là một cúpháp của dệquy.



Asinerum Project Commander

Ref: Asinerum Project Commander (4042)

14. Nếu trọnglượng của món hàng thứ {n}, kýhiệu bằng w[n-1], mà nhớn hơn tảitrọng balô, nghĩa là:

w[n-1] > kw

cáy dcm thì, knapsack(kw,w,v,n) zĩnhiên bằng knapsack(kw,w,v,n-1) above, vì món hàng thứ {n} dó dơngiản là nặng hơn cả tảitrọng balô, nên zù nó to-xèng quýbáu tới dâu, cũng déo vác nó di dược.

Note: dặng làmviệc mý các mảng [array], thì index của nó phải tính từ zero, tức-là, w[0] là trọnglượng món hàng dầutiên, còn w[n-1] là trọnglượng của món hàng thứ {n}, aka món cuốicùng.



Asinerum Project Commander

Ref: Asinerum Project Commander (4043)

15. Giờ dến phần quantrọng nhất của quyhoạch dộng. Không có món này, thì dệquy cũng cắn cứt.

Khi w[n-1] <= kw, nghĩa là trọnglượng của món-hàng thứ {n} không nhớn hơn tảitrọng balô, thì chúng Bò cothe chọn nó (aka món thứ n) thaycho một trong các món dã chọn, saocho giátrị hàm knapsack(kw,w,v,n) phải nhớn hơn giátrị hàm knapsack(kw,w,v,n-1) dã biết, và tổngcộng trọnglượng của tấtcả các món-hàng [dược-chọn] không vượt-quá tảitrọng balô.

Nếu zùng dệquy thôngthường, thì chúng Bò sẽ phải loayhoay tìm:

knapsack(kw,w,v,n) = f(knapsack(kw,w,v,n-1));

Dcm khó vãi cứt ra chứ, Zì chưa nghĩ ra cách nào.

Và quyhoạch dộng sẽ ápzụng như sau:

Vì giátrị của món-hàng thứ {n} dó là v[n-1] và trọnglượng nó là w[n-1], nên chúng Bò phải giảdịnh LẠI tảitrọng của balô bị trừ di khoản w[n-1] dó. Dcm dây là mấuchốt của chữ DỘNG aka dynamic.

Nghĩa là, nếu thay một trong các món-hàng dã chọn bằng món {n}, thì giátrị optimum của balô sẽ bằng:

v[n-1]+knapsack(kw-w[n-1],w,v,n-1);

Nếu giátrị này nhớn hơn giátrị knapsack(kw,w,v,n-1) dã biết trước, thì việc chọn món {n} là dúng, ngược lại, thì déo cần nó nữa.



Asinerum Project Commander

Ref: Asinerum Project Commander (4044)

16. Kếtcục thì doạn code giải bàitoán knapsack như sau, biên bằng NodeJS. Chúng Bò cothe cópbết vào Node và chạy thử:

knapsack = function(kw,w,v,n){
if(n==0||kw==0)return(0);
if(w[n-1]>kw)return(knapsack(kw,w,v,n-1));
return(Math.max(
v[n-1]+knapsack(kw-w[n-1],w,v,n-1),
knapsack(kw,w,v,n-1)));
}

Dcm, dúng là, bíutơphân, aka beautyful.



Gia Ngua

Zì ngài cho mấy bài toán giải như ngày xưa đi Zì. ZÌ còn nhớ thời 2014 có con nào hỏi bài toán Division không.Tôi còn nhớ tôi đã giải bằng quinạp. Thời xưa quánbựa cũ Zì cũng ra mấy câu đố toán học mà bắt bọn bựa giải sao cho học sinh lớp 1 cũng hiểu đó, mấy cái đó hay phết



Gia Ngua

Ref: Là Sao (4039)

Bài toán a Sao post này bọn bương có trò gameshow thúvị ychang. Xem hay vãi.
[youtube=https://www.youtube.com/watch?v=p3Uos2fzIJ0&t=37s]



Asinerum Project Commander

Ref: Ngựa - PhoBitcoin.com (4046)

Boong chúng Bò, sau baonhiêu mùa, mà vưỡn zừng lại tại dó, sao?

Vậy chúng cô thiênzi làm Cặc gì mà sống? Chạy Uber? Zọn quán phở? Hay lại zũa neo? Sạc game cho phônkhôn? Giồng cỏ?

Zì không kỳthị nghề nào cả, nhưng ngánngẩm.

Hay chúng cô toàn dạibàng trọcphú hết gòy?



Gia Ngua

Ref: Asinerum Project Commander (4036)

Bài toán này Zì nêu nếu yêu cầu lấy dc nhiều tiền nhất thì chia bình quân trị giá/1kg của từng món hàng rồi so sánh chúng, lấy từ thứ có giá trị nhất/kg xuống. Đúng ko Zì.



ZC

bài toán trù vận kinh tế hay, khó.

phương pháp giải nó tốt nhất hiện nay là dùng máy tính; lại này lại liên quan đến giải thuật, một cái khó nhần.

Xưa kia em học bài toán chung chung bởi các giáo sư như sau: có 1 khoản tiền A, máy móc vật chất B, vật tư vật liệu C, con người D,..., nhiều thứ lắm. Yêu cầu tạo ra 1 cái máy đáp ứng được tốt nhất công việc X. Nói chung là các giáo sư đưa là 1 hàm vãi lồn biến, và cố định cái này tính cái kia, buồn ngủ quá đi thôi.

Bài toán trên cũng thấy nhiều trong thực tế. Ví dụ như đợt dịch covid vừa rồi. Các các tư vấn Zùn giải trù vận hơn bị giỏi đó Dì. Các lãnh tụ chỉ việc nó là cấm chai lọ; mở khóa quần từ tư vấn trên.

Các nhà quản lý luôn phải giải bài toán này, ngay cả mỗi cá nhân, ví dụ Thím Đánh giải bài này hơi bị siêu nhưng mà hehe đéo biết là là trù vận mới tài.



Asinerum Project Commander

Ref: Ngựa - PhoBitcoin.com (4049)

Cô biên thử code làm theo cách của cô nom có hơn cách của hànlâm không?



Gia Ngua

Ref: Asinerum Project Commander (4048)

Zì chỉ cần khơigợi đammê cho chúnganh, còn nên taychuyên haykhông thì tuỳthuộc đammê của cỏn mà. Tôi thấy mấy cái đơngiản dễhiểu kíchthích trí tòmò tốt phết. Như bài toán sác xuất Monty Hall nủi tiếng. Có anh chị nào chưa biết

Anh chị tham gia 1 gameshow có 3 cửa để chọn, 1 cửa là chiếc xe otô, 2 cửa là cục shit. Anh chọn 1 cửa, sau đó con MC mở 1 cửa ko phải cửa anh chọn là cửa chứa cục Shit. Và hỏi anh có đổi hay ko ?
Thật hayho là nếu đổi thì sácxuất thắng lên gấp đôi so với không đổi.



Gia Ngua

Ref: Asinerum Project Commander (4051)

Okay Zì, để tôi thử



ZC

Khi gặp 1 vấn đề thì:

1. khái quát bài toán: đã biết cái gì, có cái gì và cần tìm cái gì.

Khó vãi cứt với bài toán phức tạp, kiểu như giải bài toán Covid-19. Khó vì số liệu phải chính xác, cụ thể, đầy đủ.

2. Giải bài toán trù vận kinh tế.

3. Các bước đi cụ thể.

4. Chọn đầu bò, nhóm đầu bò để chốt ở các bước trên.

5. hehe, lại vòng lại giải từ bước 1 khi biết thêm các dữ kiện.



Asinerum Project Commander

Zì giảng nhiều lần gòy. Chúng cô giỏi, thì chưa chắc dã giàu. Vì muốn giàu, cần dược thiênchúa chọn. Nhiều con ngu như Bê cháu chú Bò nhưng vưỡn giàu. Giách Ma, sọ toàn cứt, nhưng cứ là bịchphú átăm.

Số những con Giách Ma dó có dông không, có dến lượt chúng cô không?

Hỏi dã là giảnhời.

Nhưng nếu chúng cô giỏi, Zì cothe khẳngdịnh chúng cô sống tốt, vượt xa các tiêuchuẩn bìnhthường. Zĩnhiên phải trên mức nghèo.

Chúng cô dợi thiênchúa chọn, thì nhẽ dến lúc chúng cô lên mẹ nóc tủ, Ngài vưỡn chưa chọn.

Nhưng chúng cô cothe tự làm cho mình thành giỏigiang, và dợi cơmay từ thiênchúa.



Asinerum Project Commander

Ref: Ngựa - PhoBitcoin.com (4052)

Chết cười mý anh Bò giờ này còn tin vào mấy trò mèo của media.

Zì xưa, từng là trùm của ngón này, khắp Giùn dều tỏ.



Asinerum Project Commander

Ref: Là Sao (4040)

Hình con Sao bốt này trìnhbày giảithuật MCTS aka Monte Carlo Tree Search chuyên zùng cho các game trítuệ nhântạo và học-sâu.

Khi chúng cô chơi một game trítuệ có rất nhiều nước-di {move}, thì chúng cô phải tìm nước theo Cây.

Chảzụ, khi chơi cờvua, thì bước dầutiên chúng cô cothe chọn chỉ là 20 nước (aka 16 nước của 8 ông Tốt và 4 nước của 2 ông Mã).

Nghĩa là, từ gốc, Cây của chúng cô rẽ mẹ ra 20 nhánh.

Nhưng dến bước thứ hai, thì số nước dã lên dến cả trăm.

Nghĩa là, từ 20 nhánh bandầu, chúng cô có thêm hàng trăm nhánh phụ nữa, kêu là nước-con. Ông Cây dã nên xumxoe như rừng. Và cứ vậy tiếptục.

Và thuậttoán MCTS sẽ giúp chúng cô tìm dược các nước di ngoan nhất bằng cách lầnmò Cây dó theo nguyênlý 4 bước: Chọn, Mở, Môphỏng Trạnghuống, và Truyền-ngược.



Asinerum Project Commander

Ref: Ngựa - PhoBitcoin.com (4052)

Mấy bàitoán nhidồng dó chỉ giúp chúng cô khi chúng cô dầu toàn dất chưa biết cặc gì.

Giờ là lúc chúng cô cần tăng boong. Nếu những thứ Zì giảng mà chúng cô vưỡn déo ngấm dược, thì hãy tin rằng, chúng cô chỉ dáng xúc cứt cho Bương, mà thoy.



Asinerum Project Commander

Dcm thực ra, những món giảithuật aiti Zì giảng, thì chúng cô cũng déo cần nhớ vội.

Chúng cô chỉ cần hiểu dược chúng, thì cũng dáng mừng gòy.

Zì biết boongtrình chúng cô dang ở dâu chứ.



Gia Ngua

Tôi thử giải bài toán Zì nói bằng cách so sánh giátrị trên cân nặng đây thưa Zì. Chạy cũng ngoan không biết chính xác k

https://js.do/code/432483



Asinerum Project Commander

Ref: Ngựa - PhoBitcoin.com (4060)

Zì thử

knap(1,2,3,4,5,10,25,32,48,51,12);

Thì dược kếtquả 115

Nhưng thực ra nó là 134.

Chênh nhiều quá



Asinerum Project Commander

Ref: Asinerum Project Commander (4061)

Mà sao anh Bò không zùng Array mà zùng dến hàng chục Parameter thế kia nhỉ?

Zo Lười, thì déo phải, vì biên cả chục Parameter thì hoàntoàn không lười.

Zo Tiện, cũng déo phải, vì déo zùng dược Loop.

Zo Nhanh, cũng déo dúng nốt, vì dọc các Param lẻ sẽ lâu hơn chỉ một lần dọc Array.



Gia Ngua

Ref: Asinerum Project Commander (4061)

Okay Zì, hiểu rồi thưa Zì do cách tôi ko tối ưu được số cân nặng.



Gia Ngua

Ref: Asinerum Project Commander (4062)

Do tôi ngu đéo biết thôi Zì. Tôi tayngang lâu lâu mò code vì mê thôi chứ cái nào tôi cũng phải google chứ không nhớ và cũng ko biết.



Asinerum Project Commander

Giờ Zì sẽ bắt chúng cô giải một bàitoán coding quyhoạch dộng dơngiản nhưng thiếtthực, giảithưởng là hehe, 30 Xuteng.

Giải dược treo trong 24 giờ. Hết 24 giờ mà déo có con nào cắn giải thì zành giải dó cho cuộc thi kếtiếp.

Con cắn-giải là con có nhời giải [dúng] dẹp nhất và sớm nhất. Nghĩa là, giải sai, thì zù sớm hay dẹp cũng bị loại. Giải sớm, nhưng code không dẹp, cũng không dược xét-thưởng.

Bàitoán là, cho trước một List gồm {n} tên người (dcm n nhớn baonhiêu tùythích). Chúng Bò phải tìm những tên nào trùng, và phải bằng phongcách coding quyhoạch dộng.

Code bằng ngônngữ nào cũng dược. Zì sẽ test trên Repl.it



Asinerum Project Commander

Ref: Asinerum Project Commander (4065)

Con nào taychuyên chê bài này dơngiản thì Zì ra bài khác, chỉ zành cho taychuyên, nhưng mý diềukiện là, chúng cô phải code trên Assembly cho Win64.

Nhớ là Win64, chứ không chơi Linux hay Win32, vì zezang gúc quá.



Gia Ngua

Ref: Asinerum Project Commander (4066)

Hay quá cứ bắt đầu đơngiản đi thưa Zì. Taychuyên cũng chưachắc biên tốiưu và đẹp mà.Mời mời các anh giải đố.



Asinerum Project Commander

Dặng côngbằng cho các anh Bò, tiếp sau cuộcthi coding thì sẽ có cuộcthi Vè Bựa, giảithưởng tươngtự.

Anh Bò nào thamgia thì dặt nút Xuteng zưới cồng. Anh nào nhận dược nhiều Xuteng nhất thì dược giải. Anh nào "chấm" cho người khác thì cũng phải thôngbáo chínhthức bằng cồng, tránh những anh tự chấm hehe.

Cũng không dược tự chấm Vè cho chính mình.

Khi nào bắtdầu và khi nào kếtthúc thì Zì sẽ thôngbáo sau [cuộcthi coding này]. Dạikhái chỉ những Xuteng nhận trong khoảng dó mý dược tính, còn ngoài hạn-thi thì thoy.



Asinerum Project Commander

Khi mần coding quyhoạch dộng, thì có 2 phongcách tiếpcận chính, là:

1. Phongcách Tabulation

Còn gọi là Bottom-up aka "từ chân lên dầu". Dạikhái, chúng mình sẽ chia một bàitoán nhớn thành những bàitoán con, và giải những ông con này trước, gòy gút ra nhời giải cho bàitoán cha.

2. Phongcách Memoization

Còn gọi là Top-down aka "từ dầu xuống chân". Dạikhái, chúng mình cũng chia một bàitoán nhớn thành những bàitoán con. Các ông con này dược giải zần và dược ghinhớ dặng lúc sau thì zùng lại, tránh trườnghợp các ông con bị giải di giải lại như trong dệquy.

Như bài Knapsack Zì nêu trên thì thuộc tạng Memoization này.



Asinerum Project Commander

Hai tínhchất cănbản của coding quyhoạch dộng là.

1. Tínhchất Optimal Substructure

Nghĩa là, cấutrúc con tốiưu. Khi bàitoán Cha có những bàitoán Con cothe cho kếtquả tốiưu, thì hànlâm bảo, bàitoán Cha mang tínhchất Optimal Substructure.

Chảzụ bàitoán Knapsack dã có tínhchất này.

2. Tínhchất Overlapping Subproblem

Nghĩa là, vấndề con dè nhau. Khi bàitoán Cha có những bàitoán Con trùng mẹ nhau, thì hànlâm bảo, bàitoán Cha mang tínhchất Overlapping Subproblem.

Chảzụ bàitoán tìm số Fibonacci dã có tínhchất này. Chính vì nó có quá nhiều Con dè nhau, nên khi giải bằng dệquy truyềnthống chúng Bò dã vỡ mùm.



Sao Sɷlɷ

Ref: Asinerum Project Commander (4055)

Lời Zì giảng hay quá.

Đã zả nhời 1 câuhỏi lớn lâu nay anh có.

Không thể chỉ một vế được (i) cố gắng cật lực, or (ii) chờ đợi vận may.

Mà phải cả hai: luôn cố gắng cật lực sẵn sàng khi Chúa giáng vận may xuống đầu lâu.



Gia Ngua

function a(arr){
var trung =[];
for(i=0;i<arr.length;i++){
for(j=i+1;j<arr.length;j++){if(arr[i]==arr[j]){trung.push(arr[i]);}}
}
return trung;
}

var b = new Array("A","B","C","D","E","F","D","A","B");
document.write(a(b));



Gia Ngua

Tôi xin post bài ứng thí hehe



Gia Ngua


Link test: https://js.do/code/432502



Sao Sɷlɷ

Ref: Asinerum Project Commander (4065)

I am in.

Hy vọng thật nhiều Bựa viên tham dự.

Đường vạn dặm bắt đầu bằng một bước chân.

Đi thôi đừng ngại ngùng.



Gia Ngua

à đeck cách tôi làm sai rồi, Chỉ đúng khi có các phần tử trùng nhau 1 lần, còn 3-4 tên trùng như nhau thì chạy k ngoan.



Asinerum Project Commander

Mời các anh Bò tiếptục.

Zì sẽ không nhậnxét gì cho dến khi cuộcthi kếtthúc, tránh ảnhhưởng dến những người nạp bài sau.

Zìa lýthuyết, bài-thi này rất dơngiản. Nhưng muốn làm dúng 100% (cả zìa kếtquả và yêucầu kỹthuật) ngay từ lần biên/post code dầutiên, thì không dơngiản nha, kểcả cho các taychuyên.

Chỉ qua những bài nhỏ như này, Zì dã dủ nom ra anh nào cothe hànhnghề dược hay không, hoặc dã hànhnghề baolâu.

Tạng như khi travấn chữ Mẽo. Chúng cô chỉ cần nói 1 câu, Zì dã cothe kếtluận luôn, khỏi cần 4 bài-thi zài như ngoằng.



Asinerum Project Commander

Làm baonhiêu bài tùy-thích nha, thế cho trùy



Asinerum Project Commander

Dcm bài này mà giớihạn số bytes (source-code) bằng 30-40 thì taychuyên cũng hộc-máu dó.



Asinerum Project Commander

Ref: Asinerum Project Commander (4079)

Hoặc giớihạn thờigian chạy zưới 1 giây cho 1 triệu phầntử dầuvào (aka tên người), thì cũng trùy không kém.



Phong Anh

Anh gửi bài tham gia chạy bằng python3

def checkDup(myList):
if len(myList) == 0:
return []
else:
if myList[-1] in myList[0:-1]:
return [myList[-1]] + checkDup(list(filter(myList[-1].__ne__, myList[0:-1])))
else:
return checkDup(myList[0:-1])



Phong Anh

Ref: Phong Anh (4081)

Gửi lại Dì link repl.it. Đcm post ở trên nó không thò thụt kiểu python được.
https://repl.it/join/adqmkrmq-hangoc2



Sao Sɷlɷ

Ref: Asinerum Project Commander (4080)

$cat words.txt | wc -l
943548

$gdate && python finddups.py && gdate

Start: 2020-04-25 11:21:02,677
('ZiZaiMem', 3)
('zymoid', 2)
End: 2020-04-25 11:21:03,959

Check array gần 1M phần tử hết hơn một xê-gông. Hay do py thông cùi bắp nhỉ Zì?



chimnon

Anh dự là quả thi này đéo đông bựa tham gia = thi vè đc.



Asinerum Project Commander

Mý vài mẹo-vặt và bỏqua phần check case-sensitive, thì code cho bài-thi của Zì zài 59 bytes (tính luôn cả chữ "function" khaibáo Hàm).

Mời các taychuyên thử sức.



Asinerum Project Commander

Ref: Phong Anh (4082)

Chúng Bò cho lên Repl.it là ngoan gòy, Zì chẹc phát dược ngay



Asinerum Project Commander

Ref: Là Sao (4083)

Nhanh phết dó.

Nếu dua tốcdộ thì nên zùng thử món khác, C chảzụ.



Asinerum Project Commander

Ref: Asinerum Project Commander (4085)

Zì vửa rút xuống còn 46 kýtự baogồm cả khaibáo Hàm.

Con nào biên ngắn hơn Zì tặng gấp dôi giảithưởng, aka 60 XUT



Asinerum Project Commander

Ref: Là Sao (4083)

Code của Zì test mý 1 triệu tên mý dộzài cốdịnh 18 kýtự trong Node, thì chạy hết 3 giây.

Nếu giảm dộzài tên xuống 10 kýtự, thì còn 1.5 giây.



Asinerum Project Commander

Ref: Asinerum Project Commander (4089)

Nhưng riêng quả in kếtquả, thì mất gần 1 phút



Gia Ngua

Đã test chạy ngon mà không ngắn, code JS hehe:

function find_duplicates(arr) {
var len=arr.length,
out=[],
counts={};

for (var i=0;i= 1 ? counts[item] + 1 : 1;
if (counts[item] === 2) {
out.push(item);
}
}
document.write(out);

return out;
}

find_duplicates(['one',2,3,4,4,4,5,6,7,7,7,'pig','one']);



Asinerum Project Commander

Ref: Ngựa - PhoBitcoin.com (4091)

Syntax error



Cert

Bài dự thi của anh Cert thân iu,

=COUNTIF( List, n)

Các cô đoán đúng rồi đó, ngôn ngữ coding của của anh Cert là Excel, haha

Một và chỉ một dòng duy nhất, Xong.

P/s: Giờ là mấy giờ mà bắt con người ta phải đi nghiên cứu phát minh cái bánh xe, con dở. Giùn chúng mình nên học ứng dụng cho tốt, thế thôi.

Anh Cert thân yêu,



Asinerum Project Commander

Ref: Cert (4093)

Doesn't work asshole



Cert

Bài toán về hàm tra cứu thông tin của cô thitbobiptet vừa bị khóa mõm,

Đến mấy anh coding tung ra bao nhiêu là giải thuật, rốt cuộc có ứng dụng giải quyết bài toán được hay không,

Trong khi, anh Cert tung ra một câu lệnh, duy nhất, là xong

Mời xem lại: "=INDEX($C:$C,MATCH(J3,LagreDataset,0))"

Một và chỉ một câu lệnh, thế thôi.

Anh Cert thân yêu



Cert

Về phư ơng diện quản lý, thật sự anh Cert cũng đéo hiểu ra cô thitbobiptet muốn gì với bài toán của cổ nữa,

Data cô thitbobiptet đang vận hành là excel, hàm cũng có sẵn trong thư viện, muốn tra cứu dữ liệu thì mang các hàm ra ráp vào là xong, sao lại muốn phức tạp lên, để làm gì, hay cô định làm màu với anh sếp mới,

Các cô quanh đây, đang vận hành lò mổ, hãy hết sức cẩn thận với các thể loại nhân viên như cô thitbobiptet, anh thật.

Anh Cert thân yêu



Cert

Hôm trước, cô thitbobiptet có đưa ra một thỉnh cầu, về bái toán quản lý 8 cửa hàng, bằng ứng dụng Lòn mobile (aka Hiệu trưởng),

Nom qua thì có rất nhiều ah coder đưa ra nhiều giải pháp, kê cả anh gì Kiều Ý với mô hình walmar, dcm nghe mà lịm cả lông Lòn, haha

À quên, Hiệu trưởng chúng mình còn tung ra đến gần 30 thuật toán, để chỉ đạo và định hướng trước, các cô nom mà há hốc chưa,

Anh Cert nom khá thú vị, với bài toán của cô thitbobiptet, tất nhiên về phương diện quản lý (not code) để giải bài toán mua tậu ứng dụng Lòn mobile, above.

Nếu các cô là người mua sắm, thì đứng vai gì để đạt được mục tiêu đề ra, dcm, xác đinh sai vai diễn là ăn cứt ngay, không đùa đâu.

Hay ho lắm,

Anh Cert thân yêu,






ZC

Ref: Asinerum Project Commander (4065)

Tìm và đếm các phần tử giống nhau trong list:
A = ['a', 'm', 'g', 'c', 'd', 'a','a', 'm','g', 'c', 'd']

Code on Python 3.6

result = {i:A.count(i) for i in A if A.count(i)>1}
print(result)

p/s: không biết có đáp ứng được yêu cầu bài toán quy hoạch động của Dì không. Nhưng mà đọc để làm bài này mờ hết cả pha.



Gia Ngua
This comment has been removed by the author.


Gia Ngua

Ref: ZC (4098)

Ngắn gọn chạy ngoan cơ mà tôi nghĩ chắc Zì không cho xài các hàm so sánh, sắp xếp có sẵn.



Gia Ngua

Ref: Asinerum Project Commander (4092)

https://repl.it/repls/IllustriousDopeyVendors



MicroTri

Hehe, Zì vừa khuấy bột vừa giặt tả mà cũng chịu khó phết, Mỗ dự thi đoạn Nodejs

[img=https://1.bp.blogspot.com/-lu3mYt25zsI/XqTItxWC_VI/AAAAAAAAR_g/3XYPvSDWPFQo0wq04FqCLxSDx71vobMIQCLcBGAsYHQ/s1600/CodeDuThi.jpg]

const lHoaHau = ['Mong Mo', 'Hoa Mau', 'Ngoc Trinh', 'Minh Thu', 'Tu Minh', 'Cong Nuong', 'Phuong Minh', 'Thi Mau', 'Ngoc Lan', 'Mong Mo', 'Thi Mau'];
const count = lHoaHau =>
lHoaHau.reduce((a, b) => ({ ...a,[b]: (a[b] || 0) + 1}), {}) ;
const duplicates = dict => Object.keys(dict).filter((a) => dict[a] > 1);
console.log(duplicates(count(lHoaHau))) ;

Link dự thi



Asinerum Project Commander

Ref: Cert (4093)

Dây là dặcthù của món gọi là "ngu tưởng mình khôn". Gửi bài zự thi thì okay, nhưng có cầnthiết phải luloa váng cả Sàn zìa một diều chắcchắn Sai, không?



Asinerum Project Commander

Ref: ZC (4098)

Code gọngàng, chạy ngoan, nhưng có vài vấndề:

1. Nó không là quyhoạch dộng nguyênthủy aka native-dynamic-programing, mà sửzụng một cấutrúc quyhoạch giả-dộng trứzanh của Python.

Nhưng code cho mảng dộng của Python vẫn cothe rút gọn hơn nhiều, tròn 30 bytes, thành:

{x for x in A if A.count(x)>1}

Kếtquả ngoan. Nhưng không dẹp, zo chạy chắcchắn chậm khi sốlượng data tăng lên, vì doạn Python này sẽ phải Count(x) cho mọi x, nghĩa là giải trùng các bàitoán Con. Nó không Dộng, mà chỉ Giả-dộng.

2. Bàitoán zành cho Python mý List và Count dược hỏi quá nhiều trên mạng nhưng chả con nào dềcập dến quyhoạch dộng, chảzụ:

https://stackoverflow.com/questions/9835762/how-do-i-find-the-duplicates-in-a-list-and-create-another-list-with-them

3. Cáy tuynhiên, nỗlực của con Cuồng vẫn rất dángkhen, Zì sẽ nghiêncứu thêm một giải khuyếnkhích.



MicroTri

Hehe, xin Zì thêm bài nữa cho chéc

[img=https://1.bp.blogspot.com/-KyJkjgnnz1Y/XqTg4JyQncI/AAAAAAAAR_s/2YVB8iKl0tUQOsaamF_ReV72eIz2pSjLwCLcBGAsYHQ/s1600/duthi2.png]

var a = Array("A","B","C","D","E","F","D","A","D","C");
var tg, n =a.length;
for(i = 0; i < n - 1; i++){
for( j = i + 1; j < n; j++){
if(a[i] > a[j]){
tg = a[i];
a[i] = a[j];
a[j] = tg;
}
}
}
var mName;
for(i = 0; i < n - 1; i++){
if(a[i] == a[i+1]){
var xx = i + 2;
while(a[i] == a[xx]){
xx++;
}
console.log(a[i]);
i = xx;
}
};

Link dự thi 2



Asinerum Project Commander

Ref: MicroTri (4102)

Khá khen cho con giàhói sắp lên nóc tủ.

Cốt chạy ngoan, có ýtưởng rõràng. Nhưng cũng lại Giả-dộng như cách tiếpcận của con Záy Cuồng. Nghĩa là tậptrung vào việc dếm {Count} các phầntử của List cho trước, gòy gá vào một Object mới khi Count>1.

Chúng cô cứ thử mần mý List có 1 chai phầntử, sẽ thấy ngay vấndề.



Asinerum Project Commander

Zì nhắc lại nha. Một thiếtkế quyhoạch dộng phải gồm ít nhất 1 trong 2 tínhchất. Là "cấutrúc con tốiưu" và "bàitoán con dè nhau".

Khi giải nó, phải chọn 1 trong 2 cách tiếpcận Tabulation và Memoization, aka Trên-xuống (chia bàitoán Cha thành các bàitoán Con và giải các bài Con này) và Zưới-lên (lưu kếtquả some bàitoán Con lại dặng zùng zìasau, tránh lặp lại).



Sao Sɷlɷ

Ref: ZC (4098)

Có thể nhiều hơn một ký tự cô ZC nhé.

Names = [“anh”, “em”, “anhem”, “emanh”, “anh”]



Sao Sɷlɷ

Ah, anh nghe chưa kỹ. Đoạn code của cô ZC chạy ngon.



MicroTri

Ref: Asinerum Project Commander (4106)

Hehe, Zì cứ leo nóc tủ trước, Mỗ túc tắc trèo sau.
- Cái này xưa nay mỗ chưa viết bao giờ, giờ ráng nặng để dự thi cho bằng chị bằng anh.
- Để kiểm cắn Mỗ xử lý mấy cái này bằng SQL Server tất.

P/s Dì chăm nhi đồng nên có nhiều cái hay phết: Hết dân ca hát ru, đến Beginer code.



Asinerum Project Commander

Zì sẽ giảithích tạisao việc tìm phầntử trùng trong một List bằng hàm Count cho từng phầntử không là quyhoạch dộng nhé, dặng chúng Bò dỡ ấmức.

Chảzụ chúng cô có List = [a,b,b,c].

Gặp con {a} aka phầntử dầutiên, thì hàm Count sẽ tra từ dầu dến cuối List, dếm nom có bao con giống thế.

Gặp con {b} dầutiên (aka phầntử thứ hai trong List), thì Count cũng làm như vậy. Nó phải dếm lại từ dầu tới cuối, zuyệt toànbộ 4 phầntử của List.

Nhưng gặp con {b} thứ hai (aka phầntử thứ ba trong List), là dcm hànhdộng thừathãi. Hàm Count lại thựchiện việc dếm như mý con {b} dầutiên.

Việc thựchiện giải bàitoán Con hai lần như thế, thì ngược mẹ nguyêntắc của quyhoạch dộng.



Asinerum Project Commander

Ref: Asinerum Project Commander (4107)

Khi gặp "cấutrúc con tốiưu", thì chúng Bò phải tìm kếtquả tốiưu dó dặng phụcvụ bàitoán Cha.

Khi gặp "bàitoán con dè nhau", thì chúng Bò phải giải mỗn bài Con chỉ một lần zuynhất, tránh hoangphí tàinguyên như trườnghợp Fibonacci dệquy mà Zì giảng above.



Asinerum Project Commander

Ref: MicroTri (4110)

Có những thứ không mang vào SQL Server dược dâu ông Bò ạ. Chảzụ các vấndề dồhọa, AI, giaotiếp client-server, giaoziện user-interface, bảomật cryptography, etc.

SQL chỉ zùng cho data thoy. Bàitoán này chỉ là một vízụ rất bé.



Asinerum Project Commander

Bàitoán tìm phầntử trùng này tuy nhỏ nhưng rất hay gặp trong thựctế, nhiều hơn chúng cô tưởng.

Dặng giải nó, có rất nhiều cách, dẹp có xấu có, và cách nào cũng cho kếtquả dúng.

Nhưng dó chưa phải vấndề của các taychuyên.

Cùng mý bàitoán dơngiản dó, các taychuyên phải làm sao cho nó thành mẹ tối-ưu. Chạy ngoan trong mọi trườnghợp, ngay cả khi gặp dến một kho Big Data vài chục terabytes mý hàng ngàn bịch document.

Chúng cô dừng nghĩ nó dơngiản nha. Vỡ mùm dó.

Con Tìu con Sao con Cơ, có ýtưởng nào chưa?

Zự-thi chỉ là chuyện vui thoy. Cái chính là chúng cô nên chiasẻ.



Asinerum Project Commander

Ref: Ngựa - PhoBitcoin.com (4101)

Zì dã nom. Mark vào dây cho nhớ



Asinerum Project Commander

Ref: MicroTri (4105)

Sai dó nha. Mời thử mý

var a = Array("A","B","F","C","D","B","E","F","D","A","D","C");



Asinerum Project Commander

Ref: Phong Anh (4081)

Dệquy. Mark dây cho nhớ.



Asinerum Project Commander

Ref: Asinerum Project Commander (4104)

Dặng thử tốcdộ của doạn code ngắn-như-ngủn dẹp-như-dẽ của con Záy Cuồng, chúng cô cothe tạo một data giả bằng các lệnh sau trên Python

A = []
import random
for i in range(1000000): A.append(random.random())
A.append(A[0])

Code này tạo 1 chai phầntử trong mảng A, có 2 phầntử dầutiên và cuốicùng trùng nhau.

Và sau dó chạy Code của con Cuồng.

Mý máydùi 3.2GHz, chúng cô biết nó chạy trong baolâu không?

Bốn phút và vưỡn déo cho kếtquả. Zì dành phải bấm CTRL-C thoát khỏi.



Asinerum Project Commander

Ref: Asinerum Project Commander (4118)

Dcm 1 chai phầntử, mỗn phầntử phải zuyệt 1 chai lần.

Dcm tổngcộng Python phải chạy 1 ngàn bịch phép sosánh. Dcm Zì dã thử chạy lại, 15 phút máy vưỡn dang vivu vivu trên mây trên gió, nên Zì déo tính dược thờigian thựchiện cú Code.

Chúng cô nom chưa. Dơngiản nhưng không zezang dâu. Khó lòi Lồn ra.

Mý tấtcả các con khác zự-thi, Zì dều test trên data dã zùng cho con Cuồng.

Cứ anh Bò nào chạy nhanh nhất là cắn giải. Nếu thờigian chạy code của vài Bò tươngdương, thì con nào code sạch-dẹp-gọn sẽ cắn giải.



Thiên cơ

Anh đây thưa Zì, bài Zì ra tối qua, anh đã nghĩ một lúc nhưng chưa ra, vì đề bài bắt buộc zùng dynamic programming. Còn nếu chỉ giải thì đoạn code này anh biên anh nghĩ nhanh vkl luôn, thời gian chạy hầu như là tuyến tính. Để anh nghĩ thêm nếu dùng dynamic

def dup1(A):
s = set()
for i in A:
s.add(i)
return s



Thiên cơ

ầ quên mất đoạn code trên sẽ có một bug nhỏ nếu con đầu tiên đéo là trùng. Tuy nhiên sửa rất dễ. NHưng anh đéo care đoạn code nay lắm, anh sẽ tập trung nghĩ giải theo kiểu dynamic



Asinerum Project Commander

Ref: Thiên cơ (4120)

Hoy Zì mở-rộng dềbài chút. Nghĩa là nếu không zùng quyhoạch dộng, thì chúng cô cothe làm bấtkỳ cách nào sao cho thờigian chạy code zưới 3 giây trên 1 chai phầntử zữliệu.

Mảng zữliệu dó {a} tạo trên NodeJS như sau:

a = [];
for(i=0;i<1000000;i++)a.push(Math.random());
a.push(a[0]);

Dcm trườnghợp nhiều con chạy nhanh ngang nhau, thì mý xét dến yếutố quyhoạch dộng và code dẹp-xinh cáccái.



Asinerum Project Commander

Ref: Thiên cơ (4120)

Con này biên Python mần Zì déo cốpbết dược. Vuilòng chèn &nbsp; trong code



Asinerum Project Commander

Ref: Thiên cơ (4120)

Doạn code này không cho kếtquả nha anh Bò.



Thiên cơ

sorry anh cũng thấy mĩnh lỗi , lúc đó anh vừa ngủ dậy nên biên vội, anh sẽ sửa lại soon, sau khi cắn sáng nhau,



Sao Sɷlɷ

Ref: Asinerum Project Commander (4114)

Khi chúng cô chạy 2-vòng-for (nested loop) thì khi dữ liệu lớn chút, code sẽ vỡ mùm ngay. Vì độ phức tạp là O(n^2).

O(n^2) với 1 chai data thì chạy mất ít nhất hết 10 ngày. Giả định máy cắn được 1chai phép tính một giây.

Do đó:

Với những bài zư lày phải tìm lời giải có tốc độ bé hơn tạng O(n) hay O(n log n).

Ý tưởng:

(i) Chạy 1 loop qua các phần tử --- O(n)
(ii) Check phần tử đó đã có chưa --- O(1)

Mấu chốt ở việc tổ chức cấu trúc dữ liệu cho (ii) để đạt O(1). countif, hay count() functions đéo ăn được vì có O(n). Hehe.



Asinerum Project Commander

Ref: Asinerum Project Commander (4114)

Zì cothe liệt ra vài ứngzụng thựctế của bàitoán mini này:

1. tạo số thẻ tínzụng, số tàikhoản, hoặc số ID cánhân nàodó

Dạikhái việc tạo số ID là random, nhưng cần chéch trong database nom nó dã tồntại chưa, là cả một vấndề. Nhất là khi chúng cô cần tạo ra hàng triệu số ID cùnglúc, như bọn bank chuyên cungcấp thẻ digital.

Mý con Chí khoái dánh SQL, thì cỏn sẽ zùng lệnh SELECT ... FOR ... dã dược Server chuẩnhóa. Nhưng diều dó chỉ thíchhợp khi làm dơnlẻ. Chứ khi dã chơi dến hàng chai zữliệu, thì cỏn cắn cứt ngay, phải có cách tiếpcận khác.

2. tạo pseudo-random data trong AI

Dạikhái cần tạo các zữliệu giả ngẫunhiên dặng hoạtdộng trong môitrường AI nhưng cần chúng không dược trùng nhau. Việc này zất hiếm xảy ra, nhưng cứ phải check cho chắc.



Asinerum Project Commander

Ref: Là Sao (4126)

Phải gòy dó. Con này dúng là hànhnghề coding kiếm sống.



Sao Sɷlɷ

I think: hashtable (hashmap) is the way to go.



Thiên cơ

À giờ anh mới đọc cồng đệ quy của cô Phong Anh. Đại khái độ phức tạp của thuật toán của cô là:

T(n) = T(n-1) + O(n)

lý do O(n) là do cô phải check xem phần tử "myList[-1] in myList[0:-1]" điều này tốn O(n), vì cô đá bằng array, trong worst case. Giải nó ra sẽ là:

T(n) = T(n-1) + O(n) = T(n-2) + O(n) + O(n) =...= T(1) + n*O(n) = O(n^2)

Nếu mà kiểm tra membership chỉ tốn O(1) thì cô sẽ được T(n) = T(n-1) + O(1) aka T(n) =T(n-2) + O(1) + O(1) =..= n*O(1) = O(n)

nếu cô implement dùng set (vì kiểm tra phần tử thuộc set hầu hết chỉ tốn O(1) vì nó chính là hashtable ) và đổi đệ quy sang vòng lặp đặng phù hợp với triết lý con pyhton thì sẽ được runtime T(n) đó




Asinerum Project Commander

Laodộng mý native numbers/strings, tạng các database, chỉ là bước chậpchững của nghề coding.

Khi chúng cô nên caoboong, laodộng mý dồhọa, video, audio, AI, etc, hoặc trên các Big Table, IoT, các bàitoán kinhtếlượng, hoặc các canthiệp hệthống, etc, thì chúng cô mý tỏ, tưzuy giảithuật nó quantrọng như nào.

Cứ nhạobáng di, bọn con Bò.



Thiên cơ

Code code lại thời gian chạy, là O(n) test với data của Zì: Nhanh.

def dup(A):
s = {A[0]}
dup = set()
for i in range(1, len(A)):
l = len(s)
s.add(A[i])
if l == len(s):
dup.add(A[i])
return dup

link:
https://repl.it/repls/TangibleSerpentineDatasets



Asinerum Project Commander

Ref: Thiên cơ (4132)

Nhanh vãi, quãng hơn 1 giây



Asinerum Project Commander

Ref: Thiên cơ (4132)

Zì dã nom. Mark vào dây cho nhớ



Asinerum Project Commander

Ref: Thiên cơ (4132)

Dây là Dynamic thựcthụ gòy dó.

Con này zùng Python Set rất hay, nhưng vẫn cothe sửa code cho chạy nhanh hơn nữa. Không tin mời anh Bò thử mý 50 chai data.



Asinerum Project Commander

Ref: Asinerum Project Commander (4135)

Khi zùng Set.add(some_element), anh Bò dã bắt Python zuyệt từ dầu dến cuối Set.

Anh Bò cần giảm thờigian lãngphí cho việc này. Cứ thử mý vài chục dến vài trăm chai data, sẽ nghiệm ra diều Zì giảng.



Asinerum Project Commander

Ref: Asinerum Project Commander (4133)

À 3 giây. Nhanh bằng Node thoy chứ không hơn.



Asinerum Project Commander

Ref: Thiên cơ (4132)

Zì edit code của anh Bò cho chúng Bò cốpbết

def dup(A):
  s = {A[0]}
  dup = set()
  for i in range(1, len(A)):
    l = len(s)
    s.add(A[i])
    if l == len(s):
      dup.add(A[i])
  return dup



Sao Sɷlɷ

Ref: Asinerum Project Commander (4138)

Anh tested code cô Cơ ngoan phết (ngoan hơn của anh)

$cat words.txt | wc -l
943548
$gdate && python thienco.py && gdate

2020-04-26 01:54:00,815
set(['ZiZaiMem', 'zymoid'])
2020-04-26 01:54:01,359

Nửa second



Asinerum Project Commander

Ref: Asinerum Project Commander (4138)

Code này rốirắm (và thừathãi, và sẽ chạy chậm) ở chỗ:

Cho object {s} add một element mới, và nom nó có tăng kíchthước không, nếu không (nghĩa là element dó dã added từ trước), thì xácdịnh element bị trùng.

Dây gọi là hànhvi "zùng tay phải gãi tai trái". Phứctạphóa vấndề hehe.



Asinerum Project Commander

Python vẫn nhanh hơn Node 1 boong.



MicroTri

Bài dự thi 3: Tốc độ. Viết bằng NodeJS
Thành Zì:
Test trên máy PC, Visual Studio Code: Khoảng 4s.
Nhưng test tại trang Repl.it: Khoảng 40s.

[img=https://1.bp.blogspot.com/-6qA9ae6bHJE/XqUpQbO-hFI/AAAAAAAAR_4/k2WrbTN89C8LYPD7wXLhO6ZVwOi4cCr9wCLcBGAsYHQ/s1600/duthi3.jpg]

mArr = [];
for(i=0;i<1000000;i++)mArr.push(Math.random());
mArr.push(mArr[0]);

//var mArr = Array(0.18421028760661873,0.20086490607536134,0.20317226568192415,0.18421028760661873,0.2039728771904301,0.20535585595464378,0.20535585595464378,0.20762541367497067,0.208085373958782,0.21192180369474767,0.22039666396094493,0.237579394087436,0.237579394087436);

mArr.sort();
n = mArr.length;
mKQ = [];
yy = 0;

for(i = 0; i <= n - 1; i++){
if(mArr[i] == mArr[i+1]){
var xx = i + 2;
while(mArr[i] == mArr[xx]){
xx++;
}

mKQ[yy] = mArr[i]
yy++;
i = xx -1;
}
}

kk = mKQ.length;

for(i=0; i < kk; i++){
console.log(mKQ[i]);
}

Dự thi 3-Tốc độ



MicroTri

Ref: Asinerum Project Commander (4116)

Hehe, Zì soi đến tận bẹn, mấy em chết chắc.



Sao Sɷlɷ

Ref: MicroTri (4142)

Okay.

Về cơ bản đã khử được "nested loop".

Zưng hàm mArr.sort(); của cô đắt (costly) phết đó.



Sao Sɷlɷ

Ref: Asinerum Project Commander (4136)

Python dùng cơ chế hashmap cho Set.add(some_element) đó Zì. Do đó chúng không duyệt lật lượt các phần tử O(n) mà đấm thẳng vào hash index luôn, O(1).



Sao Sɷlɷ

>>> dup = set()

>>> dup.add({})
Traceback (most recent call last):
File "", line 1, in
TypeError: [co="red"]unhashable type: 'dict'[/co]

>>> dup.add("Zi")
>>> print dup
set(['Zi'])



Muối Đất

DCM, đến lạy các Bựa- sao mình ngu thế?!
Nghe món này chắc chớt hay đi Châu Quỳ thật.
Bà Zì có lẽ lên cụ Sao Hỏa với em Mursk đi thoai!



Asinerum Project Commander

Ref: Là Sao (4145)

NodeJS cũng zùng các Object như Python Set/Dict thoy mà. Sao nó chậm hơn?



Asinerum Project Commander

Ref: Là Sao (4145)

Zì mạnphép con Cơ sửa code của con ý thành

def dup(A):
  s = {A[0]}
  d = set()
  for i in range(1, len(A)):
    if A[i] in s:
      d.add(A[i])
    else:
      s.add(A[i])
  return d

Và thờigian chạy giảm từ 1.29 giây xuống 1.12 giây, quãng 15%.

Nghĩa là Zì chỉ vứt bớt các thaotác thừa, và tối-ưu lại hàm Set.add() thoy.



Asinerum Project Commander

Ref: MicroTri (4142)

Khoảng 13 giây. Thế là tiếnbộ gòy dó. Nhưng zùng hàm Sort() thì khó tăng-tốc lắm.

Cũng chưa thấy quyhoạch dộng nằm dâu cả.



Asinerum Project Commander

Python nhanh hơn hẳn Node trong các tácvụ Async. Chứ khi mò vào Sync thì Python lại hỏng. Nghĩa là cũng làm dược, nhưng khó và kém chấtlượng.

Zùng cho môitrường phântán thì NodeJS hơn thấy rõ.



Sao Sɷlɷ

Ref: Asinerum Project Commander (4149)

Hehe Zì sửa net quá. hehe.

Anh đang post phần sửa y chang. khử được hàm len() là ngoan ngay.

[img=https://ipfs.io/ipfs/QmYGku2gCqsi8UcBBGUN2Wg83JmCbfMYGR5ns7pxdSyQ8C/less-function-calls.jpg]



Sao Sɷlɷ

Ref: Asinerum Project Commander (4151)

100% agreed.

sync/promise của javascript thì là ngoan nhất. Không anh nào đấm lại được.



Asinerum Project Commander

Ref: Là Sao (4152)

Hehe hàm Len gọi những 2 chai lượt, làm gì không chậm.



Thiên cơ

Tạ tạ Zì và anh Sao đã review.

Chúng mình thấy đó, khi đánh giá runtime của chương trình big O notation bỏ qua hết các constant factor nghĩa là đối với nó O(n), O(n),O(2n),...O(c*n) đều như nhau là O(n), ví dụ là đoạn code của anh trước và sau khi sửa đều là O(n). Tuy vậy trong thực hành chúng mình phải căn chỉnh để sao cho constant factor càng bé càng ngoan, điều này có thể cải thiện tốc độ chạy khá nhiều. Vậy bài học rút ra khi viết code là:

(1) Quan tâm đến cái tổng thể, aka chính là O(n)

(2) Quan tâm đến chi tiết, tinh giản các tác vụ thừa thãi, biến constant factor nhỏ nhất càng tốt, tích tiểu thành đại



ZC

Yeeee, Dì và các cô check hộ

https://repl.it/repls/WingedPettyBlogclient



Asinerum Project Commander

Ref: ZC (4156)

Nhanh phết. Quãng 3 giây. Khen.



Asinerum Project Commander

Hehe giờ các anh Bò dã thànhthạo quyhoạch dộng thấy rõ.

Khen.



Asinerum Project Commander

Giờ thì sửa code cho dèmdẹp dặng ganhdua mý dời là ngoan.

Mý cả tối-ưu code cho nhanh thêm chút nữa.



Asinerum Project Commander

Chúng Bò nom dó. Coding taychuyên dâu có khó. Vấndề là phải dược laodộng cùng taychuyên dặng tăngboong.



Gia Ngua

Cái Zì check thời gian ở chỗ nào chính xác vậy Zì, đoạn code của tôi check trên repl.it thì nó mất cả 10s hơn mới ra KQ còn chạy trên js.do hay dán trực tiếp vào console trình duyệt thì chạy chỉ tầm 2s. Vậy chỗ nào check chính xác nhỉ.



Asinerum Project Commander

Giờ nạp bàithi Dyn Prog Coding Contest còn kéo vài giờ nữa, nhưng Zì sẽ bốt luôn code giải của Zì dặng chúng Bò thamkhảo. Chúng Bò cothe sửa nó cho ngoan hơn, và sẽ dược chấpnhận.

Code gốc Zì biên bằng NodeJS, zài vỏnvẹn 46 bytes, mý vài mẹo-vặt láucá. Dây nhẽ là chươngtrình quyhoạch dộng ngắn nhất trầngian, Zì cothe phải dăngký bảnquyền sángtác.

Zù ngắn, nhưng nó dảmbảo hiệuquả tốida của một bàitoán quyhoạch dộng, mý thờigian chạy trên 1 chai data bằng quãng 3 giây, zữliệu case-sensitive.

Nhưng trước khi bốt bản gốc dẹp dến ngẹt-thở hehe, thì Zì sửa nó cho chạy trên Python, mý thờigian hết quãng 1.15 giây cho 1 chai data, bằng máydùi 3.2GHz của Zì, khá tươngdương mý nhời giải của con Cơ.

Dây là toànvăn hàm check phầntử trùng trong một mảng có dộzài bấtkỳ, cho Python V3:

def c(A):
 for i in A:
  if i in s:
   d.add(i)
  else:
   s.add(i)

Chúng cô cothe cốpbết vào Python Console và chạy ngay.

Dcm tuynhiên, muốn doạn code ngắn tí dó làm việc như-ý, thì chúng Bò phải chuẩnbị trước data cho nó, như sau:

s=set()
d=set()
A = []
for i in range(1000000):A.append(random.random())
A.append(A[0])

sau dó gõ lệnh chạy:

c(A)

Kếtquả nằm trong biến {d}, hãy gõ {d} lên console mà nom.



Asinerum Project Commander

Ref: Asinerum Project Commander (4162)

Doạn code này zài khoảng 60 bytes, zo dòihỏi cúpháp vòngvèo của Python, chứ thực ra nó cothe ngắn hơn nữa.



Asinerum Project Commander

Ref: Asinerum Project Commander (4162)

Và dây là nhời giải biên bằng Node, nhõn 46 bytes, mý vài mẹo hehe vặt cũng khá láucá.

d=(a)=>{a.forEach(i=>{if(o[i])b[i]=1;o[i]=1})}

Chúng cô dếm nom có dúng 46 kýtự, không.



Asinerum Project Commander

Ref: Asinerum Project Commander (4164)

Dcm thực ra Zì cothe vặt tiếp 2 kýtự cho còn nhõn 44, nhưng code nom không dẹp:

d=a=>{a.forEach(i=>{if(o[i])b[i]=1;o[i]=1})}



Asinerum Project Commander

Ref: Asinerum Project Commander (4165)

Dặng chạy Hàm Dộng ngắn nhất trầngian này, chúng Bò phải chuẩnbị data cho nó hehe như sau:

o={};
b={};
a=[];
for(i=0;i<1000000;i++)a.push(Math.random());
a.push(a[0]);

Sau dó gõ lệnh gọi Hàm d() above:

d(a);

Và kếtquả nằm trong thambiến {b}, hãy gõ nó vào console mà nom.



BankBua CủChuốiTây

huhu. nom Zì và các Bựa trình bày, anh chả hiểu mẹ gì.



Lìng Tình Phìng

Ref: Asinerum Project Commander (4162)

Ờ đoạn này đọc dễ hiểu ghê. Tất cả phần tử trùng lặp trong A sẽ nhét vào d. Còn s thì không có phần tử nào bị trùng cả. Nhưng mà em vẫn chưa hiểu quy hoạch động là thế quặc nào huhu

Đoạn Node Zì biên bằng arrow function thì nó gọn chứ có điếu gì mà khoe nhặng?



chimnon

Ref: BankBua CủChuốiTây (4167)

Anh Chuối nhớ ra pass ví chưa? Xèng mạng đang lên đó.



Asinerum Project Commander

Zì giảithích cho chúng Bò giảithuật này nha.

1. Khởitạo trước hai tập rỗng, là {S} và {D}. Tập {S} sẽ chứa mọi phầntử của mảng {A}, nhưng không có phầntử nào trùng. Còn tập {D} thì ngược lại, chỉ chứa các phầntử trùng của mảng {A}.

2. Và Hàm {C} sẽ zuyệt mảng {A} từ dầu dến cuối. Gặp phầntử nào thì phóng mẹ nó vào tập {S}, nếu nó chưa có ở dó. Ngược lại thì phóng vào tập {D}.

Dơngiản vậy thoy. Nhưng nó trìnhbày hoànhảo nguyêntắc của quyhoạch dộng là, (i) mỗn Bàitoán Con chỉ giải một lần, và (ii) bài-giải nào quantrọng thì dược lưu vào một nơi kíndáo nhằm sửzụng zìasau.



Asinerum Project Commander

Ref: Asinerum Project Commander (4170)

Khi xong gòy, thì mọi con Bò dều nói, dcm dơngiản thế này thì Chó nó cũng giải dược. Dộngdậy cáy con Cặc gì.

Dcm thế mà chúng cô có giải dúng déo dâu. Con biên dẹp thì hehe code chạy mất 1 ngày. Con chạy nhanh [hơn một chút] thì biên zài như ngoằng nom nát hết mẹ pha mà déo biết có chínhxác không.



Gia Ngua

Ref: Ngựa - PhoBitcoin.com (4101)


Cách Zì hìnhnhư về phươngpháp cũng giống cách này mà phải ko. Chỉ là của Zì gọngàng chỉnhchu hơn.

À mà Côngbố giải đi thưa Zì. Cơ cấu sao cho được chục giải con nào thamgia cũng cắn bèo giải VượtLênChínhMình nha,



Asinerum Project Commander

Ref: Ngựa - PhoBitcoin.com (4172)

Zìa cơbản thì có nhõn một nguyêntắc thoy, nếu muốn chạy nhanh nhất.

Nhưng cách của anh Bò thì thừa nhiều code quá, nên nó chạy lên tới 4.32 giây.



Asinerum Project Commander

Ref: Phong Anh (4082)

Zì chấm bài nào.

1. Bài của con Phong Anh, giải bằng dệquy chứ không chơi quyhoạch dộng, nhưng thờigian chạy quá khủng, Zì chờ dến 120 giây thì máy báo lỗi tràn dệquy, nên Zì zừng.

Xin cámơn và chúc maymắn.



ZC

Bài toán trên: cho 1 mảng có n-dòng, n rất lớn. Tìm các dòng có giá trị giống nhau.

Bài toán giải theo phong cách Quy hoạch động đã có lời giải của Dì và các bựa.

Dưới đây tôi viết code trên Python 3.6 dùng 2 modul pandas và random để giải với các chỉ số sau: A có 1 triệu dòng (phần tử), phần tử thứ 0 và 1 triệu giống nhau. các trường hợp khác mời Dì và các Bựa review.

- Code:

import pandas as pd
import random
#create list A with 1 millions element, A[0]=A[1millons]
A = []
for i in range(1000000): A.append(random.random())
A.append(A[0])
#create DataFrame from A
df = pd.DataFrame(A)
#select and print common elements
df = df[df.duplicated([0])]
print(df)

- Xem trên Repl.it:
https://repl.it/repls/PlumInsistentComputergraphics

nhưng chạy trên này, nó load công cụ lâu vãi lúa so với chạy trên destop cùi cài sẵn modul.

P/S: dùng pandas có thể biết rõ nhanh được vị trí cửa các phần tử trùng nhau, số lượng trùng nhau,...



Asinerum Project Commander

Ref: Ngựa - PhoBitcoin.com (4072)

2. Con Ngựa.

Bốt vài bài, nhưng vài trong dó sai, chỉ một dúng, nhưng chạy khá chậm (hơn 40% lần tốcdộ chuẩn của Node cho bài này). Zìa nguyêntắc thì không dược giải, vì có con khác làm ngoan hơn.

Nhưng con này chămchỉ, bốt bài dầutiên, và nhiệttình, cầuthị. Nên Zì tặng 3 XUT làm kỷniệm hehe, kèm thêm 1 tem Dầu Bò. Anh Bò nào yêu con ý thì cứ tặng thêm. Khen.



Asinerum Project Commander

Ref: ZC (4156)

3. Con Záy Cuồng

Con này cũng nạp vài bài, và có 1 bài dúng là quyhoạch dộng, thờigian chạy cũng chấpnhận dược (khoảng 3 giây).

Bài cỏn zùng Pandas chạy rất nhanh, ngang mý bài con Cơ (trên 1 giây), nhưng thờigian nạp Pandas dã 5 giây hehe.

Xét zìa nhiều yếutố như thờigian nạp bài, thờigian chạy code, thì con này chưa trúng giải dược. Nhưng nên dược khuyếnkhích vì ham tìmtòi.

Zì tặng con này 6 XUT làm kỷniệm, thêm 1 tem Óc Quất



ZC

Bài toán trên: cho 1 mảng có n-dòng, n rất lớn. Tìm các dòng có giá trị giống nhau.

Bài toán giải theo phong cách Quy hoạch động hhee đã mất nguyên 1 ngày, đọc 1 cơ số rất lớn các tài liệu về quy hoạch động, giải thuật, ví dụ. Đọc 1 cơ số cũng lớn gấp nhiều lần về các cú pháp của Python trên internet. Thực hành test code 1 lượng rất lớn bằng Python trên máy cùi.

Lời giải đầu tiên là:

A = ['a', 'm', 'g', 'c', 'd', 'a','a', 'm','g', 'c', 'd']
result = {i:A.count(i) for i in A if A.count(i)>1}
print(result)

nhưng chưa biết test thế nào; ko thấy đúng lắm với quy hoạch động.

Và ngồi khái quát bài toán vẽ vời hết 4 tờ A4: đcm nhận ra rằng nếu mảng A có 2 phần tử, aka A2 trở lên thì sẽ có mảng so sánh gốc là B2 , B2 có ít nhất 1 phần tử từ A2. Với mảng 3 phần tử, aka A3, thì A3=A2+A[3]. Giờ chỉ so sánh A[3] có nằm trong B2 không. Các bước tiếp theo cứ lặp lại như vậy. Và cuối cùng là nom vào Bn là thấy được kết quả.

Nhưng viết code cũng đéo đơn giản lắm, thử đủ kiểu, chỉ thừa thụt dấu cách là ăn shit, mò để hết hơi. Tay chuyên sẽ hạn chế đc điều này.

Và anh định bỏ mẹ cuộc, mệt đéo chịu đc, thì trc Thánh Lễ Chúa Nhật 3 Mùa Phục Sinh anh đã thành công. Kịp post tung xuy lên Quán xong thì vừa hay Thánh Lễ bắt đầu.

Thánh Lễ chủ đề về Con đường Emmau. Bìa giảng của Cha xứ hôm nay rất hay, thánh ca cũng tuyệt vời.

Trình bày trên để hehe đọc giải trí cuối tuần kiểu Trấn Thành dẫn media, Ngọc Trinh trình diễn bikini thui. Tôi hay xem của bọn Nga hơn, hài ước, sâu cay, thâm thúy hơn Bắc Zùn nhiều boong.



Asinerum Project Commander

Ref: MicroTri (4142)

4. Con Mích Chí

Zù giàhói sắp lên nóc tủ nhưng rất cốgắng, bốt nhiều bài. Nhưng thật không may, các bài giải của anh Bò hoặc nhầm thuậttoán hoặc quá chậm, và dều không nom rõ yếutố quyhoạch dộng.

Xin cámơn và chúc maymắn.



Asinerum Project Commander

5. Con Là Sao

Con này toàn dánh trống múa rối, chứ có bốt bài nào dâu. Chê.

Xin cámơn và chúc maymắn.



ZC

Ref: Asinerum Project Commander (4177)

Qua bài toán này, trình thuật và Python tăng boong vãi lúa. Đó là điều ko phải bàn cãi.

Mà lại được Dì thưởng tem, thưởng xèng. Vui như nhân dân Nga nghe trộm được điện thoại Trump gọi cho Kim

Trump: Hehe, Này, Kim, đã màу chết rồi à?
Kim: Hehe. Chúng nó đã giết tao.

[im]https://1.bp.blogspot.com/-U_wDlKixFgI/XqW4yFkCbNI/AAAAAAAABXk/rOshxPMMmO4nkEEnCZ5bbpfmf4JY-LqPgCLcBGAsYHQ/s1600/1.jpg[/im]



Asinerum Project Commander

6. Con Thiên Cơ

Cuốicùng. Con này dã dược chọn.

Zù Zì chưa hoàntoàn vừalòng mý code của cỏn, nhưng khó cothe tìm dược bài khác ngoan hơn. Cỏn dạt yêucầu cả zìa thờigian chạy, thờigian nạp bài, và cả yêucầu kỹthuật quyhoạch dộng.

Cỏn dã cắn giải Nhất cuộcthi coding Bựa lần dầutiên. Cỏn sẽ dược tặng 30 XUT giảithưởng, và phiếu VIP xanh, thêm một tem Ếch Ngồi Dáy Giếng.

Xin cámơn và chúc vuivẻ.



Asinerum Project Commander

À quên, con Phong Anh nếu tiếptục sinhhoạt Quán sẽ dược xét dặccách cấp tem-phiếu như lãothành cáchmạng.



Asinerum Project Commander

Các anh Bò mời zính nút nhận Xuteng vào cồng dặng Hiệutrưởng Zì banthưởng hehe.

Mai sẽ tổchức thi Vè Bựa. Giảithưởng cũng tươngtự.



ZC

Ref: ZC (4181)

Bị của em đây. Đa tạ Dì Ngài. Chúc Ngài sống vui, sống khỏe!
[xut=0xF7901908CB03B1cb4aA025c3A472314ff2245a55]



Asinerum Project Commander

Ref: ZC (4185)

Done 6 XUT kỷniệm. Mai Zì sẽ set tem-phiếu cho batoong



ZC

Ref: Asinerum Project Commander (4186)

Hhehe. Thành Dì. Chúc Ngài luôn bình an mọi nhẽ.



Phong Anh

Dì cấp tem cho anh đi



Sao Sɷlɷ

Ref: Asinerum Project Commander (4180)

Hehe. Thành Zì and chi-bộ.

Xin hứa sẽ chăm ngoan next time.



Lừa Citizen

Lâu quá rồi không hóng quán, vào quán thì show lên cái nài:

YOU NEED METAMASK PLUGIN TO RUN THIS APP

Quán có biến gì mới chăng hehe ?



Chị Bương Cảnhsátviên

Ref: Lừa Citizen (4190)

Chị nghĩ con lợn này sẽ ăn một quả khóa mõm siêu to khổng lồ ít nhất 20 mùa từ Zì ngài.

Loại như cô, tốt nhất thuộc về Phắc Búc, not here.



Gia Ngua

Ref: Asinerum Project Commander (4176)
Hehe thành Zì. Thithố thếnày vuiquá. Chủđề vè chắc sẽ hấpdẫn batoong lắm đây.
[xut=0x3C861deE28Dd907afD1EBCC4C5Cf2bEAfe76C410]



Đong Xèng

Ref: Lừa Citizen (4190)

hahaha, cắn-cặc rồi.



Đong Xèng

Nghe Zì-Ngài và các-bựa thực-hành IT tôi chỉ biết khép-chân nép kin-kín. Zì-Ngài quả-thặc vãi-lồn một-mình một-ngựa chém các con bựa-non bựa-già đổ như chuối gặp bão.



MicroTri

Ref: Ngựa - PhoBitcoin.com (4192)

T7, CN cuối tháng Zì cố tổ chức thi cái gì đó, tháng đến thi Hoa Hậu Bựa là vừa.



Đong Xèng

ở Nhật-lợn vì dịch nên được nghỉ Golden-Week sớm. Từ ngày sang giờ tôi mới được thảnh-thơi thế này, xin-phép bam nát mẹ quán, hehe.



Đong Xèng

Sau một thời-gian thực-hành xèng-mạng theo chỉ-thị từ Zì-Ngài muôn-vàn kính-yêu sống-mãi trong sự-nghiệp chúng-bựa. Tôi có chút nhận-xét về bộ-môn lướt-sóng

1. Tất-cả các giao-dịch mua-bán chuyển-xèng ( nạp-xèng fiat vào sàn, dùng xèng fiat mua coin, dùng thẻ tín-dụng mua coin...) hay rút-xèng về đều sẽ bị chạc phí. Phí này nhiều hay ít tùy sàn, tùy giao-dịch. Nhưng nhìn chung nếu rút-ra đâm-vào nhiều, các-cô sẽ phải chịu tổng-phí cao vãi-lồn. Nếu không có ghi-chép thống-kê cẩn-thận. Sau một thời-gian giao-dịch sẽ đéo thấy tiền lãi đâu, có khi còn âm. Zù giá coin so với lúc mua vào đã tăng cả 10-20% chẳng-hạn. Zì gọi đó là đầu-tư kiểu đếm-cua-trong-lỗ.



BankBua CủChuốiTây

Ref: chimnon (4169)

Nhớ được lỗ đít cô ạ. Đã bảo, với 2.4 ông Bit quyên Private keyđó, anh đã ghi tên mình vào những tên đần độn trong giới Cryto rồi.

giờ, làm kỷ niệm thôi. DCM ngu đéo chịu.



Đong Xèng

ví-dụ anh đang ở Nhật-lợn, để mua coin hiện-tại a làm như sau. Chuyền tiền Nhật sang ông-Cụ, nạp vào thẻ chuyển-tiền ( sau đó dùng thẻ này chuyển-tiền về tài-khoản ngân hàng ông-Cụ) một-lần không kể nhiều ít phí 500¥, phí gửi tiền dưới 30.000¥ phí 400¥( 3.72$ ), dưới 250.000¥ phí 1000¥ ( 9.3$ ), dưới 1.000.000¥ phí 1750¥( 16.28$ ).

vậy chỉ riêng thao tác chuyển-tiền từ Nhật về Lừa, a đã mất 1500¥ ( 13.96$ ) hoặc 2250¥ (20.93$ ), thật là vãi-cặc. Nếu dùng thẻ tín dụng để mua trung-bình phí cũng sẽ từ 3-4%, còn cắn-cặc hơn.

vẫn chưa hết sau khi chuyển-tiền về thao-tác tiếp theo là dùng xèng fiat mua coin hoặc stablecoin. Lại một lần phí nữa, về vấn-đề này nói không phải khen chứ sàn anh Ngựa giá-cả và phí đều hợp-lý. Nhưng cũng sẽ mất thêm vài $ nữa nếu mua quãng 10 ông ETH hiện nay.