333 lines
17 KiB
HTML
333 lines
17 KiB
HTML
<!DOCTYPE html>
|
||
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
||
<!-- START: two lines up starts content from: inc/top.default.html -->
|
||
<!-- -->
|
||
<!-- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
|
||
<!-- !!! DO NOT MODIFY THIS FILE - This file is generated by a tool !!! -->
|
||
<!-- !!! DO NOT MODIFY THIS FILE - This file is generated by a tool !!! -->
|
||
<!-- !!! DO NOT MODIFY THIS FILE - This file is generated by a tool !!! -->
|
||
<!-- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
|
||
<!-- -->
|
||
<!-- END: this line ends content from: inc/top.default.html -->
|
||
<!-- -->
|
||
<!-- This web page was formed via the tool: bin/readme2index.sh -->
|
||
<!-- -->
|
||
<!-- The content of main section of this web page came from: 2020/kurdyukov4/README.md -->
|
||
<!-- -->
|
||
<!-- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
|
||
<!-- !!! Do not modify this web page, instead modify the file: 2020/kurdyukov4/README.md -->
|
||
<!-- !!! Do not modify this web page, instead modify the file: 2020/kurdyukov4/README.md -->
|
||
<!-- !!! Do not modify this web page, instead modify the file: 2020/kurdyukov4/README.md -->
|
||
<!-- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
|
||
<!-- -->
|
||
<!-- Markdown content was converted into HTML via the tool: bin/md2html.sh -->
|
||
<!-- -->
|
||
<!-- START: this line starts content from: inc/head.default.html -->
|
||
|
||
<head>
|
||
<link rel="stylesheet" href="../../ioccc.css">
|
||
<link rel=“shortcut icon” HREF=“"../../ioccc.ico”>
|
||
<meta charset="utf-8">
|
||
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes">
|
||
<title>2020/kurdyukov4 - Best abuse of lámatyávë</title>
|
||
<meta name="description" content="2020 IOCCC entry kurdyukov4 - Best abuse of lámatyávë">
|
||
<meta name="keywords" content="IOCCC, 2020, IOCCC 2020, IOCCC entry, kurdyukov4, Best abuse of lámatyávë">
|
||
</head>
|
||
|
||
<!-- END: this line ends content from: inc/head.default.html -->
|
||
<!-- START: this line starts content from: inc/body.default.html -->
|
||
|
||
<body>
|
||
|
||
<!-- END: this line ends content from: inc/body.default.html -->
|
||
<!-- START: this line starts content from: inc/header.default.html -->
|
||
|
||
<div class="header">
|
||
<img src="../../png/ioccc.png" alt="IOCCC image by Matt Zucker" width=300 height=110>
|
||
<h1>The International Obfuscated C Code Contest</h1>
|
||
<h2>2020/kurdyukov4 - Best abuse of lámatyávë</h2>
|
||
</div>
|
||
|
||
<!-- END: this line ends content from: inc/header.default.html -->
|
||
<!-- START: this line starts content from: inc/topnav.mid.html -->
|
||
|
||
<div class="topnav">
|
||
<a class="Left" href="../kurdyukov3/index.html">← kurdyukov3</a>
|
||
<a class="Left" href="../index.html">↑ 2020 ↑</a>
|
||
<a class="Left" href="../otterness/index.html">otterness →</a>
|
||
<a class="Right" href="https://github.com/ioccc-src/temp-test-ioccc/2020/kurdyukov4/prog.c">C code</a>
|
||
<a class="Right" href="https://github.com/ioccc-src/temp-test-ioccc/2020/kurdyukov4/Makefile">Makefile</a>
|
||
<a class="Right" href="#inventory">Inventory</a>
|
||
</div>
|
||
|
||
<!-- END: this line ends content from: inc/topnav.mid.html -->
|
||
<!-- START: this line starts content from: inc/begin-row.default.html -->
|
||
|
||
<div class="row">
|
||
|
||
<!-- END: this line ends content from: inc/begin-row.default.html -->
|
||
<!-- START: this line starts content from: inc/begin-leftcolumn.default.html -->
|
||
|
||
<div class="leftcolumn">
|
||
|
||
<!-- END: this line ends content from: inc/begin-leftcolumn.default.html -->
|
||
<!-- START: this line starts content from: inc/sidenav.default.html -->
|
||
|
||
<div class="sidenav">
|
||
<a href="#content">Jump to contents</a>
|
||
</div>
|
||
<hr>
|
||
<div class="sidenav">
|
||
<a href="../../index.html">IOCCC Home</a>
|
||
<a href="../../years.html">Winning Entries</a>
|
||
<a href="../../authors.html">People who have won</a>
|
||
<a href="../../location.html">Location of authors</a>
|
||
</div>
|
||
<hr>
|
||
<div class="sidenav">
|
||
<a href="../../news.html">IOCCC News</a>
|
||
<a href="../../status.html">Contest status</a>
|
||
<a href="../../faq.html#submit">How to enter the IOCCC</a>
|
||
<a href="../../faq.html">FAQ</a>
|
||
</div>
|
||
<hr>
|
||
<div class="sidenav">
|
||
<a href="../../bugs.html">Bugs & (mis)features</a>
|
||
<a href="../../faq.html#fix_an_entry">Fixing IOCCC entries</a>
|
||
<a href="../../faq.html#fix_web_site">Fixing the web site</a>
|
||
<a href="../../faq.html#fix_author">Fixing author info</a>
|
||
<a href="../../thanks-for-help.html">Thanks for the help</a>
|
||
</div>
|
||
<hr>
|
||
<div class="sidenav">
|
||
<a href="../../judges.html">The IOCCC Judges</a>
|
||
<a href="../../contact.html">Contacting the IOCCC</a>
|
||
</div>
|
||
<hr>
|
||
<div class="sidenav">
|
||
<a href="#top">Jump to top</a>
|
||
</div>
|
||
|
||
<!-- END: this line ends content from: inc/sidenav.default.html -->
|
||
<!-- START: this line starts content from: inc/end-leftcolumn.default.html -->
|
||
|
||
</div>
|
||
|
||
<!-- END: this line ends content from: inc/end-leftcolumn.default.html -->
|
||
<!-- START: this line starts content from: inc/begin-rightcolumn.default.html -->
|
||
|
||
<div class="rightcolumn">
|
||
|
||
<!-- END: this line ends content from: inc/begin-rightcolumn.default.html -->
|
||
<!-- START: this line starts content from: inc/before-content.default.html -->
|
||
|
||
<a name="content"></a>
|
||
|
||
<!-- END: this line ends content from: inc/before-content.default.html -->
|
||
<!-- START: this line starts content for HTML phase 20 by: bin/output-index-author.sh via bin/md2html.sh -->
|
||
|
||
<!-- START: this line starts content generated by: bin/output-index-author.sh -->
|
||
|
||
<h2 id="author"><a name="author"></a>Author:</h2>
|
||
<ul>
|
||
<li>Name: <a href="../../authors.html#Ilya_Kurdyukov">Ilya Kurdyukov</a><br>
|
||
Location: <a href="../../location.html#RU">RU</a> - <em>Russian Federation</em> (<em>Russia</em>)
|
||
<br><br></li>
|
||
</ul>
|
||
|
||
<!-- END: next line ends content generated by: bin/output-index-author.sh -->
|
||
|
||
<!-- END: this line ends content for HTML phase 20 by: bin/output-index-author.sh via bin/md2html.sh -->
|
||
<!-- START: this line starts content for HTML phase 21 by: bin/pandoc-wrapper.sh via bin/md2html.sh -->
|
||
|
||
<h2 id="to-build">To build:</h2>
|
||
<div class="sourceCode" id="cb1"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb1-1"><a href="#cb1-1" aria-hidden="true" tabindex="-1"></a><span class="fu">make</span></span></code></pre></div>
|
||
<h2 id="to-use">To use:</h2>
|
||
<div class="sourceCode" id="cb2"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb2-1"><a href="#cb2-1" aria-hidden="true" tabindex="-1"></a><span class="ex">./prog</span> text_file output_length context_length random_seed</span></code></pre></div>
|
||
<h2 id="try">Try:</h2>
|
||
<p>When running this, ask yourself why it gets progressively slower when the
|
||
context length decreases:</p>
|
||
<div class="sourceCode" id="cb3"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb3-1"><a href="#cb3-1" aria-hidden="true" tabindex="-1"></a><span class="ex">./try.sh</span></span></code></pre></div>
|
||
<blockquote>
|
||
<p>Performance depends on the number of same hashes found.
|
||
Too many identical strings if the context length is small.
|
||
– Author</p>
|
||
</blockquote>
|
||
<h2 id="judges-remarks">Judges’ remarks:</h2>
|
||
<p>We were able to <a href="rand.c">write our own program</a> performing the same trick using
|
||
the (still non-standard, for some reason) library function <code>memmem()</code>, but that
|
||
way it works too fast regardless of the context length, and it’s much less fun.</p>
|
||
<p>The author wrote in reply:</p>
|
||
<hr />
|
||
<p>Wow, amazing! Very fast, but there is a drawback to randomness.
|
||
If some string only appears after half the input, the first instance
|
||
of this string will have a 50% chance of occurrence.
|
||
Example:</p>
|
||
<pre><code>echo "00000000000000000000 01 02 02 02 02 02 02" > test.txt
|
||
./prog test.txt 1000 2 123
|
||
# more twos in output
|
||
./rand test.txt 1000 2 123
|
||
# more ones in output</code></pre>
|
||
<blockquote>
|
||
<p>But this will happen very rarely on real data.
|
||
– Author</p>
|
||
</blockquote>
|
||
<hr />
|
||
<p>Try using the same random seed and varying the context size.</p>
|
||
<p>BTW: what on Middle-earth is <code>lámatyávë</code>? It’s Quenya, one of the languages of
|
||
the Elves in Tolkien’s Legendarium. It means sound taste (plural is lámatyáver)
|
||
and it refers to phonaesthesia - in other words, it refers to the pleasure of
|
||
sound and form of words. It’s discussed in <a href="https://en.wikipedia.org/wiki/Morgoth%27s_Ring">Morgoth’s
|
||
Ring</a>, volume X of <a href="https://en.wikipedia.org/wiki/The_History_of_Middle-earth">History of
|
||
Middle-earth (HoMe)</a>.
|
||
Now can you appreciate the award title a bit better?</p>
|
||
<h2 id="authors-remarks">Author’s remarks:</h2>
|
||
<h3 id="building">Building:</h3>
|
||
<div class="sourceCode" id="cb5"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb5-1"><a href="#cb5-1" aria-hidden="true" tabindex="-1"></a><span class="fu">cc</span> prog.c <span class="at">-o</span> prog</span></code></pre></div>
|
||
<h3 id="usage">Usage:</h3>
|
||
<p>This program generates random text from the provided dictionary using a Markov
|
||
chain, outputting to <code>stdout</code>.</p>
|
||
<div class="sourceCode" id="cb6"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb6-1"><a href="#cb6-1" aria-hidden="true" tabindex="-1"></a><span class="ex">./prog</span> input.txt 2000 10 12345</span></code></pre></div>
|
||
<p>Parameters are:</p>
|
||
<ol type="1">
|
||
<li><p>dictionary filename
|
||
Need at least the size of the book, the more the better (1Mb); you can
|
||
concatenate several books into one file. This should be a text file (not
|
||
<code>.doc</code>/<code>.pdf</code>). You can feed it with books in <code>.fb2</code> format, metadata is
|
||
filtered. Whitespace characters are also filtered. For languages other than
|
||
English, it’s better to use ANSI encoding. You can use UTF, but you need to
|
||
increase the chain length (if one ANSI character is encoded as two UTF bytes,
|
||
then multiply chain length by two).</p></li>
|
||
<li><p>bytes to generate (limited to 1Mb)</p></li>
|
||
<li><p>chain length
|
||
Randomness and performance depend inversely on this parameter and the size
|
||
of the dictionary. If you feel that the bytes are generated too slowly, then you
|
||
need to increase the length of the chain. This length means that any part of
|
||
the output of this size in bytes exists somewhere in the dictionary.</p></li>
|
||
<li><p>random seed</p></li>
|
||
</ol>
|
||
<h3 id="example">Example</h3>
|
||
<p>You can try this with the inputs provided with
|
||
<a href="../../2019/mills/index.html">2019/mills</a> from the IOCCC entries.</p>
|
||
<div class="sourceCode" id="cb7"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb7-1"><a href="#cb7-1" aria-hidden="true" tabindex="-1"></a><span class="ex">$</span> ./prog Shakespeare.txt 2001 10 12345</span></code></pre></div>
|
||
<p>produces:</p>
|
||
<pre><code>r sons, wives for them, as the hope I had it. This is the way they be not too ra
|
||
sh a trial of you only. Therefore will not out of door? Nurse: Marry, bachelor,
|
||
Have other some, he is in Rome: but where is Warwick frowns at his. PRINCE EDWAR
|
||
D: Where is the light: But I will watch thy waking, what work he makes Amongst y
|
||
ou? Come, sirs, We shall write to you, fortune and The hazard of much blood. I w
|
||
ould to heaven, respective lenity, And fire-eyed fury be my convoy in the senten
|
||
ced; 'tis too horrible, so bloody on the banks If they were created, Would bring
|
||
them to our presence? FLORIZEL: And those his golden crown, What is six winters
|
||
? they are but Lewis and Warwick bids you come too late come from the king's fri
|
||
end, and will do't; for, look you, sir, For still thy true servitor: I will rend
|
||
an oak And peg thee in his knotty entrails till Thou hast hazel eyes: what eye
|
||
but such an eye would spy out such a day to-morrow, or next day: He is within th
|
||
e limit of the like, forsworn to love, Send her a story of more woe Than this is
|
||
a merry ballad, but a very pretty one. MOPSA: Thou hast amazed me, My name is E
|
||
lbow: I do lean upon, Now thou art: Thy tears are womanish; thy wild acts denote
|
||
The unreasonably: come, you must: and there, I then do't to them? VOLUMNIA: Now
|
||
the red pestilence hangs in our aim, which is yours. What is't your honour, as
|
||
in war, since then, You have said before: My child is dead; or 'twere not 'long
|
||
of him; but he, like you, lads; about your ears it is Menenius? Second Officer:
|
||
Come, come, young wanton and effeminate boy, Takes on the hungry beach Fillip th
|
||
e stars Shall bitterly begin his wooing that we have in hand are angry And frown
|
||
ing brow to brow, ourselves, Still your own affections are devised, As blanks, b
|
||
enevolences, and I thank thee for it. KING HENRY VI: Master lieutenant comes. Ma
|
||
ster lieutenant comes. Master lieutenant, pray you,-- CORIOLANUS: What's that to
|
||
him? CHRISTOPHER: At Pembroke, Sir James Blunt, And Rice ap Thomas with a virtu</code></pre>
|
||
<!--
|
||
|
||
Copyright © 1984-2024 by Landon Curt Noll. All Rights Reserved.
|
||
|
||
You are free to share and adapt this file under the terms of this license:
|
||
|
||
Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0)
|
||
|
||
For more information, see:
|
||
|
||
https://creativecommons.org/licenses/by-sa/4.0/
|
||
|
||
-->
|
||
|
||
<!-- END: this line ends content for HTML phase 21 by: bin/pandoc-wrapper.sh via bin/md2html.sh -->
|
||
<!-- START: this line starts content for HTML phase 22 by: bin/output-index-inventory.sh via bin/md2html.sh -->
|
||
|
||
<!-- START: this line starts content generated by: bin/output-index-inventory.sh -->
|
||
|
||
<h1 id="inventory-for-2020kurdyukov4"><a name="inventory"></a>Inventory for 2020/kurdyukov4</h1>
|
||
<p><a href="#top">Jump to top</a></p>
|
||
<h2 id="primary-files">Primary files</h2>
|
||
<ul>
|
||
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2020/kurdyukov4/prog.c">prog.c</a> - entry source</li>
|
||
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2020/kurdyukov4/Makefile">Makefile</a> - entry Makefile</li>
|
||
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2020/kurdyukov4/prog.orig.c">prog.orig.c</a> - original source</li>
|
||
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2020/kurdyukov4/Eugene_Onegin.txt">Eugene_Onegin.txt</a> - Eugene Onegin poetry</li>
|
||
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2020/kurdyukov4/Shakespeare.txt">Shakespeare.txt</a> - Shakespeare text</li>
|
||
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2020/kurdyukov4/rand.c">rand.c</a> - randomize a file</li>
|
||
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2020/kurdyukov4/try.sh">try.sh</a> - how to run</li>
|
||
<li><a href="2020_kurdyukov4.tar.bz2">2020_kurdyukov4.tar.bz2</a> - download entry</li>
|
||
</ul>
|
||
<h2 id="secondary-files">Secondary files</h2>
|
||
<ul>
|
||
<li><a href="index.html">index.html</a> - entry home page</li>
|
||
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2020/kurdyukov4/README.md">README.md</a> - markdown source for index.html</li>
|
||
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2020/kurdyukov4/.entry.json">.entry.json</a> - description of entry in JSON</li>
|
||
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2020/kurdyukov4/.gitignore">.gitignore</a> - list of files that should not be committed under git</li>
|
||
<li><a href=".path">.path</a> - directory path from top directory</li>
|
||
</ul>
|
||
|
||
<!-- END: next line ends content generated by: bin/output-index-inventory.sh -->
|
||
|
||
<!-- END: this line ends content for HTML phase 22 by: bin/output-index-inventory.sh via bin/md2html.sh -->
|
||
<!-- START: this line starts content from: inc/after-content.default.html -->
|
||
|
||
<!-- END: this line ends content from: inc/after-content.default.html -->
|
||
<!-- START: this line starts content from: inc/end-rightcolumn.default.html -->
|
||
|
||
</div>
|
||
|
||
<!-- END: this line ends content from: inc/end-rightcolumn.default.html -->
|
||
<!-- START: this line starts content from: inc/end-row.default.html -->
|
||
|
||
</div>
|
||
|
||
<!-- END: this line ends content from: inc/end-row.default.html -->
|
||
<!-- START: this line starts content from: inc/footer.default.html -->
|
||
|
||
<!--
|
||
|
||
Copyright © 1984-2024 by Landon Curt Noll. All Rights Reserved.
|
||
|
||
You are free to share and adapt this file under the terms of this license:
|
||
|
||
Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0)
|
||
|
||
For more information, see:
|
||
|
||
https://creativecommons.org/licenses/by-sa/4.0/
|
||
|
||
-->
|
||
|
||
<div class="footer">
|
||
<h2>Copyright and CC BY-SA 4.0 License</h2>
|
||
<p>This file and web page is:</p>
|
||
<blockquote><b>Copyright © 1984-2024 by Landon Curt Noll. All Rights Reserved.</b></p></blockquote>
|
||
<p>You are free to share and adapt this file under the terms of this license:</p>
|
||
<blockquote><b>Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0)</b></blockquote>
|
||
<p>For more information, see:</p>
|
||
<blockquote><a
|
||
href="https://creativecommons.org/licenses/by-sa/4.0/">https://creativecommons.org/licenses/by-sa/4.0/</a></blockquote>
|
||
<h2>Coda</h2>
|
||
<p><a href="https://validator.w3.org/nu/?doc=https%3A%2F%2Fioccc-src.github.io%2Ftemp-test-ioccc%2F2020%2Fkurdyukov4%2Findex.html">Nu HTML check this web page</a></p>
|
||
<p><a href="#top">Jump to top</a> <a href="#content">Jump to Content</a> <a href="#inventory">Jump to Inventory</a></p>
|
||
</div>
|
||
|
||
<!-- END: this line ends content from: inc/footer.default.html -->
|
||
<!-- START: this line starts content from: inc/bottom.default.html -->
|
||
|
||
</body>
|
||
</html>
|
||
|
||
<!-- END: this line ends content from: inc/bottom.default.html -->
|