Powered by AppSignal & Oban Pro
Would you like to see your link here? Contact us

multiplication table

notebooks/multiplication_table.livemd

multiplication table

Mix.install([
  {:nx, "~> 0.4"},
  {:kino, "~> 0.7"}
])

About

  • 九九を Enum でループするバージョンと Nx で行列演算するバージョンを2種類実装

資料

Enum

for x <- 1..9 do
  for y <- 1..9 do
    x * y
  end
end

Nx

qq =
  {1, 9}
  |> Nx.iota()
  |> Nx.add(1)
  |> then(&amp;Nx.dot(Nx.transpose(&amp;1), &amp;1))
  |> Nx.to_flat_list()
  |> Enum.chunk_every(9)
  |> dbg()

:ok

キレイに表示する

[first_row | _] = qq

for [first | _rest] = row <- qq, into: %{} do
  {first, row}
end
|> Map.put(0, first_row)
|> Kino.DataTable.new()
|> dbg()

:ok