Tách 1 Số Nguyên Thành Các Chữ Số Và Lấy Random 1 Trong 2 Số Trang chủ » Tách Các Chữ Số Thuộc Hàng Trăm Hàng Chục Hàng đơn Vị » Tách 1 Số Nguyên Thành Các Chữ Số Và Lấy Random 1 Trong 2 Số Có thể bạn quan tâm Tách Các Chữ Trong Excel Tách Các Ký Tự Trong Chuỗi Tách Các Layer Trong Photoshop Tách Các Từ Trong Chuỗi Java Tách Các Từ Trong Excel Tách 1 số nguyên thành các chữ số và lấy random 1 trong 2 số programming python Khanh_Do_Gia (Khánh Đỗ Gia) June 26, 2020, 9:49am #1 Cho một số nguyên n. Mỗi bước biến đổi, ta có thể trừ n đi một giá trị bằng một trong những chữ số có trong n. Hãy tính số bước tối thiểu để n = 0. Cho e hỏi làm sao để tách 1 số nguyên ví dụ 237 thành 2,3,7 ạ? Với cả lấy random 1 trong 2 số như thế nào ạ? HR16 (Gà Coder) June 26, 2020, 3:52pm #3 Đầu tiên, để tách một số nguyên ra hàng đơn vị, chục, trăm, nghìn,…có hai cách: Chia, cách làm như sau: - Hàng đơn vị: n mod 10(mod trong Python, Java, JS,…là %) - Hàng chục: n/10 mod 10(lấy số ở hàng chục bằng cách lấy phần nguyên).10 - Hàng trăm: n/100 mod 10(lấy số ở hàng trăm bằng cách lấy phần nguyên).100 - Hàng nghìn: n/1000 mod 100(lấy số ở hàng nghìn bằng cách lấy phần nguyên).1000 - Muốn tách một số nguyên bất kì ra hàng đơn vị, chục, trăm, nghìn,…thì dùng vòng lặp chạy từ 1 đến log(n)(lấy giá trị ở phần nguyên) rồi dùng quy tắc trên. Chuyển số đó sang chuỗi rồi lấy từng kí tự ra, chuyển các kí tự này ngược trở lại thành số :V Thứ hai, để lấy random 1 trong 2 số thì cho một biến n(đặt tên gì cũng được), n có giá trị random trong khoảng 0 đến 1. Nếu n = 0 thì lấy số thứ nhất, n = 1 thì lấy số thứ hai. 3 Likes tungsoul (thanh tung phan) June 26, 2020, 10:17am #4 Khanh_Do_Gia: m sao để tách 1 số nguyên ví dụ 237 thành 2,3,7 ạ? Với cả lấy random 1 trong 2 số như thế nào ạ? def num_to_set(n): result = Set() while n: # thêm số hàng đơn vị vào kết quả return result lấy random from random import choices x = choices(list(num_to_set(237))) nhưng mà bài này như bài toán đổi tiền ấy, random là thấy sai rồi. oops edit dùng set thì chuẩn hơn list, tại vì ko có giá trị trùng 4 Likes Khanh_Do_Gia (Khánh Đỗ Gia) June 26, 2020, 10:07am #5 thanks a :3 lần nào post cx đc a chỉ :V rogp10 (rogp10) June 26, 2020, 11:26am #7 Bài này tách chữ số ra rồi QHĐ từ n về 0 mà HR16: Chia, cách làm như sau: Cái kiểu này là muốn hàng nào tách hàng đó chứ duyệt qua tất cả chữ số thì ko nên. 5 Likes HR16 (Gà Coder) June 26, 2020, 1:17pm #8 num = 237 num_as_str = str(num) # Chuyển giá trị của num từ một số thành một chuỗi rồi gán vào trong biến num_as_str num_list = list(map(int, num_as_str)) # Trong python, một chuỗi được xem như một list chứa các kí tự của chuỗi đó. # Thông tin về hàm map: https://quantrimang.com/ham-map-trong-python-166188 print(num_list) P/s: Cách ghi siêu siêu ngắn : num_list = list(map(int, str(237))) print(num_list) P/s 2: Có thể đổi từ int thành byte để tiết kiệm bộ nhớ 2 Likes tungsoul (thanh tung phan) June 26, 2020, 1:06pm #9 mình thích kiểu này hơn: num = 237 num_list = {int(x) for x in str(num)} print(num_list) ko biết hiệu năng thế nào thôi 4 Likes Blue_Manh (Blue Mạnh) June 26, 2020, 2:32pm #10 Cho một số nguyên n. Mỗi bước biến đổi, ta có thể trừ n đi một giá trị bằng một trong những chữ số có trong n. Hãy tính số bước tối thiểu để n = 0. Với bài này, với n có 1 chữ số thì bước biến đổi là 1, nếu > 1 mình nghĩ rằng tìm số lớn nhất trong các chữ số rồi trừ, tiếp tục cho tới khi n chỉ còn 1 chữ số, nhằm giảm số đó nhanh nhất, với TH nếu trừ đi số lớn nhất, chữ số lớn nhất của số sau đó có thể nhỏ nhưng luôn >=, ví dụ 231 trừ đi 3 ra 228, hoặc trừ đi 2 ra 229 đến đây 228 có thể trừ đi 8, 229 có thể trừ đi 9 ra kq = nhau, nhưng lựa chọn trừ đi chữ số lớn nhất vẫn là TH tổng quát nên cài đặt như vậy là OK 6 Likes rogp10 (rogp10) June 26, 2020, 1:43pm #11 Xác định cứ tạo nhiều object là cực lâu bữa mở cái app 30s mới lên hình 4 Likes HR16 (Gà Coder) June 26, 2020, 2:05pm #12 @rogp10 Hmmm…Cách của mình thì sao ? tungsoul (thanh tung phan) June 26, 2020, 2:30pm #13 bài này nếu OP học graph rồi thì tương tự tìm đường ngắn nhất từ 0 đến n thôi solve1914×1010 41.6 KB ai pro backtracking chỉ mình với, thuật toán thì mình hiểu được đại khái mình hiểu là x += 7 nếu x > n thì quay lại trước đó rồi thử x += 3 nhưng cứ đến lúc code thì não như bị crash ấy chân thành cảm ơn 2 Likes Stanley00 (Stanley) June 26, 2020, 3:06pm #14 Ủa, thấy cách giải “tham lam” của bạn @Blue_Manh có vẻ ổn rồi mà. 37 -> 30 -> 27 -> 20 -> 18 -> 10 -> 9 -> 0 Còn đây là python one liner: f = lambda n, c=0: c if n<=0 else f(n-int(max(str(n))), c+1) print(f(37)) 8 Likes tungsoul (thanh tung phan) June 26, 2020, 3:21pm #15 mình test thử code của bạn f = lambda n, c=0: c if n<=0 else f(n-int(max(str(n))), c+1) print(f(37), f(37) == 7) #37 = 7 * 4 + 3 * 3 print(f(65), f(65) == 11) #65 = 6 * 10 + 5 print(f(12), f(12) == 6) #12 = 2 * 6 print(f(150), f(150) == 30) #150 = 30 * 5 output 7 True 12 False 3 False 27 False 1 Like tntxtnt () June 26, 2020, 3:46pm #16 37 -> 30 -> 27 -> 20 -> 18 -> 10 -> 9 -> 0 được xài số 8 số 2 gì nữa kìa đâu phải chỉ cho xài 7 và 3 ko đâu :V Cho một số nguyên n . Mỗi bước biến đổi, ta có thể trừ n đi một giá trị bằng một trong những chữ số có trong n . Hãy tính số bước tối thiểu để n = 0 . cái đề cũng thật khó hiểu =] Ví dụ 11 thì nếu như chỉ trừ được giá trị 1 trong những chữ số có trong n ban đầu thì phải mất 11 bước, còn chữ số trong n “hiện tại” thì cần 3 bước 11-1=10, 10-1=9, 9-9=0 :V 2 Likes rogp10 (rogp10) June 26, 2020, 3:46pm #17 Bạn xem lại đề cho kĩ nào. Mình chạy QHĐ ra giống y như trên. tungsoul (thanh tung phan) June 26, 2020, 3:47pm #18 mình làm theo đúng như mình hiểu đề của thớt thì ra như này def num_to_zero(n): digits = {int(x) for x in str(n)} result = {} result[0] = 0 for i in range(1, n + 1): result[i] = n + 1 for i in range(n + 1): for digit in digits: if i >= digit: result[i] = min(result[i], 1 + result[i - digit]) return result[n] solve1920×1080 566 KB tntxtnt () June 26, 2020, 3:50pm #20 cái quan trong là n - digit rồi thì các chữ số trong n có nên được update lại hay ko :V ví dụ 21 - 2 = 19 thì tiếp theo 19 được phép -1 -9 hay là vẫn phải -2 -1? 3 Likes rogp10 (rogp10) June 26, 2020, 3:51pm #21 @Khanh_Do_Gia ping thớt tntxtnt: cái quan trong là n - digit rồi thì các chữ số trong n có nên được update lại hay ko :V ví dụ 21 - 2 = 19 thì tiếp theo 19 được phép -1 -9 hay là vẫn phải -2 -1? tungsoul (thanh tung phan) June 26, 2020, 3:51pm #22 vậy cái này đợi OP vào thôi tntxtnt () June 26, 2020, 4:00pm #23 https://codelearn.io/training/detail/1856684 đề đây =] theo kiểu đệ quy kia thì tối đa đệ quy 2n/10 lần vậy tối đa ~200k lần đệ quy chắc ok :V tối đa 2n/10 lần vì ví dụ abcd thì tệ nhất là phải -d còn abc0, rồi trừ tiếp a/b/c còn ab(c-1)e, mất 2 lần trừ để giảm hàng chục đi 1, vậy mất 2*(n/10) lần để giảm còn n < 10 :V 4 Likes next page → DayNhauHoc's Discord Học C++ Free? Click Blog Dạy Nhau Học Tự Học Lập Trình 83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao? Từ khóa » Tách Các Chữ Số Thuộc Hàng Trăm Hàng Chục Hàng đơn Vị Tách Các Chữ Số Thuộc Hàng Trăm, Hàng Chục, Hàng đơn Vị | VnCoding Tách Các Chữ Số Thuộc Hàng Trăm, Hàng Chục, Hàng đơn Vị Bài 57 Tách Các Chữ Số Hàng Trăm, Hàng Chục, Hàng đơn Vị - YouTube Viết Chương Trình Nhập Vào Một Số Nguyên 3 Chữ Số - Steemit Viết Công Thức Cho Hàng Trăm Hàng Chục Hàng đơn Vị Của 1 Số Có 3 ... Cần Giúp Bài Tách Chữ Số - Programming - Dạy Nhau Học B. Hoạt động Thực Hành - Bài 6 : Hàng Và Lớp | VNEN Toán Lớp 4 Viết Chương Trình Cho Biết Chữ Số Hàng Trăm, Hàng Chục, Hàng đơn ... B. Hoạt động Thực Hành - Bài 6 : Hàng Và Lớp Nội Dung Kiến Thức Toán Lớp 4 Hàng Và Lớp Giải Bài Tập Trang 16, 17, 18 SGK Toán 4: Luyện Tập Triệu Và Lớp Triệu Giải Toán Lớp 3 Các Số Năm Chữ Số