「ゲーム制作するなら、これだけは覚えておいたほうがいい」 プログラミングする上で重要な「対数」の考え方
2022/06/09 19:57
duedio
別に対数知らなくてもゲーム作れるよ。無駄にハードル上げるのやめたほうがいいんじゃないの。
2022/06/09 19:59
yarumato
“対数は指数の逆関数である。実は対数で大事なのは、この公式ただ1つです。32bitというのは2の32乗です。32の部分をだいたい1/3すると10進数だと10桁ぐらいとパッとわかる。プログラマーでもここまでわかる人は少ない”
2022/06/09 22:35
nilab
「ゲーム制作するなら、これだけは覚えておいたほうがいい」 プログラミングする上で重要な「対数」の考え方 - ログミーTech
2022/06/09 22:44
canadie
数学初級者完全おいてけぼりな内容で笑った。こんなん読むなら高校数学の教科書読み直した方がいいよ 卑近な例だとコロナの感染者数とか、指数関数的に増えるとものは対数で表すとグラフが読みやすいとかあるだろう
2022/06/09 22:54
tomoP
自然対数って便利だよねって話ではなかった
2022/06/09 23:02
notio
まー、わからなくてもゲームは作れるけど、すごく便利に使えるのは事実で、多分ここら辺の感覚は人や作っているゲーム内容によって随分と違うよなぁとは思う。
2022/06/09 23:06
straychef
一切不要 そういうのはそういう部分を作る人だけでいい そもそもUnityなんてそういうの知らんで作るためのツールやんけ
2022/06/09 23:23
entryno001
プログラマーじゃないけどわりと面白い
2022/06/09 23:43
ShionAmasato
加算の反復が乗算になるように、乗算の反復があり、乗算に対する除算のように「乗算の反復の逆」もまた存在する。ということが分かっていれば対数という名まで知ってることは必須ではないが概念だけはあった方が良い
2022/06/09 23:44
kudoku
グラフィックの回転に虚数と三角関数が使われてるの本当に面白いな
2022/06/10 00:26
Wafer
知っていれば便利だが知らなくても大丈夫。底の交換とか出来なくても何も困らない。対数がどういうものか、は知っていたほうがいろいろ便利。忘れたころに頻出
2022/06/10 00:27
aobon700
使ったことないなぁ。どういうゲームで使うんだろ?
2022/06/10 00:33
kako-jun
計算が実践でない気がする。64種類とか気にしなくても、256種類以下なら1文字1Byteの変数に入れた後で圧縮するわ。代表的な16進数を暗記して、九九のように一瞬で計算したほうが便利だと思う
2022/06/10 00:48
nicht-sein
具体的な計算が出来る必要はないけど、式として指数関数とか対数関数の存在とどういうものか知っておいた方がいいと思うよ。「負荷が指数関数的に重くなる」とか「この処理のオーダーはlogNで」とかは普通に言われる
2022/06/10 00:54
renos
底辺高校出身ワイ最初の3行でダウン
2022/06/10 01:14
rgfx
「この32の部分をだいたい1/3すると10進数だと10桁ぐらいなんだなというのがパッとわかるわけです」ほへー、言われてみりゃそうだわ
2022/06/10 01:27
valinst
まぁなるほどってなったけど、覚えてなくても一応新卒以来ゲーム業界で働いてますぜ
2022/06/10 01:39
zyzy
憶えてなくてもどうとでもなる範囲だけど、ちょっと便利なのは確か、って感じの奴だった。
2022/06/10 01:56
kusigahama
さすがに「復活の呪文」で例示するのは世代を限定しすぎでは......1986年のドラクエ1と1987年のドラクエ2で使われただけで3以降はセーブがあるのに、"こういうゲームを実装できない" と言われても
2022/06/10 02:19
kiyo_hiko
うーん1byte勝負のレトロゲーム実装には有効かも…。
2022/06/10 02:28
K-Ono
どういうロジックのとき使うのかという話ではなかった。
2022/06/10 02:34
degucho
数学畑からくるとこうなるのか。1桁64種=log(2)64=6bitの情報量かける52文字割る8(byte変換)で39bytesの方が直感的だと思う。「実装できない」は間違いだし途中の6/8=3/4を端折ってるのも良くない
2022/06/10 02:55
kei_1010
対数はRPG作った時に使った。得られる経験値がじゃんじゃん増える時にレベルの上がり方を調整するのに便利だったけど、それ以外で使った記憶がない。三角関数は弾幕系のシューティングゲームでよく使った。
2022/06/10 03:43
sisopt
元ゲーム業界で働いてたけど、まず作ってみるレベルに対数どころか数学全般いらない。昨今はブラックボックスとして使える楽なツールが溢れてるんだからそれ使えば良い。
2022/06/10 04:58
restroom
ゲームに限らず、そもそもコンピューターを考える時には、指数、対数は必須。
2022/06/10 05:03
umai_bow
自然対数も便利だよ!
2022/06/10 05:04
ooblog
#2進数 #Base64 #対数 #指数 #ビット演算 「意外とベテランプログラマーでも~暗記~公式~暗算~パッとわかる人は少ない~32bit~10進数だと10桁ぐらい~2の64乗~longだった場合~10進数でだいたい20桁か21桁~64種の文字~256進数~3/4する」
2022/06/10 05:05
strow0343
何事にも向き不向きがあるので無理に適用させなくていいよと思ってしまった
2022/06/10 05:33
srng
ゲームにはそんなにいらないけど計算量の感覚的にどんなものかは知っておいた方が良い
2022/06/10 06:31
w1234567
例が全然ピンとこない、なんで普通に6bit*52文字/8bit=39byteで計算しないのってのが気になって対数が怖くなった
2022/06/10 06:34
totoronoki
「ふっかつのじゅもん」の仕組みを説明しないと対数使う理由わからないのでは。そもそも例示すべきは「2進数や10進数でのデータ量を別の基数に置き換える場合最低何文字居るのか」。記事の例では対数使わずに済む。
2022/06/10 06:49
mohno
↓要らないって書いてる人、ホントにプログラマーか?こんなん“常識”のレベルだと思うが。/実際、どこぞで話題の三角関数より対数の方が使う機会は多い。
2022/06/10 07:00
circled
高校の数学はある程度出来た方が、こっちの分野に進んだ時に楽よね。ちなみに米国の大学の1〜2年は日本の高校レベルの数学なので、理系の留学はちょっと楽出来る。(ただし例のグラフ機能付き計算機は購入必須)
2022/06/10 07:01
hndtkyk
反応分かれてるのはゲーム作るだけなら色んなツールが普及しているから何とかなるという話。プログラマ目線だと必須な気がする。デザイナーだと知ってた方が便利。CGとかの人はほとんど関係ないだろな。
2022/06/10 07:04
u_mid
"「対数」の考え方"は使うけど、ゲームなら三角関数の方がよっぽど使うのでは(ゲームジャンルにもよるけど)。ステータスのパラメータ調整にしても指数関数よりn次関数だろうし(指数関数は爆発的に増えすぎる)
2022/06/10 07:19
taruhachi
256種の文字→8bit 64種の文字→6bitの変換そのものが2を底にした対数そのものである。以上!でいいと思う。それよりも、計算量のオーダーを評価する時に重要だと思っている。
2022/06/10 07:20
homarara
いつの時代のゲーム制作だよ。この記事書くなら1980年代に書きなさいよ。
2022/06/10 07:32
Cru
いや、対数くらい使えるようになってた方が良い。ほんと。三角関数程度の難易度だし。今は知らないが私の頃は高校での教え方に問題があって無駄に難易度上げてたが
2022/06/10 07:40
yusuke-k
対数が威力を発揮するのはバカでかい桁の数を扱うときなのでこの例だと伝わりにくい気が
2022/06/10 07:44
ninosan
怒られそうな気もするけど脱落者増やしてライバル減らそうとしてるんじゃないかとすら思ってしまう。
2022/06/10 07:55
mayumayu_nimolove
高校の時自分は理数に向いてないんだと思った時と同じ感覚で読んだ
2022/06/10 08:02
petronius7
計算時間とメモリの必要量はプログラミング全般で問題になることが多いが、このロジックで大丈夫か?という概算はコードを書く前に対数でやるべき。書き終わってからそもそも無理、とかなったら時間のムダ。
2022/06/10 08:09
greenbow
総bit数/8bit より 圧縮率*文字数 の方がある意味直感的ではあると思う。でもたしかに例が悪い気がする。
2022/06/10 08:10
rck10
ゲームじゃなくて情報量の話。/ 意味とバイナリのマッチングを最適化することは、データサイズの削減には役立つが、それ以上にもならない。むしろロジック本体では意識せずに済むように抽象化すべきでは。
2022/06/10 08:12
hirose504
“logをがんばっていきましょう” がんばりたい
2022/06/10 08:14
airj12
対数は桁数と思い込むようになってからlogの書き方とかはすっかり忘れた
2022/06/10 08:36
junglejungle
役に立たない応用例を披露されてもね。普通にワイド文字で保存するでしょ。対数で工夫して数バイトと節約できました!とか部下に言われたら頭抱える。
2022/06/10 08:39
higutti3
あー、なるほどなるほどねー。徹頭徹尾全然わからんわ。
2022/06/10 08:44
borerere
高校数学だ。センターで出るレベル
2022/06/10 08:45
cnln
三角関数なんか役に立たない、で議論が巻き起こったのと同じことが起きてるなー
2022/06/10 08:58
t-tanaka
というか,物事を桁で考えるのが科学的思考にとっては超重要。有るか無いかでしか判断できない人間は困った事態を引き起こす,というのを私たちは東電の原発事故の放射線騒ぎで思い知ったのではないか。
2022/06/10 09:24
xlc
何か説明のポイントがズレてる気はするな。「指数関数的増加」を知っていることは現実時間内に終了するプログラムを書くには重要だが、対数関数をプログラムで実際に使ったことはない。
2022/06/10 09:31
NOV1975
アマチュア向けじゃないだろうに低レベルなところでいるとかいらないとか論争する必要ないだろw
2022/06/10 09:40
enemyoffreedom
例が悪いのはわかるが、エクセルですら少し桁数がかさむと指数表示になるし対数グラフもまれによく使うし
2022/06/10 09:50
tettekete37564
計算量の話かと思ったら。ゲーム制作だとそういう使い方が必要になるシーンは少ないような。レベルアップ経験値インフレに使う話は有名だけど。
2022/06/10 09:50
youhey
「知らなくても大丈夫」を言い出したら切りがないし、算数できてなくてもプログラムで金は稼げると思うけど、指数関数や対数関数をまったく知らずに計算量を考えないプログラマーと一緒に仕事をしたいとは思わないな
2022/06/10 09:55
katariya0116
いや対数使うのでその例示は……ってのはあるけど対数って結構アニメーションと相性よくて、メニューのイーズインとか最初上がって徐々にゆっくりになるみたいな挙動の時に対数グラフ使うと補間がキレイになるのよ
2022/06/10 09:59
sawaravisan0713
[ ]
2022/06/10 10:02
lascale
対数の使用例がパスワード入力って「これなら別にいらなくね」ってならないか?小難しい対数の理解を求めるからにはもっと「おおーこれは便利」と言わせてくれるヤツを頼むよ。
2022/06/10 10:03
shiketanotsuna
Unityとかネイティブな世代が増えた現代でこういう話すると大体老害がハードル上げやがってってしょうもない喧嘩するからこういう算数の話もあるよーん面白いでしょぐらいにしといたほうがいい。
2022/06/10 10:06
nmcli
logという数学関数が存在することだけ覚えて帰れればok。ログ出力用の関数と誤解する人がいるので。
2022/06/10 10:06
emt0
必須ではないけど覚えておくと損はないと思う。仕事してるといずれ勝手に調べることになるし一番厄介なのはこういうの分からない奴が開発で偉くなること
2022/06/10 10:16
Nilfs
言いたいことよくわかるけど、ほかにいい例なかったかなーとか。思いつつ、対数とかの説明としてはちょっとフックが弱い気がした。いい例思いつかないんだけども
2022/06/10 10:29
eiki_okuma
「ゲーム制作するなら」は主語がでかすぎるけど多分安原さんは悪くない……。この人の講義、他にも勉強になるものが沢山なので探してみるといいですよ。自分がゲームプログラマとしていかにレベルが低いかわかる。
2022/06/10 10:53
zakusun
64文字種は6bitsの容量があるので、52文字だと312bitsだから、8で割って39bytes。
2022/06/10 11:10
sds-page
対数の考え駆使して数Gとかになる最近のゲームのアップデートファイルの容量減らしてよ。39byteにしろとまでは言わんから
2022/06/10 11:14
crosscrow
レベルデザインにおける対数の例でも出てくるのかと思ったら、復活の呪文で困惑するブコメたち
2022/06/10 11:16
sacrificefly
楽しい
2022/06/10 11:27
kurojz
“「ゲーム制作するなら、これだけは覚えておいたほうがいい」 プログラミングする上で重要な「対数」の考え方”
2022/06/10 11:33
securecat
高校時代、完全に不適合者だったので数学とかマジで1ミリも覚えてないけど、なんとか生きてますね。。。本当は数学できる子になりたかった。
2022/06/10 12:59
skypenguins
対数とバイトの話は情報量の定義そのものなのに、ここまで来て情報理論の話しないのは片手落ちやろがい!
2022/06/10 15:05
petigearfox
この人プログラミングやるならFORTRANからやれって言いそう
2022/06/10 15:26
maketexlsr
計算量じゃなくて情報量の観点なのがゲームプログラミングっぽくて良い
2022/06/10 18:27
aceraceae
この辺のことは覚えるというより体感とか肌感覚を身に着けろって話だと思う。
2022/06/11 07:34
loveanime
数学大事