Liệt kê các phần tử theo số ấn định (1 người xem)

Liên hệ QC

Người dùng đang xem chủ đề này

Tôi tuân thủ nội quy khi đăng bài

Hoàng Hải Khang

Thành viên mới
Tham gia
27/9/23
Bài viết
17
Được thích
2
Chào các bạn,

Excel có công thức nào liệt kê được các số lần xuất hiện theo cấp độ lủy thửa không các bạn,

Nếu nhập vào số lần tung đồng xu sẽ liệt kê ra các giá trị tương ứng


Mình có làm chi tiết trong file đính kèm
 

File đính kèm

  • 5.xlsx
    5.xlsx
    16.6 KB · Đọc: 24
  • main-qimg-787b5d62cd1b78ba54699df5ca4abc37.png
    main-qimg-787b5d62cd1b78ba54699df5ca4abc37.png
    71.9 KB · Đọc: 32
Chào các bạn,

Excel có công thức nào liệt kê được các số lần xuất hiện theo cấp độ lủy thửa không các bạn,

Nếu nhập vào số lần tung đồng xu sẽ liệt kê ra các giá trị tương ứng


Mình có làm chi tiết trong file đính kèm
Nếu tung 1 lần sẽ có 2 kết quả xảy ra , 2 lần sẽ có 4 kết quả, 3 lần sẽ có 8 kết quả và 4 lần sẽ có 16 kết quả, 5 lần có 32 kết quả , 6 lần có 64 kết quả
.... 12 lần sẽ có 4096 kết quả Heads hoặc Tails

xem file đính kèm mình đã upload,

vì số lượng nhiều quá không nhập bằng tay được, nên muốn nhờ Excel dùng hàm viết ra,

Cám ơn .
 
Xem file mà chẳng hiểu ban muốn thế nào luôn
Nếu tung 1 lần sẽ có 2 kết quả xảy ra , 2 lần sẽ có 4 kết quả, 3 lần sẽ có 8 kết quả và 4 lần sẽ có 16 kết quả, 5 lần có 32 kết quả , 6 lần có 64 kết quả
.... 12 lần sẽ có 4096 kết quả Heads hoặc Tails

xem file đính kèm mình đã upload,

vì số lượng nhiều quá không nhập bằng tay được, nên muốn nhờ Excel dùng hàm viết ra,

Cám ơn .
 
Nếu tung 1 lần sẽ có 2 kết quả xảy ra , 2 lần sẽ có 4 kết quả, 3 lần sẽ có 8 kết quả và 4 lần sẽ có 16 kết quả, 5 lần có 32 kết quả , 6 lần có 64 kết quả
.... 12 lần sẽ có 4096 kết quả Heads hoặc Tails
Bài này giống dạng thả thóc vào 64 ô bàn cờ.
 
Lần chỉnh sửa cuối:
Chào các bạn,

Excel có công thức nào liệt kê được các số lần xuất hiện theo cấp độ lủy thửa không các bạn,

Nếu nhập vào số lần tung đồng xu sẽ liệt kê ra các giá trị tương ứng


Mình có làm chi tiết trong file đính kèm
Dùng thử cái này có phải không?
B1=SUBSTITUTE(SUBSTITUTE(--DEC2BIN(ROW(),6),0,"T"),1,"H")

Kéo xuống
 
số kết quả: 2^row()
Muốn biết HT thì diễn ra các cố từ 0 đến (số kết quả - 1), dùng hàm Base(số, 2) để đỏi nó sang dạng nhị phân. Tự động hiểu 0 là H và 1 là T, hoặc dùng hàm Substitue để đổi.
 
Chào các bạn,

Excel có công thức nào liệt kê được các số lần xuất hiện theo cấp độ lủy thửa không các bạn,

Nếu nhập vào số lần tung đồng xu sẽ liệt kê ra các giá trị tương ứng


Mình có làm chi tiết trong file đính kèm
Mã:
V4 =IF(ROW(A1)>$T$4,"",V3+1)
W4 =IFERROR(SUBSTITUTE(SUBSTITUTE(TEXT(DEC2BIN(V4-1),REPT("0",$T$3)),"0","H"),"1","T"),"")
Copy xuống vài ngàn dòng :cool:
 
Dùng thử cái này có phải không?
B1=SUBSTITUTE(SUBSTITUTE(--DEC2BIN(ROW(),6),0,"T"),1,"H")

Kéo xuống
giải pháp này không đúng nha bạn,

Ví dụ mình nhập vào ô T3 là 4 thì số lần xuất hiện đồng xu có hai mặt xấp và ngữa ( heads / Tails ) là 2 x 2 x 2 x 2 = 16 kết quả như sau
HHHH
HHHT
HHTH
HHTT
HTHH
HTHT
HTTH
HTTT
THHH
THHT
THTH
THTT
TTHH
TTHT
TTTH
TTTT

nếu mình nhập vào ô T3 là 5 thì số lần xuất hiện đồng xu có hai mặt xấp và ngữa ( heads / Tails ) là 2 x 2 x 2 x 2 x 2 = 32 kết quả như sau

HHHHH
HHHHT
HHHTT
HHTTT
HHHTH
HTHTH
HTHTT
HTHHT
HTHHH
HTTHT
HTTTH
HTTTT
HTTHH
HHTTH
HHTHT
HHTHH
THHHH
THHHT
THHTT
THHTH
THTHT
THTHH
THTTT
THTTH
TTHHH
TTHHT
TTHTH
TTHTT
TTTHT
TTTHH
TTTTH
TTTTT

Tương tự thì mình nhập số lần tung đồng xu là 10 lần thì số lần xuất hiện kết quả là 2 x 2 x 2 x 2 x 2 x 2 x 2 x 2 x 2 x 2 = 1024 kết quả,

bạn xem file hình cây mình đính kèm bài số #1 sẽ hiểu, vì nếu nhâp số lần tung đồng xu lớn thì kết quả sẽ rất lớn nhập tay không nổi

Bạn chổ nào chưa hiểu ý mình mình sẽ giải thích, cám ơn bạn đã reply
 
giải pháp này không đúng nha bạn,
Không đúng là do bạn chưa hiểu công thức thôi, muốn y như cột W thì sửa lại 1 tí, do tớ xuất ảnh thành thơ chứ không mở file.
Tớ thích xem ảnh hơn là mở file lên rồi đọc chữ. Cái hay ở chỗ không biết làm thì ngay lập tức lướt qua đời nhau.

Của bác Hieu trên chuẩn đét luôn.
 
Mã:
V4 =IF(ROW(A1)>$T$4,"",V3+1)
W4 =IFERROR(SUBSTITUTE(SUBSTITUTE(TEXT(DEC2BIN(V4-1),REPT("0",$T$3)),"0","H"),"1","T"),"")
Copy xuống vài ngàn dòng :cool:
Đúng rồi bạn !

nhưng mình nhập giá trị tại ô số T3 ( số lần tung đồng xu ) là 12 thì thì ô T4 ( số lần các trường hợp xảy ra là 4096 lần ), lúc này tại ô V4 mình phải kéo công thức xuống 4096 hàng, và tại ô W4 mình phải kéo công thức xuống 4096 hàng mới ra kết quả,

Có cách nào khi mình nhập dữ liệu tại ô T3 là 18 thì tại ô( V4 và W 4 ) kết quả công thức tự động chạy xuống đúng 262,144 lần không bạn
Bài đã được tự động gộp:

Không đúng là do bạn chưa hiểu công thức thôi, muốn y như cột W thì sửa lại 1 tí, do tớ xuất ảnh thành thơ chứ không mở file.
Tớ thích xem ảnh hơn là mở file lên rồi đọc chữ. Cái hay ở chỗ không biết làm thì ngay lập tức lướt qua đời nhau.

Của bác Hieu trên chuẩn đét luôn.
do mình không nói rõ để bạn hiểu ý mình, bác HieuCD đã làm đúng nhưng chưa tự động được, phải còn kéo tay công thức xuống đúng số dòng hiện ra, nếu tại ô T3 mà nhập 25 thì phải kéo công thức xuống tới dòng 33,554,432 mới hiện đủ kết quả,
Mình đang nhờ làm tự động,
 
Mã:
V4 =IF(ROW(A1)>$T$4,"",V3+1)
W4 =IFERROR(SUBSTITUTE(SUBSTITUTE(TEXT(DEC2BIN(V4-1),REPT("0",$T$3)),"0","H"),"1","T"),"")
Copy xuống vài ngàn dòng :cool:
nhập ô T3 giá trị là 9 thì số lần xuất hiện 512 đúng, nhưng khi mình nhập là 10 thì hiện ra tới hàng số 512 hà bạn ơi, phía sau không hiện nửa, nếu nhập T3 là 10 kết quả đúng thì khi kéo công thức xuống phải là 1024 mới đúng
bạn xem file đính kèm thử
 

File đính kèm

Tớ dùng 2021 không ra được số dòng này.
DEC2BIN chỉ tính được đến số 511 thôi nên bị lỗi, không cần phải kéo thêm.
Chờ phương án khác.
Mình thấy Excel 2021 kéo xuống thấy có 1,048,576 dòng, nhờ bạn nói mới biết DEC2BIN chỉ hổ trợ đến 512 ,

cám ơn bạn !
 
Đúng rồi bạn !

nhưng mình nhập giá trị tại ô số T3 ( số lần tung đồng xu ) là 12 thì thì ô T4 ( số lần các trường hợp xảy ra là 4096 lần ), lúc này tại ô V4 mình phải kéo công thức xuống 4096 hàng, và tại ô W4 mình phải kéo công thức xuống 4096 hàng mới ra kết quả,

Có cách nào khi mình nhập dữ liệu tại ô T3 là 18 thì tại ô( V4 và W 4 ) kết quả công thức tự động chạy xuống đúng 262,144 lần không bạn
Bài đã được tự động gộp:


do mình không nói rõ để bạn hiểu ý mình, bác HieuCD đã làm đúng nhưng chưa tự động được, phải còn kéo tay công thức xuống đúng số dòng hiện ra, nếu tại ô T3 mà nhập 25 thì phải kéo công thức xuống tới dòng 33,554,432 mới hiện đủ kết quả,
Mình đang nhờ làm tự động,
Muốn làm tự động và cho số lớn phải dùng code VBA
 
Muốn làm tự động và cho số lớn phải dùng code VBA
bạn giúp mình VBA cho bài này nha, VBA chạy cho số lớn nhất trên Excel được tới bao nhiêu bạn, hiện tại đang là 2^100, Kết quả xuất ra y như vậy,

ví dụ mình nhập T3 là 10 thì V4 sẽ chạy từ 1 tới 1024 và W4 củng sẽ chạy ra kết quả từ 1 tới 1024, tương tự cho tất cả các giá trị còn lại, W4 cắt bỏ khoảng trắng 2 đầu để đảm bảo dữ liệu luôn luôn bằng độ dài ô T3
 
Tớ dùng 2021 không ra được số dòng này.
DEC2BIN chỉ tính được đến số 511 thôi nên bị lỗi, không cần phải kéo thêm.
Chờ phương án khác.
Kể tư 2013 đã có hàm Base, cho số cao đến 2^53-1
Tuy nhiên, do giới hạn chính xác của số thực là 15 chữ số cho nên bài này chỉ tính được tới 2^

Vì Excel chỉ có trên một triệu dòng cho nên đổi thành mảng hai chiều thì cũng chỉ được tới 1048576*16384 = 17179869184. Tức là chỉ tính được đến 2^34-1. Độ dài của con số này ở dạng nhị phân là 34.

Nếu sử dụng 2021 hoặc 365 thì có thể dùng hàm đổi dạng mảng 1 chiều ra 2 chiều. Các phiên bản khác thì dùng công thức khủng.
 
bạn giúp mình VBA cho bài này nha, VBA chạy cho số lớn nhất trên Excel được tới bao nhiêu bạn, hiện tại đang là 2^100, Kết quả xuất ra y như vậy,

ví dụ mình nhập T3 là 10 thì V4 sẽ chạy từ 1 tới 1024 và W4 củng sẽ chạy ra kết quả từ 1 tới 1024, tương tự cho tất cả các giá trị còn lại, W4 cắt bỏ khoảng trắng 2 đầu để đảm bảo dữ liệu luôn luôn bằng độ dài ô T3
Bạn @VetMini đã nói rỏ
Kể tư 2013 đã có hàm Base, cho số cao đến 2^53-1
Tuy nhiên, do giới hạn chính xác của số thực là 15 chữ số cho nên bài này chỉ tính được tới 2^

Vì Excel chỉ có trên một triệu dòng cho nên đổi thành mảng hai chiều thì cũng chỉ được tới 1048576*16384 = 17179869184. Tức là chỉ tính được đến 2^34-1. Độ dài của con số này ở dạng nhị phân là 34.

Nếu sử dụng 2021 hoặc 365 thì có thể dùng hàm đổi dạng mảng 1 chiều ra 2 chiều. Các phiên bản khác thì dùng công thức khủng.
1 sheet chỉ được 2^34-1 kết quả, không thể tạo 2^100 kết quả
Thật ra không nên tạo nhiều kết quả vì file rất nặng, xử lý không khéo sẽ không đủ bộ nhớ code VBA không chạy được, không lưu file được, nếu làm được sẽ phải tốn rất nhiều thời gian chạy code. Có lẽ bạn nên tìm phương án khác
 
Bạn @VetMini đã nói rỏ

1 sheet chỉ được 2^34-1 kết quả, không thể tạo 2^100 kết quả
Thật ra không nên tạo nhiều kết quả vì file rất nặng, xử lý không khéo sẽ không đủ bộ nhớ code VBA không chạy được, không lưu file được, nếu làm được sẽ phải tốn rất nhiều thời gian chạy code. Có lẽ bạn nên tìm phương án khác
Mình đang dùng Excel 2021, bạn hổ trợ mình giúp nhé tới 2^34-1,
Cám ơn bạn,
 
Excel 2021 không biết có mảng động chưa. Nếu có bạn có thể thử.
 

File đính kèm

Chạy đc tới 2^19, 2^20 EXCEL 2021 BÁO tràn bộ nhớ
Bài đã được tự động gộp:


Dùng học toán học
Toán xác suất thống kê từng là chuyên môn của mình và chắc chắn bảng liệt kê các kết quả kiểu nầy không cần thiết, thật ra là vô dụng
 
Chạy đc tới 2^19, 2^20 EXCEL 2021 BÁO tràn bộ nhớ
...
Dùng học toán học
Trường nào dạy cái này khá dốt.
Xác suất thóng kê là Toán Ứng Dụng. Đã Ứng dụng thì cái gì cũng có giới hạn.
Học cắm cúi mà không có căn bản ngay từ đầu (không biết xử lý giới hạn) thì kết quả đổ đi.

Toán xác suất thống kê từng là chuyên môn của mình và chắc chắn bảng liệt kê các kết quả kiểu nầy không cần thiết, thật ra là vô dụng
Trên giới hạn số của máy tính thì phải áp dụng con toán BIG NUMBER, hoặc LARGE INTEGER. Con toán này thuần toán và lập trình và có cả đống trên mạng. Nếu thớt muốn "học toán học" thì để cho thớt mò. Cái này không liên quan gì đến Excel nữa.
 
Trường nào dạy cái này khá dốt.
Xác suất thóng kê là Toán Ứng Dụng. Đã Ứng dụng thì cái gì cũng có giới hạn.
Học cắm cúi mà không có căn bản ngay từ đầu (không biết xử lý giới hạn) thì kết quả đổ đi.


Trên giới hạn số của máy tính thì phải áp dụng con toán BIG NUMBER, hoặc LARGE INTEGER. Con toán này thuần toán và lập trình và có cả đống trên mạng. Nếu thớt muốn "học toán học" thì để cho thớt mò. Cái này không liên quan gì đến Excel nữa.
cho xin vài từ khóa tìm kiếm để tìm hiểu nha bạn
 
Ai Excel chưỡi h. . . ô . . n g . . . . . . .!
 
Mới chỉ 49 thôi mà thật là kinh khủng. Các cụ nói cấm có sai là thật.

View attachment 295278
ko viết tay ra nổi nên mới nghĩ tới excel, phải có cách nối cột chạy trong excel sẽ đỡ
Bài đã được tự động gộp:

Excel có nhiều cột, dữ liệu này chỉ chạy trên một cột, giả sử dữ liệu xuất ra cột W, thì ta còn nhiều cột còn lại
 
Lần chỉnh sửa cuối:

Nếu máy đủ mạnh thì Ctrl+A/Paste thử xem, nhưng tràn bộ nhớ thế kia thì chắc cú chỉ nhìn mà thèm thôi.

Máy dỏm quá không test được, cố 34 cho trọn sheet mà không thể chạy nổi.

Thôi cố gắng đi học C++ đi nhé.

XFD1048576 =IF((COLUMN()-1)*1048576+ROW()<=2^34;SUBSTITUTE(SUBSTITUTE(BASE(ROW()-1+(COLUMN()-1)*1048576;2;34);0;"H");1;"T");"")

1695911326639.png1695911342328.png
 
Nếu máy đủ mạnh thì Ctrl+A/Paste thử xem, nhưng tràn bộ nhớ thế kia thì chắc cú chỉ nhìn mà thèm thôi.

Máy dỏm quá không test được, cố 34 cho trọn sheet mà không thể chạy nổi.

Thôi cố gắng đi học C++ đi nhé.

XFD1048576 =IF((COLUMN()-1)*1048576+ROW()<=2^34;SUBSTITUTE(SUBSTITUTE(BASE(ROW()-1+(COLUMN()-1)*1048576;2;34);0;"H");1;"T");"")

View attachment 295286View attachment 295287
Cảm ơn bạn nhiều nhé !
 
Có bạn nào rành Python thì dùng nó xem có xử lý được không, không xuất Excel mà xuất ra CSV.
Chắc không cần tới C++, thánh Delphi là được rồi :cool:.
 
Với dữ liệu khủng xuất ra dạng file nào cũng khó lưu và mở file. Giải pháp là lưu trên nhiều file
Nguyên tắc cơ bản của cơ sở dữ liệu là không lưu trữ dữ liệu có được qua tính toán từ dữ liệu khác. Nguyên tắc nào thường cũng có ngoại lệ nhưng bài nầy không thuộc ngoại lệ
 
Lần chỉnh sửa cuối:
Xét về mặt toán học thì con số này ( số dòng hiện ra ) 1,267,650,600,228,230,000,000,000,000,000 quá lớn, hiện tại chắc không có một phương pháp nào có thể đưa ra số lượng chuổi TEXT như thế với độ dài là 100 ký tự kể cả đưa lên web dạng text để làm dữ liệu nguồn.

về mặt KHẢ THI xử lý được thì độ dài của chuổi TEXT là 50 ký tự và có độ dài là 1,125,899,906,842,620 hàng ( 2^50 ) thì có khả thi đưa lên web để làm dữ liệu nguồn, có được không các bạn
 
Xét về mặt toán học thì con số này ( số dòng hiện ra ) 1,267,650,600,228,230,000,000,000,000,000 quá lớn, hiện tại chắc không có một phương pháp nào có thể đưa ra số lượng chuổi TEXT như thế với độ dài là 100 ký tự kể cả đưa lên web dạng text để làm dữ liệu nguồn.

về mặt KHẢ THI xử lý được thì độ dài của chuổi TEXT là 50 ký tự và có độ dài là 1,125,899,906,842,620 hàng ( 2^50 ) thì có khả thi đưa lên web để làm dữ liệu nguồn, có được không các bạn
Khiếp, đầu năm đến giờ toàn dữ liệu hàng triệu dòng là đã hết hồn rồi.

Đã thấy mình quá nhỏ bé.

Nay gặp dữ liệu mà không biết cách đọc số luôn. Lại càng bé nhỏ hơn.

Ôi vĩ đại, thật là vĩ đại.
 
Nếu dùng ngôn ngữ lập trình để giải quyết vấn đề này, thì ngôn ngữ nào sẽ giải quyết được các bạn, mình mò học ngôn ngữ đó,
Nếu ngôn ngữ lập trìnhkhông khả thi để có được kết quả, các bạn cbo mình biết,
Cảm ơn các bạn
 
Bình chọn C++ 1 phiếu. ...
Học sặc gạch chỉ để làm trò chơi như liệt kê một chuỗi 2^49 ký tự?
Người ta chỉ làm bộ hỏi chứ kẻ thật tâm thì đã học rồi.

Chú thích: C++ chỉ dùng để dựng những phần mềm chạy thật nhanh, hoặc những hệ thống thất lớn. Ngày xưa, người ta cũng dùng để viết games, nhưng bây giờ thì hết rồi.
Trên thực tế, những code "nhúng" người ta cho vào các bộ phận điều khiển viết bằng Java hoặc C++ là loại đặc biệt của chuyên viên kỹ thuật, không hẳn của dân lập trình.

Thời buổi bi giờ, muốn học lập trình thì chỉ nên học Python. Những cái như VBA,... là ứng dụng.
 
Nếu dùng ngôn ngữ lập trình để giải quyết vấn đề này, thì ngôn ngữ nào sẽ giải quyết được các bạn, mình mò học ngôn ngữ đó,
Nếu ngôn ngữ lập trìnhkhông khả thi để có được kết quả, các bạn cbo mình biết,
Cảm ơn các bạn
Ngôn ngữ nào cũng được, cái này quan trọng là thuật toán tính <-- ứng dụng mà chẳng thực tế thì sao ứng dụng
 
Nếu dùng ngôn ngữ lập trình để giải quyết vấn đề này, thì ngôn ngữ nào sẽ giải quyết được các bạn, mình mò học ngôn ngữ đó,
Nếu ngôn ngữ lập trìnhkhông khả thi để có được kết quả, các bạn cbo mình biết,
Cảm ơn các bạn
Không phải là không khả thi. Nhưng giải bài này cần kiến thức khá cao về số học (toán), và giới hạn (lập trình).

Ngôn ngữ hữu hiệu nhất là ngôn ngữ lô gic. Biết cách đặt câu hỏi cho mạch lạc thì có thể hỏi người khác dễ dàng.
Tội gì phải "mò học ngôn ngữ" lập trình trong khi học ngôn ngữ giao tiếp vừa giải vấn đề dễ hơn, nhanh hơn, lại vừa có lợi cho tiền đồ.

Ngôn ngữ nào cũng được, cái này quan trọng là thuật toán tính <-- ứng dụng mà chẳng thực tế thì sao ứng dụng
Như tôi đề cập ở trên, không có ngôn ngữ nào qua được ngôn ngữ giao tiếp cả. Ứng dụng luôn được qua các công nghệ khác, không chỉ riêng IT.
 
Có mảng động thì không cần ấn ctrl shift enter nhé.
Chào bạn,
Vì nếu 2^50 ra số dòng quá lớn và quá giới hạn Excel 2021,

Nếu vẫn là 2^50 hoặc thấp hơn củng được, mình tạo thêm 1 ô phụ là BB5, và nhập giá trị là 1 số nguyên vào đó, giá trị số nguyên bé hơn hoặc bằng 2^,

Nếu được như vầy sẽ ko cần lưu file với dữ liệu lớn, mà chỉ cần xử lý dữ liệu để lấy ra 1 dòng ấn định trước

Không biết giải pháp này có khả thi không,

Cám ơn bạn
 
Python, Python, và Python.
Python (kể từ phiên bản 2.5) có khả năng tự động chuyển từ Long Long sang dạng Big Integer khi con số vượt giới hạn chính xác bình thường của máy tính.

Cũng có vài cách khác để làm. Và có vài ngôn ngữ khác có thư viện để thực hiện. Nhưng chúng khá phức tạp, và học theo kiểu của thớt thì chắc vài năm. Người nào có khả năng thì chỉ cần từ khóa Big Number là đã học được rồi. Đâu có dây dưa đến cả tháng vẫn chưa thấy gì.
 

Bài viết mới nhất

Back
Top Bottom