THẢO LUẬN

@ManhNguyen98 ầu sết, thanks e đã phát hiện 🙏

0
thg 9 25, 2024 7:14 SA

Chào A ! A cho e hỏi, khi em cài Plugin như vậy, mình click mà chữ danh mục đã tạo thì nó ko show ra bài viết danh mục đó,thì có cách nào show ra không a ?

0
thg 9 25, 2024 7:11 SA

Hi ! Cảm ơn bạn rất nhiều nha,chắc sắp tới ổn nhờ 1 đội code về làm luôn ak

0
Avatar
đã bình luận câu trả lời trong câu hỏi
thg 9 25, 2024 6:47 SA

@nourist

//#include <cstdint>
//#include <time.h>
#include <bits/stdc++.h>
using namespace std;

#define ll long long
#define ld long double

const int limit = 1e8 + 8;

namespace bitsetSieve {
	uint64_t p[limit / 64 + 11];

	bool test(int idx) {
		return (p[idx / 64] & (1ULL << (idx % 64))) == 0;
	}

	void mark(int idx) {
		p[idx / 64] |= (1ULL << (idx % 64));
	}

	void sieve() {
		mark(0);
		mark(1);
		for (int i = 3; i * i < limit; i += 2) {
			if (test(i)) {
				for (int j = i * i; j < limit; j += i * 2) {
					mark(j);
				}
			}
		}
	}
}

namespace bitsetSieve2 {
	uint32_t p[limit / 32 + 11];

	bool test(int idx) {
		return (p[idx >> 5] & (1 << (idx % 32)));
	}

	void mark(int idx) {
		p[idx >> 5] &= ~(1 << (idx % 32));
	}

	void sieve() {
		const uint32_t bit1 = ~0;
		memset(p, bit1, sizeof p);
		p[0] = bit1 - 3;
		register uint32_t* pointer = bitsetSieve2::p;
		for (int i = 3; i * i < limit; i += 2) {
			register int i2 = i % 32;
			if(i2 == 1) {
				++pointer;
			}
			if ((*pointer) & (1 << i2)) {
				for (int j = i * i; j < limit; j += i * 2) {
					p[j >> 5] &= ~(1 << (j % 32));
				}
			}
		}
	}
}

namespace boolSieve {
	bool p[limit];
	
	void sieve() {
		memset(p, 1, sizeof p);
		p[0] = p[1] = 0;
		for (int i = 3; i * i < limit; i += 2) {
			if (p[i]) {
				for (int j = i * i; j < limit; j += i * 2) {
					p[j] = 0;
				}
			}
		}
	}
}


int main() {
	ios_base::sync_with_stdio(false);
	cin.tie(NULL);
	cout.tie(NULL);

	clock_t start = clock();
	boolSieve::sieve();
	cout << "bool sieve: " << clock() - start <<"ms"<< endl;

	start = clock();
	bitsetSieve2::sieve();
	cout << "bitset sieve: " << clock() - start <<"ms"<< endl;

	for(register int i=0; i<limit; ++i) {
		if(boolSieve::p[i] != bitsetSieve2::test(i)) {
			cout << i << " - Error! " << endl;
			break;
		}
	}

	return 0;
}

Nếu sửa lại để dùng 32bit thì nhanh hơn này

Output:

bool sieve: 1207973ms

bitset sieve: 726665ms

Link test: https://onecompiler.com/cpp/42t7s5m7j

0
Avatar
đã bình luận cho bài viết
thg 9 25, 2024 4:39 SA

Builder có giá trị khi buildPart là một hàm phức tạp. Các phần code ví dụ lại quá đơn giản, cuối cùng lại call constructor của Product nên không thể hiện được ý nghĩa của Builder.
=> Tôi cũng cân nhắc làm ví dụ phức tạp nhưng trong nội dung bài viết thì tôi ưu tiên viết ngắn gọn tránh việc anh em khó đọc, khó theo dõi
=> Đoạn call constructor tôi chưa hiểu, bro cho tôi 1 ví dụ để hiểu rõ hơn cách bro implement builder. Quan điểm của tôi là constructor thì vẫn phải gọi, quạn trọng là gọi ở chỗ nào thôi.

Một tác dụng khác của Builder là không cần phải tạo đối tượng ngay lập tức mà có thể chia ra thành nhiều bước, khi các yếu tố hội tụ mới cần build hoàn chỉnh. Các bước có thể phụ thuộc vào nhau để tránh sai sót.
=> Đồng ý

Điều gì khác nhau giữa dùng Car Builder.BuildVF3() so với new VF3() : Car()? Điều gì khác nhau giữa Builder và Factory?
=> Vấn đề cần giải quyết của 2 pattern là khác nhau, tôi ko thấy sự liên quan, tuỳ vào nhu cầu cần sử dụng mà áp dụng. Ví dụ, cần nhiều step phức tạp để tạo ra product thì dùng builder, factory ko có vai trò gì trong TH này

Không rành về Java nhưng private constructor thì làm cách nào new được object đấy nhỉ?
=> Ý đồ là ép caller phải gọi thông qua builder nhưng cuối cùng thì vẫn phải có chỗ nào đấy gọi new Car(). Mà constructor set về private, không gọi được new từ bên ngoài nên mới cần đưa class CarBuilder vào làm nested class bên trong Car.

0

@maitrungduc1410 a ơi ở section Vite - Vue bị thiếu tạo file src/loader.ts ạ

0
Avatar
đã bình luận cho bài viết
thg 9 25, 2024 3:17 SA

Builder có giá trị khi buildPart là một hàm phức tạp. Các phần code ví dụ lại quá đơn giản, cuối cùng lại call constructor của Product nên không thể hiện được ý nghĩa của Builder.

Một tác dụng khác của Builder là không cần phải tạo đối tượng ngay lập tức mà có thể chia ra thành nhiều bước, khi các yếu tố hội tụ mới cần build hoàn chỉnh. Các bước có thể phụ thuộc vào nhau để tránh sai sót.

Điều gì khác nhau giữa dùng Car Builder.BuildVF3() so với new VF3() : Car()? Điều gì khác nhau giữa Builder và Factory?

Không rành về Java nhưng private constructor thì làm cách nào new được object đấy nhỉ?

0

Thanh toán qua cổng thanh toán hoặc ví điện tử thì các bên dịch vụ này cung cấp api. Hiện nay thường thấy là dùng dịch vụ của momo đã có, còn vnpay thì chưa rõ hỗ trợ đến mức nào. Làm trực tiếp với ngân hàng thì tùy ngân hàng, họ sẽ cung cấp gói API riêng cho doanh nghiệp nhỏ hay không. Làm việc với các bên cổng thanh toán hay ví điện tử thì dễ hơn vì họ có đội ngũ bán lẻ để hỗ trợ. Ngân hàng thì phải tìm hiểu trước các sản phẩm của họ xem họ cung cấp không. Các gói sản phẩm phục vụ doanh nghiệp nhỏ hoặc cá nhân sẽ có bộ phận phụ trách và hỗ trợ, tư vấn khách hàng.

0

@QuangofG Quan trọng là nó hỗ trợ split cửa sổ, chia tab, tạo profile,... còn đẹp thì tuỳ mắt mỗi người

+1
thg 9 24, 2024 9:25 SA

@tanjiro2406 thanks bác

0
thg 9 24, 2024 9:14 SA

@QuangofG Bài viết rất bổ ích

+1

lót dép hóng nhé e 😂

+1

👏 bài viết hay quá ạ. Hy vọng có thêm bài deploy MFE trong series này ạ

+1
thg 9 24, 2024 8:37 SA

cảm ơn bạn

0
thg 9 24, 2024 8:37 SA

trông cũng ngầu ha, mình sẽ thử luôn kk. thanks bác

0
thg 9 24, 2024 8:22 SA

Bài viết bổ ích quá!

+1

MacOS thì có 2 thằng này dùng cho đẹp này này. https://app.warp.dev/referral/KJ9KQG https://tabby.sh/

+1

@Huy_Hoang Bạn có thể cho mình contact liên lạc riêng được không

0

@Huy_Hoang mình đã fix andrees động rồi . chỉ có điều khi mình là host thì sử dụng được. nhưng khi mình vào host người khác các chỉ số đều bị mất . mình không thể can thiệp

0
Viblo
Hãy đăng ký một tài khoản Viblo để nhận được nhiều bài viết thú vị hơn.
Đăng kí