2009-07-27(月)
グレイコードの出力
30分プログラム、その627。anarchy golf - Gray code via 2009-05-29 - id:anatooの大冒険 ?力への意思? - sideportをやってみる。
最初は、2進数をずらずらと並べればいいと思ってたけれども、グレイコード - Wikipediaを読むとどうもそうではないらしい。
細かいことはよくわからなかったけれども、とりあえずv ^ (v >> 1)で生成できるらしいよ。
もともとはGOLFの問題だけど、そこにはこだわらない方向で。
使い方
$ python graycode.py 000 001 011 010 110 111 101 100
ソースコード
#! /usr/bin/python # -*- mode:python; coding:utf-8 -*- # # graycode.py - # # Copyright(C) 2009 by mzp # Author: MIZUNO Hiroki / mzpppp at gmail dot com # http://howdyworld.org # # Timestamp: 2009/07/27 20:50:19 # # This program is free software; you can redistribute it and/or # modify it under MIT Lincence. # def to_graycode(v): return v ^ (v >> 1) def str_binary(n): if n <= 1: yield str(n) else: for i in str_binary(n/2): yield i yield str(n%2) def padding(width,char,n): l = len(n) if l >= width: return n else: return char * (width - l) + n def graycode(n_bits): for v in xrange(0,2**n_bits): yield padding(n_bits, '0', "".join(str_binary(to_graycode(v)))) for g in graycode(3): print g
参考
コメントを書く
トラックバック - http://d.hatena.ne.jp/mzp/20090727/1248696796
リンク元
- 13 http://www.google.co.jp/search?hl=ja&client=firefox-a&rls=org.mozilla:ja-JP-mac:official&hs=HwR&q=vimcolor+scala&btnG=検索&lr=lang_ja
- 10 http://gauc.no-ip.org/awk-users-jp/blis.cgi/DoukakuAWK_194
- 8 http://d.hatena.ne.jp/johzan/20090728/1248711472
- 8 http://d.hatena.ne.jp/keyword/グレイコード
- 8 http://www.google.co.jp/search?q=マクローリン展開+sin&lr=lang_ja&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:ja:official&client=firefox-a
- 7 http://d.hatena.ne.jp/
- 7 http://www.google.co.jp/search?sourceid=navclient&hl=ja&ie=UTF-8&rlz=1T4GGIH_jaJP268JP268&q=mt+tatle+body
- 6 http://d.hatena.ne.jp/johzan/
- 5 http://search.yahoo.co.jp/search?p=ハノイの塔++JavaScript++プログラム&ei=UTF-8&fr=top_ga1_sa&x=wrt
- 4 http://longurl.org

