@zingler Uhm, nếu là số lượng nhân viên thì có thể đếm trực tiếp từ cái mảng nhân viên ra rồi, nên không cần phải lưu nó lại làm gì. Lúc đó đoạn code khai báo ban đầu có thể sửa lại một cách gọn hơn là
let rooms =[];
rooms.push({id:"phong1","staffs":"1,2,3,4,5"});
rooms.push({id:"phong2","staffs":"1,2,4"});
rooms.push({id:"phong3","staffs":"1,2,3"});
rooms.push({id:"phong4","staffs":"2,3,4"});
rooms.push({id:"phong5","staffs":"3,4"});let staffs =[];for(let room of rooms){
room.staffsArray = room.staffs.split(',');// Tính trực tiếp số lượng từ độ dài của mảng
room.staffCounts = room.staffsArray.length;
staffs = staffs.concat(room.staffsArray.filter((item)=> item && staffs.indexOf(item)<0));}
thôi
Tuy nhiên đoạn code kia sau khi chạy thì sẽ ra kết quả
Phòng 1: 1 (chứa người có mã nhân viên là 5)
Phòng 2: 1 (1)
Phòng 3: 2 (2, 3)
Phòng 4: 1 (4)
Phòng 5: 0
Trong khi nếu sắp xếp chuẩn thì mỗi phòng có thể chứa 1 người là
Tức miêu tả về thuật toán bạn đưa ra ở đề bài, đó là giữ lại mã số nhân viên ở phòng có số lượng nhỏ nhất, và trừ số lượng ở các phòng khác đi 1, thì chưa phải là thuật toán tối ưu nhất rồi (^^;)
@thangtd90 à đúng rồi, từ đầu cái đề đã sai rồi, thật ra nó là số lượng nhân viên = length của dsnv rồi , thế k nghĩ ra lưu dsnv như bạn nhỉ, dựa theo cách của bạn mình thấy ổn rồi
@zingler Căn bản là mục đích cuối cùng bạn muốn làm gì, và đang cố gắng giải quyết vấn đề như thế nào thôi
Nếu mục đích là để phân bố nhân viên vào trong từng phòng, thì có vẻ ngay logic ban đầu bạn đưa ra ở câu hỏi đã có vẻ không ổn rồi
Cho mình hỏi rõ hơn, cái trường số lượng "sl" ở đây là số lượng gì vậy bạn nhỉ? Số lượng nhân viên (đếm từ trong mảng danh sách mã số nhân viên), hay sức chứa còn lại của phòng
@zingler à mình hiểu rồi, cám ơn bạn nhé Ở trên mình hiểu nhầm một chút, phải là giữ nguyên số lượng ở phòng có số lượng ít nhất, và trừ 1 ở tất cả các phòng còn lại, chứ không phải là trừ 1 ở các phòng có số lượng ít nhất
"Mô hình mà chúng ta sử dụng ở đây bao gồm 6 lớp Convolutional layer và 2 lớp Fully Connected Layer nối tiếp nhau. Tại sao chúng ta lại sử dụng mô hình này, và tại sao mô hình này lại hiệu quả cho bài toán, mình sẽ giải thích trong bài tiếp theo" - Bài tiếp theo là bài nào anh ơi ?
Ban đầu
Phòng 1: 1,2,3,4,5 (msnv) - 6 (sl)
Phòng 2: 1,2,4 - 6
Phòng 3: 1,2,3 - 6
Phòng 4: 2,3,4 - 5
Phòng 5: 3,4 - 4
Step 1, so sánh mã nhân viên 1
Phòng 1: 1,2,3,4,5 - 6 <
Phòng 2: 1,2,4 - 5 // Trừ đi 1 so phòng có số lượng ít nhất
Phòng 3: 1,2,3 - 5 // Trừ đi 1 so phòng có số lượng ít nhất
Phòng 4: 2,3,4 - 5
Phòng 5: 3,4 - 4
Step 2, so sánh mã nhân viên 2
Phòng 1: 2,3,4,5 - 5 // Trừ đi 1 so phòng có số lượng ít nhất
Phòng 2: 2,4 - 5 <
Phòng 3: 2,3 - 4 // Trừ đi 1 so phòng có số lượng ít nhất
Phòng 4: 2,3,4 - 4 // Trừ đi 1 so phòng có số lượng ít nhất
Phòng 5: 3,4 - 4
Step 3, so sánh mã nhân viên 3
Phòng 1: 3,4,5 - 4 // Trừ đi 1 so phòng có số lượng ít nhất
Phòng 2: 4 - 5
Phòng 3: 3 - 4 <
Phòng 4: 3,4 - 3 // Trừ đi 1 so phòng có số lượng ít nhất
Phòng 5: 3,4 - 3 // Trừ đi 1 so phòng có số lượng ít nhất
Step 4, so sánh mã nhân viên 4
Phòng 1: 4,5 - 3 // Trừ đi 1 so phòng có số lượng ít nhất
Phòng 2: 4 - 4 // Trừ đi 1 so phòng có số lượng ít nhất
Phòng 3: - 4
Phòng 4: 4 - 3 <
Phòng 5: 4 - 2 // Trừ đi 1 so phòng có số lượng ít nhất
Step 5, so sánh mã nhân viên 5
Phòng 1: 5 - 3
Phòng 2: - 4
Phòng 3: - 4
Phòng 4: - 3
Phòng 5: - 2
ở step 2 số lượng phòng 1 đã nhỏ hơn phòng 2 rồi bác
Step 2 là step so sánh đến nhân viên có mã số là 2 bạn nhỉ. Lúc đó thì làm sao phòng 1 lại có số lượng nhỏ hơn phòng 2 được nhỉ
Cả 3 phòng 1, 2, 3 đều khởi đầu với số lượng là 6. Và như ở phía trên thì bạn có ghi là
như với mã nhân viên 1 thì phòng 1,2,3 đều có, nên khi so thì sẽ chọn cái có số lượng nhỏ nhất, nếu bằng nhau thì giữ phòng đang đi so, ở ví dụ này thì phòng 2 và 3 sẽ bị trừ.
thì tức là sau Step 1, thì phòng 2 và 3 sẽ còn lại 5, và phòng 1 sẽ là 6, chứ nhỉ
@thangtd90
ở step 2 số lượng phòng 2 đã nhỏ hơn phòng 1 rồi bác, đề bài là tìm ra nhân viên ở cùng nằm 2 phòng, thì ưu tiên phòng số lượng nhỏ nhất, tránh số liệu ảo, ví dụ tuy ông này được phân công làm ở 2 phòng, nhưng thời điểm hiện tại ông ấy ngồi ở 1 phòng thôi, phòng còn lại có ghế trống thì dựa vào code để hiển thị số lượng dư ghế cho người khác ấy bác
THẢO LUẬN
A cho em hỏi. Sao e chạy trên centos7 thì n không nhận file .env ạ?
bài viết thật hữu ích
@thangtd90 với bài toán này bạn có nghĩ ra được hướng giải nào tối ưu nhất cho bài toán không ạ? từ khâu sql luôn ấy ạ
@thangtd90 bởi vậy mình mới lên tham khảo anh chị em đó haha, với cách làm của bạn hiện tại mình thấy ok r, cảm ơn bạn nhiều nha
@zingler Uhm, nếu là số lượng nhân viên thì có thể đếm trực tiếp từ cái mảng nhân viên ra rồi, nên không cần phải lưu nó lại làm gì. Lúc đó đoạn code khai báo ban đầu có thể sửa lại một cách gọn hơn là
thôi
Tuy nhiên đoạn code kia sau khi chạy thì sẽ ra kết quả
Trong khi nếu sắp xếp chuẩn thì mỗi phòng có thể chứa 1 người là
Tức miêu tả về thuật toán bạn đưa ra ở đề bài, đó là giữ lại mã số nhân viên ở phòng có số lượng nhỏ nhất, và trừ số lượng ở các phòng khác đi 1, thì chưa phải là thuật toán tối ưu nhất rồi (^^;)
@thangtd90 à đúng rồi, từ đầu cái đề đã sai rồi, thật ra nó là số lượng nhân viên = length của dsnv rồi , thế k nghĩ ra lưu dsnv như bạn nhỉ, dựa theo cách của bạn mình thấy ổn rồi
@zingler Căn bản là mục đích cuối cùng bạn muốn làm gì, và đang cố gắng giải quyết vấn đề như thế nào thôi
Nếu mục đích là để phân bố nhân viên vào trong từng phòng, thì có vẻ ngay logic ban đầu bạn đưa ra ở câu hỏi đã có vẻ không ổn rồi
Cho mình hỏi rõ hơn, cái trường số lượng
"sl"ở đây là số lượng gì vậy bạn nhỉ? Số lượng nhân viên (đếm từ trong mảng danh sách mã số nhân viên), hay sức chứa còn lại của phòngVậy mình trừ hết rồi dựa theo số lượng mà + thì hay hơn bạn nhỉ? nếu làm theo này sẽ có trường hợp như sau
nhưng thực tế để phân bố đều tránh phòng bị ùn tắc thì sẽ có dạng
hoặc do mình xử lý từ sql đã sai rồi :-<
Great!
sai chính tả, truthy chứ ko phải trutly bạn nha
@cuongtobi96 tks anh, em cài gói liên kết để apache run được php và chạy được rồi
@zingler à mình hiểu rồi, cám ơn bạn nhé
Ở trên mình hiểu nhầm một chút, phải là giữ nguyên số lượng ở phòng có số lượng ít nhất, và trừ 1 ở tất cả các phòng còn lại, chứ không phải là trừ 1 ở các phòng có số lượng ít nhất 
"Mô hình mà chúng ta sử dụng ở đây bao gồm 6 lớp Convolutional layer và 2 lớp Fully Connected Layer nối tiếp nhau. Tại sao chúng ta lại sử dụng mô hình này, và tại sao mô hình này lại hiệu quả cho bài toán, mình sẽ giải thích trong bài tiếp theo" - Bài tiếp theo là bài nào anh ơi ?
tks

@thangtd90
Đề bài là vậy bác ạ
Viết bài như này nghỉ đi.lấy công số để đỡ bị phạt à
@zingler
Step 2 là step so sánh đến nhân viên có mã số là 2 bạn nhỉ. Lúc đó thì làm sao phòng 1 lại có số lượng nhỏ hơn phòng 2 được nhỉ
Cả 3 phòng 1, 2, 3 đều khởi đầu với số lượng là 6. Và như ở phía trên thì bạn có ghi là
thì tức là sau Step 1, thì phòng 2 và 3 sẽ còn lại 5, và phòng 1 sẽ là 6, chứ nhỉ
@thangtd90 ở step 2 số lượng phòng 2 đã nhỏ hơn phòng 1 rồi bác, đề bài là tìm ra nhân viên ở cùng nằm 2 phòng, thì ưu tiên phòng số lượng nhỏ nhất, tránh số liệu ảo, ví dụ tuy ông này được phân công làm ở 2 phòng, nhưng thời điểm hiện tại ông ấy ngồi ở 1 phòng thôi, phòng còn lại có ghế trống thì dựa vào code để hiển thị số lượng dư ghế cho người khác ấy bác
Đúng là gọn hơn thật nhưng phải đánh đổi là nếu muốn thêm/bớt component thì phải xoá ở 2 nơi.
Ca này khó nhỉ. Mình cũng chưa bị lỗi này bao giờ. Bạn thử check xem có config nhầm lệnh nào trong
.zshrckhông?