算額あれこれ

算額問題をコンピュータで解きます

2018-01-01から1年間の記事一覧

RStudio での日本語の問題

Version 1.1.463 になって,解消されたようだ

RStudio で日本語が使えなくなっていた

ご注意: 2021 年 2 月における R 4.0.4 での話ではありませんから。 RStudio Version 1.1.456 を立ち上げると, During startup - Warning messages:1: Setting LC_CTYPE failed, using "C" 2: Setting LC_COLLATE failed, using "C" 3: Setting LC_TIME fa…

pythontex は,使えないな!

pythontex は,望み薄かな? 実装が古いのと,日本語化の関連で,ちょっと面倒くさいというか無理っぽい。 やっぱ,R と Sweave の組み合わせが最強。

Pweave の入力と出力の区別

そのまんまでは,入力と出力のフォーマットに全く違いがない。ので,まぎらわしい。 Sweave のようには行かず,インタラクティブモードのように,入力の前にプロンプトがつくようにはできないようだ。 そこで,LaTeX の listings を使う。 listings.sty と j…

Pweave のコードチャンク・オプション

ネームなしのオプションは name または labelすなわち,以下の 3 つ,name="aaa", label="aaa", aaa は同じもので,チャンクの名前を定義する echo=True or (False)コードチャンクのエコー出力をするかどうか evaluate=True or (False)コードチャンクを評価…

pythontex というのがあった

TeXShop の engines フォルダを見たら,pythontex というのがあった。 ちょっと,調べてみる。 なんとなれば,Psweave は 入力に対する出力はまとめられてしまうからなあ。 そのほかの不都合は前述の通り。

Pweave の TeXShop engine

Sweave engine の最初の部分だけを以下のように変更して使う。 mp = function(file, makeindex=FALSE, silent=FALSE, deletePdfs=FALSE, deleteWorkfiles=FALSE, ...) { Sys.setlocale("LC_ALL", "ja_JP.UTF-8") if (grepl("\\.", file) == FALSE) { file = …

Pweave --- Sweave for python

R のための Sweave と同じような感じで,python のための Pweave(http://mpastell.com/pweave/) を使ってみる。以下で,全角の <,> は,実際は半角でTeXShop を使って,*.Pnw --> *.tex ---> *.pdf の操作を行うにあたって,大問題がある。それは,TeXSh…

TeXShop で Sweave

TeXShop で用意されている engine に Sweave 用のものがないので,作ってみた。 基本的には,以下のようであるが,肝は Sweave 関数の前に,Sys.setlocale("LC_ALL", "ja_JP.UTF-8") を置くこと。これがないと locale が "C" になっているので,日本語が正し…

Sweave.sty

Sweave で, <<>>==ans <- lm(Petal.Length ~ ., data=iris)logLik(ans)@ のようなチャンクを含む *.Rnw を Sweave ==> uplatex ==> dvipdfmx すると,*.dvi ファイルを *.pdf ファイルにする際に kpathsea: Running mktexpk --mfmode / --bdpi 600 --mag 1+…

文字列としての連結と"+"演算子

"+" を文字列連結演算子とする場合"+" = function(e1, e2) { if (is.numeric(e1) && is.numeric(e2)) { base::"+"(e1, e2) } else { paste0(e1, e2) }} > "abc" + "12345" + "あいうえお"[1] "abc12345あいうえお"> 123456 + "numeric"[1] "123456numeric"> …

文字列としての連結と"&"演算子

文字列と文字列の連結は,言語によって異なる記号が演算子として使われているが,R では二項演算子ではなく paste 関数,paste0 関数が使われる。 > paste("asd", "poi", sep="")[1] "asdpoi" > paste0("asd", "poi")[1] "asdpoi"> paste0(123, "asd")[1] "1…

大きい数の積や商(その2)

超幾何分布 要因 a, b が独立な場合,以下のような分割表が得られる確率を求める B not(B) sumA x o mnot(A) (k-x) o nsum k o (m+n)超幾何分布により,求める確率は xCm * xCk-x / m+nCkR の dhyper の引数はちょっと変で(?),x が生じる確率は dhyper(x…

大きい数の積や商

二項分布 B(x, n, p) = nCx p^x (1-p)^(n-x) の計算R では,dbinom(x, n, p) で速く,簡単に求まるこれを,自分で計算してみるとどうなるかをやってみる。式をそのまま記述すると以下のようになる。options(digits = 15)f = function(x, n, p) { return(choo…

ダミー変数を作る

factor 変数の場合 > fac = factor(c("c", "a", "b", "b", "a", "c", "b"))> z = levels(fac)> t(sapply(fac, function(x) z %in% x))[, -1] + 0 [,1] [,2][1,] 0 1[2,] 0 0[3,] 1 0[4,] 1 0[5,] 0 0[6,] 0 1[7,] 1 0 数値変数の場合> num = c(1, 3, 2, 1, 3…

変換多項式

変換テーブル(前の 2 つの記事)のかわりに,変換多項式を使う > x = 1:4> y = c(11, 13, 15, 50)> lm(y ~ x+I(x^2)+I(x^3))Call:lm(formula = y ~ x + I(x^2) + I(x^3))Coefficients:(Intercept) x I(x^2) I(x^3) -24.0 62.5 -33.0 5.5 > f = function(x) …

変換テーブル(2)

15, 34, 52, 99 をそれぞれ 3, 5, 9, 15 に変換する > x = integer(100)> x[15] = 3> x[34] = 5> x[52] = 9> x[99] = 15> x[c(34, 52, 99, 15, 34, 99)][1] 5 9 15 3 5 15

「奇数和平方数」問題

「奇数和平方数」問題http://riverplus.hatenablog.com/entry/2018/02/25/143351自然数 n に対し、連続する n 以下の奇数の和が平方数(自然数の 2 乗で表される数)となるものを探します。 例えば n = 10 の場合、以下の 7 通りです。 項が 1 つだけのもの…

「メダルツアー」問題

「メダルツアー」問題http://riverplus.hatenablog.com/entry/2018/02/25/143351自然数 w, h に対し、横と縦の長さがそれぞれ w, h となる格子状の道を考えます。 さらに、自然数 m に対し、左から m 番目の縦の道の、各交差点の中間にメダルが 1 個ずつ置い…

ナンプレを解くプログラム

ナンプレを解くプログラム締め切りが 2018/03/07 10:00 AM なので,その 1 分後に投稿されるように予約【概要】簡単なナンプレの問題を解くプログラムを書いてみましょう。【問題】次のようなナンプレがあります。・2x2のマス(Box)が縦横ふたつずつ並んだ4…

ぐるぐる曼荼羅

ぐるぐる曼荼羅締め切りが 2018/02/25 10:00 AM なので,その 1 分後に投稿されるように予約【概要】下図のように、正の整数が全て並んでいます。数をひとつ指定しますので、その数のマスの上下左右に隣接しているマスの数を、昇順にコンマ区切りで出力し…

壊れたパスカルの三角形

壊れたパスカルの三角形締め切りが 2018/02/21 10:00 AM なので,その 1 分後に投稿されるように予約設問 【パスカルの三角形】パスカルの三角形は、上記のように隣り合った数の和を下段に書くことで作ることができます。【問題】パスカルの三角形を作るとき…

集合写真できれいに写る配置は何通り?

集合写真できれいに写る配置は何通り?締め切りが 2018/02/20 10:00 AM なので,その 1 分後に投稿されるように予約設問 みんなで集合写真を撮るときの並び方の配置を考えます。人数が少なければ一列に並ぶこともありますが、横に長くなると図のように複数列…

一流を見分けられるのは誰?

一流を見分けられるのは誰?締め切りが 2018/02/18 10:00 AM なので,その 1 分後に投稿されるように予約今日のTVでは芸能人に何が一流品かを当てさせてその人を格付けする番組が人気ですが、こういった順位付けするという処理は、検索エンジンやレコメンド…

切手を切って!

切手を切って!締め切りが 2018/02/14 10:00 AM なので,その 1 分後に投稿されるように予約設問 次のような切手シートがあります。この切手シートから、3枚の切手がつながったまま切り取る方法は、以下のように10通りあります。【問題】切手シートの、た…

対応のあるデータを再現する方法

PCI手術は有効か?という奥村先生の記事であるが テストデータの生成手順が若干甘いのではないか?データ生成で,y1 と x1,y2 と x2 は対応のあるデータなので,単にそれぞれの平均値と標準偏差だけでは特定できない。x1 と y1,x2 と y2 の相関係数を定め…

2進化10進数の1の数

2進化10進数の1の数締め切りが 2018/02/10 10:00 AM なので,その 1 分後に投稿されるように予約コンピュータにおける数値の表現方式の一つに2進化10進数(BCD)があります。これは、10進数の各桁をそのまま2進数に置き換えたものです。例えば、42の場合、十の…

ヒット・アンド・ブロー

ヒット・アンド・ブロー締め切りが 2018/02/07 10:00 AM なので,その 1 分後に投稿されるように予約ヒット・アンド・ブローというゲームがあります。出題者は、0000~9999の、4桁の数字の中から、秘密の答えを選びます。解答者は、出題者が選んだ秘密の答え…

同じ数を表示し続ける7セグメントディスプレイ

同じ数を表示し続ける7セグメントディスプレイ締め切りが 2018/02/06 10:00 AM なので,その 1 分後に投稿されるように予約7セグメントディスプレイは7箇所の点灯の有無で数字を表示します。この7セグメントディスプレイを横に並べて数を表示したとき、点灯…

くたばれ Python

Python を使う輩の気が知れない R を使うべし 根拠はたくさんある