summaryrefslogtreecommitdiff
path: root/prolog/problems/clp_r/megabytes_2
diff options
context:
space:
mode:
Diffstat (limited to 'prolog/problems/clp_r/megabytes_2')
-rw-r--r--prolog/problems/clp_r/megabytes_2/common.py9
-rw-r--r--prolog/problems/clp_r/megabytes_2/en.py14
2 files changed, 23 insertions, 0 deletions
diff --git a/prolog/problems/clp_r/megabytes_2/common.py b/prolog/problems/clp_r/megabytes_2/common.py
new file mode 100644
index 0000000..e528c3c
--- /dev/null
+++ b/prolog/problems/clp_r/megabytes_2/common.py
@@ -0,0 +1,9 @@
+id = 160
+group = 'clp_r'
+number = 65
+visible = True
+facts = None
+
+solution = '''\
+megabytes(SI, IEC) :-
+ { SI * 2^20 = IEC * 10^6 }.'''
diff --git a/prolog/problems/clp_r/megabytes_2/en.py b/prolog/problems/clp_r/megabytes_2/en.py
new file mode 100644
index 0000000..6db93c8
--- /dev/null
+++ b/prolog/problems/clp_r/megabytes_2/en.py
@@ -0,0 +1,14 @@
+id = 160
+name = 'megabytes/2'
+slug = 'convert mebibytes to megabytes'
+
+description = '''\
+<p>A <em>mega</em>byte is the SI unit meaning 10<sup>6</sup> bytes, while a <em>mebi</em>byte is the IEC unit meaning 2<sup>20</sup> bytes. Write the predicate <code>megabytes(SI, IEC)</code> that converts between the two using constraints.</p>
+<pre>
+ ?- megabytes(2, IEC).
+ IEC = 1.9073486328125.
+ ?- megabytes(SI, 2).
+ SI = 2.097152.
+</pre>'''
+
+hint = {}