Cách chuyển đổi số Ả Rập sang số La Mã trong Python

Học viện Runestone chỉ có thể tiếp tục nếu chúng tôi nhận được sự hỗ trợ từ những cá nhân như bạn. Là một sinh viên, bạn nhận thức rõ về chi phí cao của sách giáo khoa. Nhiệm vụ của chúng tôi là cung cấp miễn phí những cuốn sách hay cho bạn, nhưng chúng tôi yêu cầu bạn cân nhắc quyên góp 10 đô la, nhiều hơn nếu bạn có thể hoặc ít hơn nếu 10 đô la là một gánh nặng

Trước khi bạn tiếp tục đọc

Tạo ra những thứ tuyệt vời cần có thời gian và $$. Nếu bạn đánh giá cao cuốn sách bạn đang đọc và muốn giữ tài liệu chất lượng miễn phí cho các sinh viên khác, vui lòng xem xét quyên góp cho Học viện Runestone. Chúng tôi yêu cầu bạn xem xét khoản quyên góp 10 đô la, nhưng nếu bạn có thể quyên góp nhiều hơn thì điều đó thật tuyệt, nếu 10 đô la là quá nhiều so với ngân sách của bạn, chúng tôi sẽ rất vui với bất cứ điều gì bạn có thể chi trả như một sự ủng hộ

Tôi chụp bức ảnh này trên đảo Gozo tại thành trì của thành phố Vittorija. Hòn đảo này là một hòn đảo nhỏ là một phần của đất nước Malta

Malta đã bị chinh phục bởi gần như tất cả mọi người vào thời điểm này hay thời điểm khác trong lịch sử của họ, bao gồm cả người La Mã, những người có lẽ đã cho chúng tôi các chữ số La Mã và ví dụ mà bạn có thể thấy phía trên cổng vòm trong hình. Nhưng, có một vấn đề với cái này. Bạn có biết nó là gì không?

Khi tôi đang đứng đó nhìn nó, tôi tự nhủ “MDCCLXXVI là chữ số La Mã gì vậy?. ? . Điều đó phá vỡ các quy tắc. Tôi khá chắc chắn rằng họ đang cố gắng biểu thị số 1904. Câu hỏi đặt ra là làm thế nào bạn có thể biểu thị chính xác số đó nếu bạn tuân theo các quy tắc về chữ số La Mã?

Nếu bạn không quen thuộc với các quy tắc, hãy để tôi nói cho bạn biết

  1. Lặp lại một chữ số tới ba lần thể hiện phép cộng của số. Ví dụ III chung là 1+1+1 = 3

  2. Chỉ có thể lặp lại I, X, C và M. Không nên có V, L và D vì không có lý do gì để làm như vậy. VV sẽ đơn giản là X và LL sẽ được viết là C

  3. Viết các chữ số có giá trị giảm dần từ trái sang phải là phép cộng. Ví dụ: MC đại diện cho 1000 + 100 = 1100 và XVI đại diện cho 10 + 5 + 1 hoặc 16

  4. Để viết một số mà nếu không thì phải lặp lại một chữ số 4 lần trở lên, có một quy tắc phủ định. Viết một chữ số nhỏ hơn vào bên trái của một chữ số lớn hơn làm cho dấu của số đó ở bên trái là âm. ví dụ IV là -1 + 5 = 4. Hay MCMXIV là 1000 - 100 + 1000 + 10 - 1 + 5 hay 1914

Biết tất cả những điều đó bây giờ bạn có thể viết lại năm 1904 theo cách thích hợp

Chữ số la mã đúng cho năm 1904 không phải là MDCCCCIV

    Ghép các chữ số La Mã với các số Ả Rập chính xác Đảm bảo bạn tuân theo tất cả các quy tắc
  • MCD
  • 1400
  • MCMXCVIII
  • 1998
  • MCMXCIX
  • 1999
  • MMDXLIX
  • 2549
  • MMCCCXLV
  • 2345

Chuyển đổi tiếng La Mã sang tiếng Ả Rập

Bây giờ bạn đã là một chuyên gia trong việc chuyển đổi các chữ số La Mã thành số, đã đến lúc bạn phải tự tránh rắc rối và viết một chương trình thực hiện điều đó cho bạn. Đây là một phác thảo về những gì bạn nên làm

  1. Yêu cầu người dùng nhập một chữ số La Mã

  2. Xác thực số để đảm bảo nó tuân theo tất cả các quy tắc. Số trong hình sẽ khiến bạn in thông báo lỗi

  3. Nếu chữ số La Mã hợp lệ thì bạn nên chuyển đổi nó sang số Ả Rập tương đương

  4. In ra chữ số La Mã và chữ số Ả Rập tương đương của nó

Gợi ý. Bạn sẽ muốn bắt đầu bằng cách sử dụng từ điển để ánh xạ từng chữ số La Mã đơn lẻ sang số Ả Rập chính xác

Chuyển đổi tiếng Ả Rập sang tiếng La Mã

Bạn có thể viết một chương trình để đi theo hướng ngược lại không? . [Đây là hành vi mặc định cho từ điển trong Python 3. 6 trở lên, nhưng không dành cho trình duyệt Python của chúng tôi]

Bạn có thể giải thích tại sao từ điển được sử dụng cho phần này sử dụng các khóa và giá trị không?

siêu thách thức

  1. Viết chương trình chuyển đổi một số bị lặp sai như CCCC thành dạng thích hợp của CD

  2. Viết chương trình chuyển đổi một số la mã bị phủ định chính xác thành một số tương đương không bị phủ định sai. Ví dụ IV trở thành IIII

  3. Nếu bạn có thể thực hiện hai phần đầu tiên thì bạn đã sẵn sàng thực hiện phép cộng các chữ số La Mã mà KHÔNG cần chuyển đổi chúng sang tiếng Ả Rập trước. Điều này có thể cần một số nghiên cứu bổ sung ngoài những gì chúng ta đã trình bày trong lớp cho đến thời điểm này

    Tôi đã quyết định thử dùng python và phải bắt đầu từ những điều cơ bản nhất, vì vậy tôi đã chọn bài kata được đại diện tốt này. Mã này nhằm mục đích chuyển đổi các số Ả Rập từ 1 đến 3999 thành số La Mã và ngược lại. Ở đây, các chữ số La Mã là 'đúng định dạng', nghĩa là không có 'XM' hoặc tương tự, mặc dù tôi biết chúng thỉnh thoảng được sử dụng

    Tôi đã lấy một số giá trị thử nghiệm từ tài liệu Dive into Python có sẵn công khai

    Tôi rất quan tâm đến mọi thứ bạn nói, vì từ những gì tôi đã nghe Python có khá nhiều nguyên tắc và phương pháp hay nhất. Ngoài ra, tôi không chắc liệu cấu trúc dữ liệu tôi sử dụng có phù hợp/là một lựa chọn tốt hay không. Nhưng ở đây đi mã

    Số Ả Rập cho chữ số La Mã là gì?

    Trong hệ thống chữ số La Mã, các ký hiệu I, V, X, L, C, D và M tương ứng với 1, 5, 10, 50, 100, 500 . Một biểu tượng được đặt sau một biểu tượng khác có giá trị bằng hoặc lớn hơn sẽ làm tăng giá trị của nó. Một biểu tượng được đặt trước một giá trị lớn hơn trừ đi giá trị của nó. in the Hindu-Arabic numeral system. A symbol placed after another of equal or greater value adds its value. A symbol placed before one of greater value subtracts its value.

    Tại sao số Ả Rập thay thế số La Mã?

    Và đối với những phép tính phức tạp hơn, chữ số La Mã là vô vọng. Điều này đặt ra những giới hạn nghiêm trọng đối với thương mại, thương mại và đặc biệt là khoa học. Trong khi đó, các nền văn hóa sử dụng hệ thống Hindu-Ả Rập không chỉ dễ dàng hơn với các phép tính cơ bản mà còn có thể thực hiện các phép toán phức tạp hơn .

Chủ Đề