<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://mediawiki.zeropage.org/index.php?action=history&amp;feed=atom&amp;title=TAOCP%2FBasicConcepts</id>
	<title>TAOCP/BasicConcepts - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://mediawiki.zeropage.org/index.php?action=history&amp;feed=atom&amp;title=TAOCP%2FBasicConcepts"/>
	<link rel="alternate" type="text/html" href="https://mediawiki.zeropage.org/index.php?title=TAOCP/BasicConcepts&amp;action=history"/>
	<updated>2026-05-14T19:56:11Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.39.8</generator>
	<entry>
		<id>https://mediawiki.zeropage.org/index.php?title=TAOCP/BasicConcepts&amp;diff=85007&amp;oldid=prev</id>
		<title>Maintenance script: Repair batch-0003 pages from live compare</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.zeropage.org/index.php?title=TAOCP/BasicConcepts&amp;diff=85007&amp;oldid=prev"/>
		<updated>2026-03-27T00:29:11Z</updated>

		<summary type="html">&lt;p&gt;Repair batch-0003 pages from live compare&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 00:29, 27 March 2026&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l5&quot;&gt;Line 5:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 5:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  양의 정수 m과 n이 주어졌을때, 그것들의 최대공약수(greatest common divisor)&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  양의 정수 m과 n이 주어졌을때, 그것들의 최대공약수(greatest common divisor)&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  (m과 n을 모두 나누는 가장 큰 양의 정수)를 구한다.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  (m과 n을 모두 나누는 가장 큰 양의 정수)를 구한다.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  E1. &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[&lt;/del&gt;나머지 구하기&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;] &lt;/del&gt;m을 n으로 나누고 나머지를 r이라 하자.(0 &amp;amp;lt;= r &amp;amp;lt; n)&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  E1. &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;amp;#91;&lt;/ins&gt;나머지 구하기&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;amp;#93; &lt;/ins&gt;m을 n으로 나누고 나머지를 r이라 하자.(0 &amp;amp;lt;= r &amp;amp;lt; n)&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  E2. &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[&lt;/del&gt;그것이 0인가?&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;] &lt;/del&gt;r = 0 이면, 알고리즘은 끝난다; n이 답이다.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  E2. &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;amp;#91;&lt;/ins&gt;그것이 0인가?&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;amp;#93; &lt;/ins&gt;r = 0 이면, 알고리즘은 끝난다; n이 답이다.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  E3. &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[&lt;/del&gt;줄이기&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;] &lt;/del&gt;m &amp;amp;lt;- n, n &amp;amp;lt;- r 으로 설정한다, 그리고 E1단계로 돌아간다.■&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  E3. &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;amp;#91;&lt;/ins&gt;줄이기&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;amp;#93; &lt;/ins&gt;m &amp;amp;lt;- n, n &amp;amp;lt;- r 으로 설정한다, 그리고 E1단계로 돌아간다.■&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  Fig 1. 알고리즘 E의 순서도&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  Fig 1. 알고리즘 E의 순서도&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l26&quot;&gt;Line 26:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 26:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;우리는 다음과 같은 새로운 단계를 추가할 수 있다(꼭 필요하진 않다)&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;우리는 다음과 같은 새로운 단계를 추가할 수 있다(꼭 필요하진 않다)&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  E0. &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[&lt;/del&gt;m &amp;amp;gt;= n 인지 확인하기&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;] &lt;/del&gt;m &amp;amp;lt; n 이라면, m &amp;amp;lt;-&amp;amp;gt; n 을 교환한다&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  E0. &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;amp;#91;&lt;/ins&gt;m &amp;amp;gt;= n 인지 확인하기&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;amp;#93; &lt;/ins&gt;m &amp;amp;lt; n 이라면, m &amp;amp;lt;-&amp;amp;gt; n 을 교환한다&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;E1으로 돌아가서 544/119 = 4+68/119, 그러므로 r &amp;lt;- 68&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;E1으로 돌아가서 544/119 = 4+68/119, 그러므로 r &amp;lt;- 68&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l83&quot;&gt;Line 83:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 83:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Words( Partitial fieslds of words포함)&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Words( Partitial fieslds of words포함)&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  여섯 바이트로 이루어진다. 한 바이트에는 0~63까지 숫자가 들어갈 수 있다. 그림으로 나타내면 다음과 같다.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  여섯 바이트로 이루어진다. 한 바이트에는 0~63까지 숫자가 들어갈 수 있다. 그림으로 나타내면 다음과 같다.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{| class=&amp;quot;wikitable&amp;quot;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{| class=&amp;quot;wikitable&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;quot; style=&amp;quot;width:100%;&lt;/ins&gt;&amp;quot;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|-&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|-&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;| 0&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;| 0&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l104&quot;&gt;Line 104:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 104:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  레지스터는 앞에 소문자 r을 붙여 표기&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  레지스터는 앞에 소문자 r을 붙여 표기&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  A, X register&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  A, X register&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{| class=&amp;quot;wikitable&amp;quot;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{| class=&amp;quot;wikitable&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;quot; style=&amp;quot;width:100%;&lt;/ins&gt;&amp;quot;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|-&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|-&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;| ±&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;| ±&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l132&quot;&gt;Line 132:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 132:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  Input, Output Devices&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  Input, Output Devices&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Instruction format&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Instruction format&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{| class=&amp;quot;wikitable&amp;quot;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{| class=&amp;quot;wikitable&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;quot; style=&amp;quot;width:100%;&lt;/ins&gt;&amp;quot;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|-&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|-&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;| 0&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;| 0&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l154&quot;&gt;Line 154:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 154:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  여기서 더해진 주소를 M, M에 들어있는 값을 CONTETNS(M)이라고 한다.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  여기서 더해진 주소를 M, M에 들어있는 값을 CONTETNS(M)이라고 한다.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Notation&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Notation&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt; ~cpp  &lt;/del&gt;OP ADDRESS, I(F)&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;code&amp;gt;&lt;/ins&gt;OP ADDRESS, I(F)&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;/code&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  같은 형식으로 쓴다.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  같은 형식으로 쓴다.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;   &amp;lt;!&amp;gt; &amp;#039;&amp;#039;예) LDA는 명령어 코드가 8이다.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;   &amp;lt;!&amp;gt; &amp;#039;&amp;#039;예) LDA는 명령어 코드가 8이다.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l246&quot;&gt;Line 246:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 246:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;----&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;----&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[TAOCP]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[TAOCP]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key mediawiki:diff::1.12:old-39576:rev-85007 --&gt;
&lt;/table&gt;</summary>
		<author><name>Maintenance script</name></author>
	</entry>
	<entry>
		<id>https://mediawiki.zeropage.org/index.php?title=TAOCP/BasicConcepts&amp;diff=39576&amp;oldid=prev</id>
		<title>imported&gt;Unknown at 05:28, 7 February 2021</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.zeropage.org/index.php?title=TAOCP/BasicConcepts&amp;diff=39576&amp;oldid=prev"/>
		<updated>2021-02-07T05:28:09Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;__TOC__&lt;br /&gt;
= 1.1 Algorithms =&lt;br /&gt;
&lt;br /&gt;
== 알고리즘 E(유클리드의 알고리즘(Euclid&amp;#039;s algorithm)) ==&lt;br /&gt;
 양의 정수 m과 n이 주어졌을때, 그것들의 최대공약수(greatest common divisor)&lt;br /&gt;
 (m과 n을 모두 나누는 가장 큰 양의 정수)를 구한다.&lt;br /&gt;
 E1. [나머지 구하기] m을 n으로 나누고 나머지를 r이라 하자.(0 &amp;amp;lt;= r &amp;amp;lt; n)&lt;br /&gt;
 E2. [그것이 0인가?] r = 0 이면, 알고리즘은 끝난다; n이 답이다.&lt;br /&gt;
 E3. [줄이기] m &amp;amp;lt;- n, n &amp;amp;lt;- r 으로 설정한다, 그리고 E1단계로 돌아간다.■&lt;br /&gt;
&lt;br /&gt;
 Fig 1. 알고리즘 E의 순서도&lt;br /&gt;
 &lt;br /&gt;
         |&amp;amp;lt;------------------------------------------------------|&lt;br /&gt;
        ↓                                                       |&lt;br /&gt;
 --------------------          ------------------ 아니오   -------------&lt;br /&gt;
 | E1.나머지 구하기 |--------&amp;amp;gt;( E2.그것이 0인가? )--------&amp;amp;gt;| E3.줄이기 |&lt;br /&gt;
 --------------------          ------------------          -------------&lt;br /&gt;
                                         |예&lt;br /&gt;
                                        ↓&lt;br /&gt;
&lt;br /&gt;
m = 119 와 n = 544 가 주어졌다고 하자&lt;br /&gt;
E1 단계에서 시작. m을 n으로 나누면 몫은 0이고 나머지는 119이다. 그러므로 r &amp;lt;- 119&lt;br /&gt;
E2 단계에서 r ≠ 0 이므로 적용되지 않는다&lt;br /&gt;
E3 단계에서 m &amp;lt;- 544, n &amp;lt;- 119&lt;br /&gt;
이것으로 처음에 m &amp;lt; n 이면 항상 m과 n이 교환된다는 것을 알 수 있다 &lt;br /&gt;
우리는 다음과 같은 새로운 단계를 추가할 수 있다(꼭 필요하진 않다)&lt;br /&gt;
&lt;br /&gt;
 E0. [m &amp;amp;gt;= n 인지 확인하기] m &amp;amp;lt; n 이라면, m &amp;amp;lt;-&amp;amp;gt; n 을 교환한다&lt;br /&gt;
&lt;br /&gt;
E1으로 돌아가서 544/119 = 4+68/119, 그러므로 r &amp;lt;- 68&lt;br /&gt;
다시 E2는 적용되지않고&lt;br /&gt;
E3에서 m &amp;lt;- 119, n &amp;lt;- 68&lt;br /&gt;
다음순환에서 r &amp;lt;- 51, m &amp;lt;- 68, n &amp;lt;- 51&lt;br /&gt;
다음에 r &amp;lt;- 17, m &amp;lt;- 51, n &amp;lt;- 17&lt;br /&gt;
마지막으로 51을 17로 나누었을때, r &amp;lt;- 0, 그러므로 E2에서 알고리즘은 종료된다&lt;br /&gt;
119와 544의 최대공약수는 17이다&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== 알고리즘의 5가지 중요한 특징 ==&lt;br /&gt;
1) 유한성(Finiteness)&lt;br /&gt;
알고리즘은 유한한 단계 후에 항상 종료되어야 한다&lt;br /&gt;
&lt;br /&gt;
2) 명확성(Definiteness)&lt;br /&gt;
알고리즘의 각 단계는 정확히 정의되어야 한다&lt;br /&gt;
&lt;br /&gt;
3) 입력(Input)&lt;br /&gt;
알고리즘은 0개 이상의 입력을 가진다&lt;br /&gt;
&lt;br /&gt;
4) 출력(Output)&lt;br /&gt;
알고리즘은 하나 이상의 출력을 가진다&lt;br /&gt;
&lt;br /&gt;
5) 효율성(Effectiveness)&lt;br /&gt;
알고리즘은 보통 효율적으로 수행되도록 기대된다&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== 알고리즘의 개념을 수학적 집합론의 관계로 나타내기 ==&lt;br /&gt;
계산적인 방법(computational method)을 4쌍의 (Q,I,Ω,f)로 형식을 갖춰 정의하자 &lt;br /&gt;
Q는 부분집합 I와 Ω를 포함하는 집합이다&lt;br /&gt;
f는 Q에서 Q 자기자신으로 가는 함수이다&lt;br /&gt;
Ω의 모든 원소 q에 대하여 f(q)는 q와 같아야 한다.&lt;br /&gt;
Q : 계산&lt;br /&gt;
I : 입력 &lt;br /&gt;
Ω : 출력&lt;br /&gt;
f : 계산 규칙&lt;br /&gt;
집합 I의 원소 x의 입력은 계산수열, x0, x1, x2,..., 를 다음과 같이 정의한다&lt;br /&gt;
 	x0 = x	이고	xk + 1 = f(xk) (k &amp;amp;gt;= 0)&lt;br /&gt;
Ω에 속하는 xk 에 대하여 k가 가장 작은 정수라면 계산수열은 k단계에서 종료된다고 한다. 그리고 이 경우에 x로부터 결과 xk가 생성된다고 한다.&lt;br /&gt;
&lt;br /&gt;
알고리즘 E는 다음과 같이 이런 관계로 형식화된다.&lt;br /&gt;
Q를 모든 단일 (n), 모든 순서있는 쌍 (m,n), 모든 순서있는 4쌍 (m,n,r,1), (m,n,r,2), (m,n,p,3) (m,n,p는 양의 정수, r은 음이 아닌 정수)의 집합이라 하자.&lt;br /&gt;
I를 모든 쌍 (m,n)의 부분집합이라 하자.&lt;br /&gt;
Ω를 모든 단일 (n)의 부분집합이라 하자.&lt;br /&gt;
f는 다음과 같이 정의된다.&lt;br /&gt;
 f((m,n)) = (m,n,0,1};	f((n)) = (n);&lt;br /&gt;
 f((m,n,r,1)) = (m, n, m을 n으로 나눈 나머지, 2);&lt;br /&gt;
 r = 0 이면 f((m,n,r,2)) = (n), 그렇지 않으면 (m,n,r,3);&lt;br /&gt;
 f((m,n,p,3)) = (n,p,p,1).&lt;br /&gt;
&lt;br /&gt;
= 1.3. MIX =&lt;br /&gt;
이 책의 수많은 부분에서 MIX언어가 등장한다. 따라서 독자는 이 절을 주의 깊게 공부해야 한다.&lt;br /&gt;
== 1.3.1. Description of MIX ==&lt;br /&gt;
=== 용어과 표기법 ===&lt;br /&gt;
* Words( Partitial fieslds of words포함)&lt;br /&gt;
 여섯 바이트로 이루어진다. 한 바이트에는 0~63까지 숫자가 들어갈 수 있다. 그림으로 나타내면 다음과 같다.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| 1&lt;br /&gt;
| 2&lt;br /&gt;
| 3&lt;br /&gt;
| 4&lt;br /&gt;
| 5&lt;br /&gt;
|-&lt;br /&gt;
| ±&lt;br /&gt;
| Byte&lt;br /&gt;
| Byte&lt;br /&gt;
| Byte&lt;br /&gt;
| Byte&lt;br /&gt;
| Byte&lt;br /&gt;
|}&lt;br /&gt;
 필드 제한이 주어질 수 있다. 형식은 (L:R)이다. (L~R의 범위를 뜻한다.)&lt;br /&gt;
  &amp;lt;!&amp;gt; &amp;#039;&amp;#039;예) (0:0)는 부호, (1:5)는 부호가 없는 숫자, (3:4)는 3,4번째 바이트&amp;#039;&amp;#039;&lt;br /&gt;
* Registers&lt;br /&gt;
 레지스터는 앞에 소문자 r을 붙여 표기&lt;br /&gt;
 A, X register&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| ±&lt;br /&gt;
| Byte&lt;br /&gt;
| Byte&lt;br /&gt;
| Byte&lt;br /&gt;
| Byte&lt;br /&gt;
| Byte&lt;br /&gt;
|}&lt;br /&gt;
 I register - rI1~rI6까지 있음.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| ±&lt;br /&gt;
| Byte&lt;br /&gt;
| Byte&lt;br /&gt;
|}&lt;br /&gt;
 J register&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| +&lt;br /&gt;
| Byte&lt;br /&gt;
| Byte&lt;br /&gt;
|}&lt;br /&gt;
 그 외에&lt;br /&gt;
 Overfolw toggle - on, off&lt;br /&gt;
 Comparison indicator, - EQUAL, LESS, GREATER&lt;br /&gt;
 Input, Output Devices&lt;br /&gt;
* Instruction format&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| 1&lt;br /&gt;
| 2&lt;br /&gt;
| 3&lt;br /&gt;
| 4&lt;br /&gt;
| 5&lt;br /&gt;
|-&lt;br /&gt;
| ±&lt;br /&gt;
| &lt;br /&gt;
| A  A&lt;br /&gt;
| I&lt;br /&gt;
| F&lt;br /&gt;
| C&lt;br /&gt;
|}&lt;br /&gt;
 C - 명령어 코드(the poeration code)&lt;br /&gt;
 F - 명령어의 변경(a modification of the operation code). (L:R)이라면 8L+R = F&lt;br /&gt;
 ±AA - 메모리 주소(the address)&lt;br /&gt;
 I - 인덱스(the index specification). 값이 1~6으로 rI1~rI6에 있는 내용과 메모리 주소를 더함&lt;br /&gt;
 여기서 더해진 주소를 M, M에 들어있는 값을 CONTETNS(M)이라고 한다.&lt;br /&gt;
* Notation&lt;br /&gt;
 ~cpp  OP ADDRESS, I(F)&lt;br /&gt;
 같은 형식으로 쓴다.&lt;br /&gt;
  &amp;lt;!&amp;gt; &amp;#039;&amp;#039;예) LDA는 명령어 코드가 8이다.&lt;br /&gt;
    LDA 2000, 2(0:3) 은 || + || 2000 |||| 2 || 3 || 8 || 과 같다.&amp;#039;&amp;#039;&lt;br /&gt;
=== 연산 ===&lt;br /&gt;
* Loading operators.&lt;br /&gt;
 CONTENTS(M)을 레지스터에 넣는다.&lt;br /&gt;
 LDA, LDX, LDi, LDAN, LDXN, LDiN이 있다.&lt;br /&gt;
* Storing operators.&lt;br /&gt;
 레지스터의 값을 CONTENTS(M)에 넣는다.&lt;br /&gt;
 STA, STX, STi, STJ, STZ가 있다.&lt;br /&gt;
* Arithmetic operators.&lt;br /&gt;
 사칙연산을 한다. ADD, SUB, MUL, DIV가 있다.&lt;br /&gt;
* Address transfer operators.&lt;br /&gt;
 이 연산에서 M은 메모리 셀을 가리키지 않고, 그냥 부호있는 숫자로 쓰인다. ENTr, ENNr, INCr, DECr가 있다. ( r은 A, X, 1~6)&lt;br /&gt;
  &amp;lt;!&amp;gt; &amp;#039;&amp;#039;예) ENTA 2000 - &amp;gt; rA || + || 0 || 0 || 0 || 2000 ||&amp;#039;&amp;#039;&lt;br /&gt;
* Comparison operator&lt;br /&gt;
 레지스터와 CONTENTS(M)을 비교해서 LESS, GREATER, EQUAL을 설정하는 명령어이다. CMPA, CMPX, CMPi가 있다. CMPi를 할 때는 앞에 세 자리가 0이라고 가정한다.&lt;br /&gt;
* Jump operators.&lt;br /&gt;
 M이 가리키는 메모리 셀로 점프한다. JSJ를 빼면 점프를 하면서 점프 명령어 다음 위치를 rJ에 저장한다. the comparison indicator를 이용하거나(JL, JE, JG, JGE, JLE, JNE) , 레지스터(JrN, JrZ, JrP, JrNN, JrNZ, JrNP)를 이용한다. &lt;br /&gt;
* Miscellaneous operators.&lt;br /&gt;
 시프트 명령은 rA와 rX를 사용한다. SLA, SRA, SLAX, SRAX, SLC, SRC가 있다. M은 시프트하는 횟수를 나타낸다.&lt;br /&gt;
 MOVE명령은 F만큼 CONTENTS(M)을 rI1이 가리키는 메모리 셀로 값을 복사한다.&lt;br /&gt;
  &amp;lt;!&amp;gt; &amp;#039;&amp;#039;예1) rI1 = 1001일 때 MOVE 1000,(3)&lt;br /&gt;
     CONTENTS(1000) -&amp;gt; CONTENTS(1001), rI1 = 1002&lt;br /&gt;
     CONTENTS(1001) -&amp;gt; CONTENTS(1002), rI1 = 1003&lt;br /&gt;
     CONTENTS(1002) -&amp;gt; CONTENTS(1003), rI1 = 1004&amp;#039;&amp;#039;&lt;br /&gt;
  그럼 다음엔 어떻게 되나?&lt;br /&gt;
  &amp;lt;!&amp;gt; &amp;#039;&amp;#039;예2) rI1 = 2000일 때 MOVE 1000,(3)&amp;#039;&amp;#039;&lt;br /&gt;
   &amp;#039;&amp;#039;CONTENTS(1000) -&amp;gt; CONTENTS(2000), rI1 = 2001&lt;br /&gt;
     CONTENTS(1001) -&amp;gt; CONTENTS(2001), rI1 = 2002&lt;br /&gt;
     CONTENTS(1002) -&amp;gt; CONTENTS(2002), rI1 = 2003&amp;#039;&amp;#039;&lt;br /&gt;
     (rI1값이 중간중간 바뀌는게 아니라 다 끝나고 F만큼 더해진다고 생각하면돼 --세환)&lt;br /&gt;
 NOP 명령은 아무것도 하지 않는다.&lt;br /&gt;
 HLT 명령은 기계를 멈춘다(The machine stops.)&lt;br /&gt;
* Input-output opertors.&lt;br /&gt;
 필요할 때 보려고 생략했다.&lt;br /&gt;
* Conversion operators.&lt;br /&gt;
 NUM은 rAX를 가지고 숫자로 바꾸어 rA에 저장한다. 각 바이트가 한 자리로 바뀌는데, 일의 자리만 가지고 바꾼다(10 -&amp;gt; 0, 23-&amp;gt;3 )&lt;br /&gt;
 CHAR는 rA를 가지고 문자 코드로 바꾸어 rAX에 저장한다.&lt;br /&gt;
* Timing&lt;br /&gt;
 각 명령어는 실행 시간(excution time)이 있다.&lt;br /&gt;
&lt;br /&gt;
== 1.3.3 Applications to Permutations ==&lt;br /&gt;
MIX 프로그램의 예제를 보여준다. 중요한 순열의 성질(properties of permutations)을 소개한다.&lt;br /&gt;
&lt;br /&gt;
순열은 abcdef를 재배열(rearrangement)이나 이름바꾸기(renaming)를 해서 얻는다고 볼 수 있다. 이를 다음과 같이 표시할 수 있다.(p.164참조)&lt;br /&gt;
 ( a b c d e f )&lt;br /&gt;
 ( c d f b e a )&lt;br /&gt;
순환 표시(a cycle notation)로 쓰면 다음과 같다&lt;br /&gt;
 ( a c f ) ( b d )&lt;br /&gt;
 &amp;#039;&amp;#039;해설 : a가 c로 바뀌는 것(a goes to c)을 a-&amp;gt;c라고 표시한다. 따라서 위의 표현은 a-&amp;gt;c-&amp;gt;f-&amp;gt;a, b-&amp;gt;d-&amp;gt;b를 나타낸다.e-&amp;gt;e같이 변하지 않는 것은 생략한다.&amp;#039;&amp;#039;&lt;br /&gt;
 === Products of permutations ===&lt;br /&gt;
 두 순열을 곱한다. (합성함수와 비슷하다.)&lt;br /&gt;
  (a b c d e f ) × (a b c d e f )&lt;br /&gt;
  (c d f b e a )     (b d c a f e )&lt;br /&gt;
  = (a b c d e f )&lt;br /&gt;
  &amp;#039;&amp;#039;  &amp;#039;&amp;#039;(c a e d f b )&lt;br /&gt;
 이를 a cycle notation으로 쓰면&lt;br /&gt;
  (a c f ) (b d )(a b d )(e f) = (a c e f b)&lt;br /&gt;
 과정은 왼쪽부터 시작해서 오른쪽으로 가면서 찾는 방식이다. a부터 시작하면 a-&amp;gt;c이고, c에서 시작하면 c-&amp;gt;f-&amp;gt;e이런 식으로 찾을 수 있다. 이 과정을 컴퓨터로 시도해보자.&lt;br /&gt;
 === Algorithm A ===&lt;br /&gt;
 A1. 모든 왼쪽 괄호에 흔적을 남긴다. 오른쪽 괄호를 왼쪽 괄호 다음 문자로 바꾸고 흔적을 남긴다.&lt;br /&gt;
  예) &amp;#039;&amp;#039;&amp;#039;(a c f g)&amp;#039;&amp;#039;&amp;#039; -&amp;gt; (&amp;#039;&amp;#039;&amp;#039;a c f g&amp;#039;&amp;#039;&amp;#039; a&lt;br /&gt;
 A2. 왼쪽에서 오른쪽으로 가면서 흔적이 없는 첫번째 문자를 START라고 한다. 왼쪽 괄호와 그 문자를 출력하고 흔적을 남긴다. 모든 문자에 흔적이 남을 경우 종료한다.&lt;br /&gt;
 A3. 다음문자를 CURRENT로 세팅한다.&lt;br /&gt;
 A4. 오른쪽으로 가면서 CURRENT와 같은 문자를 찾는다. 찾은 경우 흔적을 남기고 A3로 간다. (못 찾고 오른쪽 끝까지 가면 A5로 간다.)&lt;br /&gt;
 A5. START≠ CURRENT이면 CURRENT를 출력하고 식 왼쪽부터 시작해서 A4로 간다.( 같으면 A6로 간다.)&lt;br /&gt;
 A6. (완전한 사이클을 찾았으므로) 오른쪽 괄호를 닫고 A2로 간다.&lt;br /&gt;
* Timing&lt;br /&gt;
 잘 모르겠다.&lt;br /&gt;
 === Another Approach(Algorithm B) ===&lt;br /&gt;
 What is this computer-oriented method for permutation multipulication?&lt;br /&gt;
 오른쪽에서 왼쪽으로 오면서 답을 찾는 방법이다.&lt;br /&gt;
 (여기서는 책에 있는 Table2(p.173)를 봐야 한다. 세로 한 줄이 T&amp;amp;#91;i&amp;amp;#93;를 나타낸다. 그 밖에 i, j, Z 값을 적어 놓으면 이해할 수 있다. n은 문자의 개수이다.)&lt;br /&gt;
 B1. 모든 1≤k≤n에 대해서 T&amp;amp;#91;k&amp;amp;#93; ← k. 오른쪽부터 읽을 준비를 한다.&lt;br /&gt;
 B2. 식을 오른쪽부터 하나씩 읽으면서 &lt;br /&gt;
  ) 이면 Z←0하고 B2반복&lt;br /&gt;
  ( 이면 B4로.&lt;br /&gt;
  그 외에는 i인 xi를 가지고 B3로&lt;br /&gt;
 B3. Z↔T&amp;amp;#91;i&amp;amp;#93;를 하고 나서 T&amp;amp;#91;i&amp;amp;#93; = 0이면 j←i를 한 뒤 B2로.&lt;br /&gt;
 B4. T&amp;amp;#91;j&amp;amp;#93; ← Z 후에 B2로.&lt;br /&gt;
* Timing&lt;br /&gt;
 연습문제10에 있다.&lt;br /&gt;
 === Inverse ===&lt;br /&gt;
 순열 연산을 원래대로 돌리는 순열(역행렬과 비슷하다.)&lt;br /&gt;
 메모리를 많이 쓰면 쉽게 해결( Y[X&amp;amp;#91;k&amp;amp;#93;] ← k )&lt;br /&gt;
 하지만 재미삼아 nㅣ 매우 크고 남는 메모리가 없다고 해보자.&lt;br /&gt;
 === Algorithm I ===&lt;br /&gt;
 (이번에도 Table 3(p.177)를 보면서 하면 된다.)&lt;br /&gt;
----&lt;br /&gt;
[[TAOCP]]&lt;br /&gt;
&lt;/div&gt;</summary>
		<author><name>imported&gt;Unknown</name></author>
	</entry>
</feed>