X



臨床統計もおもしろいですよ、その1 [無断転載禁止]©2ch.net
■ このスレッドは過去ログ倉庫に格納されています
0001卵の名無しさん
垢版 |
2017/05/03(水) 20:04:54.62ID:0YB5L7xG
 
 内科認定医受験の最低限の知識、
 製薬会社の示してくる臨床データ、
 論文の考察、
 論文を書くときの正当性、
 というのが、臨床統計の今までの目的の大きい部分でしたが、
 
 AI=機械学習の基本も、結局は統計学と確率に支配されます。
 そういう雑多な話をするスレです。
 
0806卵の名無しさん
垢版 |
2018/10/26(金) 20:07:01.94ID:46gTk/Hn
こういう風にちゃんと数字を出して問題文を自作しろよ。

東京医大、本来合格者入学許可へ 今年の受験生50人

2018年10月25日 02時06分
 東京医科大=8月、東京都新宿区
 東京医科大が今年の入試で本来合格ラインを上回っていたのに、不正の影響で不合格となった受験生50人に対し、来年4月の入学を認める方針を固めたことが24日、関係者への取材で分かった。
昨年の本来合格者19人については、難しいとの意見が出ているもようだ。東京医大は50人のうち入学希望が多数に上った場合は、来年の一般入試の募集人員減も検討。

https://www.nishinippon.co.jp/sp/nnp/national/article/460101/

https://www.tokyo-med.ac.jp/med/enrollment.htmlによると

学年 第1学年 第2学年

在学者数 133 113

昨年入学者の留年者や退学者が0として、

大学が公式認定した裏口入学者が少なくとも今年は133人中50人、昨年が113人中19人ということになる。

裏口入学率の期待値、最頻値、およびその95%信頼区間を求めよ。
0808卵の名無しさん
垢版 |
2018/10/26(金) 21:44:41.27ID:+rLvZj8m
>>791
外れ値扱いせず、対数正規分布に従うデータとして検定してみた。
負の値になるシミュレーションデータの組み合わせは除外して対数化して検定
n1=17 ; n2=12 ;m1=36.2 ;m2=56.1 ; sd1=21.5 ; sd2=30.1
fx1 = function(){
tmp=scale(rnorm(n1))*sd1+m1
while(min(tmp)<0){
tmp=scale(rnorm(n1))*sd1+m1
}
return(tmp)
}
fx2 = function(){
tmp=scale(rnorm(n2))*sd2+m2
while(min(tmp)<0) tmp=scale(rnorm(n2))*sd2+m2
return(tmp)
}
k=1e4
T.p_value=replicate(k,t.test(log(fx1()),log(fx2()),var=T)$p.value)
W.p_value=replicate(k,t.test(log(fx1()),log(fx2()))$p.value)
mean(T.p_value) ; quantile(T.p_value,c(0.025,0.975))
mean(W.p_value) ; quantile(W.p_value,c(0.025,0.975))
> mean(T.p_value) ; quantile(T.p_value,c(0.025,0.975))
[1] 0.1453533
2.5% 97.5%
0.04098323 0.50619976
> mean(W.p_value) ; quantile(W.p_value,c(0.025,0.975))
[1] 0.1407244
2.5% 97.5%
0.0313094 0.5523005
全く、有意差なしの結論になった。
0809卵の名無しさん
垢版 |
2018/10/26(金) 21:45:35.06ID:+rLvZj8m
>>807
こういう風にちゃんと数字を出して問題文を自作しろよ。

東京医大、本来合格者入学許可へ 今年の受験生50人

2018年10月25日 02時06分
 東京医科大=8月、東京都新宿区
 東京医科大が今年の入試で本来合格ラインを上回っていたのに、不正の影響で不合格となった受験生50人に対し、来年4月の入学を認める方針を固めたことが24日、関係者への取材で分かった。
昨年の本来合格者19人については、難しいとの意見が出ているもようだ。東京医大は50人のうち入学希望が多数に上った場合は、来年の一般入試の募集人員減も検討。

https://www.nishinippon.co.jp/sp/nnp/national/article/460101/

https://www.tokyo-med.ac.jp/med/enrollment.htmlによると

学年 第1学年 第2学年

在学者数 133 113

昨年入学者の留年者や退学者が0として、

大学が公式認定した裏口入学者が少なくとも今年は133人中50人、昨年が113人中19人ということになる。

裏口入学率の期待値、最頻値、およびその95%信頼区間を求めよ。
0811卵の名無しさん
垢版 |
2018/10/26(金) 23:20:04.96ID:+rLvZj8m
>>810
答えるもなにも問題を書けよ、リンクは踏まないから。

3x4が完成
> (t34=sapply(1:12,function(k) treasure0(3,4,k)))
[,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10] [,11] [,12]
短軸有利 5 26 73 133 167 148 91 37 9 1 0 0
長軸有利 5 27 76 140 176 153 92 37 9 1 0 0
同等 2 13 71 222 449 623 609 421 202 64 12 1

4x5が完成
> (t45=sapply(1:20,function(k) treasure0(4,5,k)))
[,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10] [,11] [,12]
短軸有利 9 84 463 1776 5076 11249 19797 28057 32243 30095 22749 13820
長軸有利 9 83 453 1753 5075 11353 20057 28400 32528 30250 22803 13831
同等 2 23 224 1316 5353 16158 37666 69513 103189 124411 122408 98319
[,13] [,14] [,15] [,16] [,17] [,18] [,19] [,20]
短軸有利 6656 2486 695 137 17 1 0 0
長軸有利 6657 2486 695 137 17 1 0 0
同等 64207 33788 14114 4571 1106 188 20 1
0812卵の名無しさん
垢版 |
2018/10/26(金) 23:29:02.10ID:+rLvZj8m
これをCに移植するのは俺には重荷だな。

treasure0 <- function(m=3,n=4,k=2){
y=1:(m*n)
(z=matrix(y,ncol=n,byrow=T))
(P=as.vector(z))
(Q=as.vector(t(z)))
PQ <- function(x){
p=q=numeric(k)
for(i in 1:k){
p[i]=which(P==x[i])
q[i]=which(Q==x[i])
}
min(p)-min(q)
}
tre=combn(m*n,k)
re=apply(tre,2,PQ)
return(c(短軸有利=sum(re<0),長軸有利=sum(re>0),同等=sum(re==0)))
}
0814卵の名無しさん
垢版 |
2018/10/27(土) 02:47:24.95ID:0SWbBA8x
>>813
数値を出して自作問題を書けよ。

統計スレに相応しい問題にしろよ。
これ答えてみ!
昨年入学者の留年者や退学者が0として、
東京医大が公式認定した裏口入学者が少なくとも今年は133人中50人、昨年が113人中19人ということになる。
裏口入学率の期待値、最頻値、およびその95%信頼区間を求めよ。
0815卵の名無しさん
垢版 |
2018/10/27(土) 10:58:30.69ID:ZN2oZPvM
六面体のサイコロでP君のサイコロは3面が1、Q君のサイコロは2面が1とする。
サイコロを降ってどちらか一方が1であればそちらが勝者。
どちらも1であるときは引き分け
どちらも1でないならば少なくともどちらかが1がでるまでサイコロをふる。
P君、Q君の勝つ確率を求めよ。

p=1/2
q=1/3
q: win
(1-p)*q + (1-p)^2*(1-q)*q+(1-p)^3*(1-q)^2*q+(1-p)^4*(1-q)^3*q+....
=(1-p)*q *( 1 + (1-p)*(1-q) + ((1-p)*(1-q))^2 + ((1-p)*(1-q))^3+...
let r=(1-p)*(1-q)=1/2 * 2/3 =1/3
=(1-p)*q *(1 + r + r^2 + r^3 + ...) = (1-1/2)*1/3 * 3/2 = 1/4 = 0.25
p:win
(1-1/3) * 1/2 * 3/2 = 0.5
draw 1-1/4-1/2= 0.25
0816卵の名無しさん
垢版 |
2018/10/27(土) 11:01:51.29ID:ZN2oZPvM
引き分けなしの場合:

六面体のサイコロでP君のサイコロは3面が1、Q君のサイコロは2面が1とする。

サイコロを降ってどちらか一方が1であればそちらが勝者。

どちらも1であるときはもしくはどちらも1でないならば どちらか一方だけが1が出て勝者が決まるまで繰り返す。

P君、Q君の勝つ確率を求めよ。
0817卵の名無しさん
垢版 |
2018/10/27(土) 12:39:05.73ID:ZN2oZPvM
>>816
no_draw rule

Σ[1,∞](1/4)^i = 1/4 *(1-1/4)= 1/3
Pr[P:win]=1/2+1/3*1/2=2/3
Pr[Q:win]1/4+1/3*1/4=1/3

で解ける(ド底辺シリツ医大卒の裏口バカには無理)が、シミュレーションプログラムの練習をしてみる。

P=c(1,1,1,3,4,5)
Q=c(1,1,2,3,4,5)

sub = function(){
p=sample(P,1)
q=sample(Q,1)
if(p==1 & q!=1) return(1)
if(p!=1 & q==1) return(-1)
return(0)
}

throw <- function(){
r=sub()
while(r==0) r=sub()
return(r)
}
re=replicate(1e3,mean(replicate(1e3,throw()==-1)))
summary(re)
0818卵の名無しさん
垢版 |
2018/10/27(土) 12:42:12.98ID:ZN2oZPvM
> re=replicate(1e3,mean(replicate(1e3,throw()==-1)))
> summary(re)
Min. 1st Qu. Median Mean 3rd Qu. Max.
0.2840 0.3230 0.3330 0.3331 0.3430 0.3830

理論値と合致。

シミュレーションのデバッグの方が面倒だった。
0819卵の名無しさん
垢版 |
2018/10/27(土) 16:35:18.47ID:kZ9du42U
おら ど底辺事務員

算数の問題 の答えは まだか?

やっぱり 解けないんだなW
0820卵の名無しさん
垢版 |
2018/10/27(土) 16:39:48.42ID:ZN2oZPvM
答えるもなにも問題を書けよ、リンクは踏まないから。

最近のトピックを題材にした問題

これ答えてみ!
昨年入学者の留年者や退学者が0として、
東京医大が公式認定した裏口入学者が少なくとも今年は133人中50人、昨年が113人中19人ということになる。
裏口入学率の期待値、最頻値、およびその95%信頼区間を求めよ。

ド底辺シリツ医大卒なら無理だろうが、国立大学でていて解けないなら恥ずかしいね。
0821卵の名無しさん
垢版 |
2018/10/27(土) 18:43:40.34ID:sR9utt0J
はよ 算数の問題 の答えだせや

         し!     _  -── ‐-   、  , -─-、 -‐─_ノ
  小 国    // ̄> ´  ̄    ̄  `ヽ  Y  ,  ´     )      事  え
  学 試    L_ /                /        ヽ  務   |
  生 浪    / '                '           i員 !? マ
  ま 人    /                 /           く    ジ
  で が    l           ,ィ/!    /    /l/!,l     /厶,
  だ 許   i   ,.lrH‐|'|     /‐!-Lハ_  l    /-!'|/l   /`'メ、_iヽ
  よ さ   l  | |_|_|_|/|    / /__!__ |/!トi   i/-- 、 レ!/   / ,-- レ、⌒Y⌒ヽ
  ね れ    _ゝ|/'/⌒ヽ ヽト、|/ '/ ̄`ヾ 、ヽト、N'/⌒ヾ      ,イ ̄`ヾ,ノ!
   l る  「  l ′ 「1       /てヽ′| | |  「L!     ' i'ひ}   リ
    の   ヽ  | ヽ__U,      、ヽ シノ ノ! ! |ヽ_、ソ,      ヾシ _ノ _ノ
-┐   は ,√   !            ̄   リ l   !  ̄        ̄   7/
  レ'⌒ヽ/ !    |   〈       _人__人ノ_  i  く            //!
人_,、ノL_,iノ!  /! ヽ   r─‐- 、   「      L_ヽ   r─‐- 、   u  ノ/
      /  / lト、 \ ヽ, -‐┤  ノ    キ    了\  ヽ, -‐┤     //
ハ キ  {  /   ヽ,ト、ヽ/!`hノ  )  モ    |/! 「ヽ, `ー /)   _ ‐'
ハ ャ   ヽ/   r-、‐' // / |-‐ く       |     > / / `'//-‐、    /
ハ ハ    > /\\// / /ヽ_  !       イ    (  / / //  / `ァ-‐ '
ハ ハ   / /!   ヽ    レ'/ ノ        >  ' ∠  -‐  ̄ノヽ   /
       {  i l    !    /  フ       /     -‐ / ̄/〉 〈 \ /!
0822卵の名無しさん
垢版 |
2018/10/27(土) 18:55:20.24ID:NpJ0k/uw
答えるもなにも問題を書けよ、リンクは踏まないから。

最近のトピックを題材にした問題

これ答えてみ!
昨年入学者の留年者や退学者が0として、
東京医大が公式認定した裏口入学者が少なくとも今年は133人中50人、昨年が113人中19人ということになる。
裏口入学率の期待値、最頻値、およびその95%信頼区間を求めよ。

ド底辺シリツ医大卒なら無理だろうが、国立大学でていて解けないなら恥ずかしいね。
0823卵の名無しさん
垢版 |
2018/10/27(土) 19:14:52.46ID:kZ9du42U
このスレは事務員が日がな一日妄想を垂れ流し
見物人たちがそれを見てフルボッコにするスレである

事務員 とは?
同一者の別名として、薄汚いジジイ、国試浪人、統計野郎、自称医科歯科、がある
自称医科歯科卒、実際は九州の駅弁国立出身で、卒業後は実家の東京に帰り国試浪人となり23年間経過、家庭教師バイトなどを経て現在は事務員、とされている
本人は、勤務医でたまに開業医の手伝いと内視鏡バイト、専門医なし、と主張しているが、連日連夜の異常な書き込み数の多さからは、勤務医とは考え難く、彼の職業がたとえ何であったとしても、人としてド底辺なことは間違いがない
自ら事務員であると告白したこともある
https://egg.5ch.net/test/read.cgi/hosp/1531459372/108-109
自作自演も頻繁に行なっている
事務仕事の際に手にした他人の給与明細や同窓会費振込票を盗撮し、自分のものとしてアップロードしたこともある、犯罪なんじゃねーの?
統計絶対主義でマウントを取ろうとするが、大学卒業後の人生の大部分においてそれが何の役に立つのかはなはだ疑問である
統計に基づいた重病の治療成績を患者に説明しても、患者の希望する治療は患者の事情によって異なることは一定年数以上の臨床経験があるものなら誰でも知っていることだ
それが理解できない彼は、彼自身が素性を明らかにしているようなものである
コンプ薬屋同様に、私立医への執拗な誹謗中傷を数年余にわたって続けている
裏口批判をしているが、実際にそれが可能な資産家の子弟がいるであろう右派スレには近寄らない、一度書き込んだ形跡があったが指摘したら別人だと言って逃げた
弱いものが多そうなスレしか狙わないのもコンプ薬屋と共通する異常者の特徴である
劣等コンプレックスの塊なんだろうな
自分の主張に対して都合の悪い突込みが入ると、相手を私立医と決めつけて、さてはシリツだな、裏口バカ、というセリフでワンパターンに返すことが多い
国試問題を挙げて簡単だとほざいてますが、本番で通らなければお話になりません
いくらネットでわめいていても、医師国試の本番で通らなければお話になりません
大事なことなので2回言いました
0825卵の名無しさん
垢版 |
2018/10/28(日) 06:31:16.86ID:Q5x4cT59
>>824
>>803
残念ながら俺、東大卒じゃないのよ。
1期校は滑り止めに受けた理一通ったけど行かなかった。
0826卵の名無しさん
垢版 |
2018/10/28(日) 07:07:44.53ID:Q5x4cT59
>>824
答えるもなにも問題を書けよ、リンクは踏まないから。

最近のトピックを題材にした問題

これ答えてみ!
昨年入学者の留年者や退学者が0として、
東京医大が公式認定した裏口入学者が少なくとも今年は133人中50人、昨年が113人中19人ということになる。
裏口入学率の期待値、最頻値、およびその95%信頼区間を求めよ。

ド底辺シリツ医大卒なら無理だろうが、国立大学でていて解けないなら恥ずかしいね。
0827卵の名無しさん
垢版 |
2018/10/28(日) 09:59:54.67ID:Q5x4cT59
>>812
k=2
n=m+1
の特殊ケースを移植してくれた人がいた。
パラメータを変えるだけで宝の数を増やせる仕様でないのは残念。

int main(){
int i,j,P[5000],Q[5000],c,m,n,mn,Pwin,Qwin,Draw,pp,qq;
for(m=1;m<70;m++){
n=m+1;mn=m*n;
for(i=0,c=1;i<m;i++)for(j=0;j<n;j++)P[j*m+i+1]=Q[i*n+j+1]=c++;
for(i=1,Pwin=Qwin=Draw=0;i<mn;i++)for(j=i+1;j<=mn;j++){
pp=P[i]>P[j]?P[j]:P[i];
qq=Q[i]>Q[j]?Q[j]:Q[i];
if(pp>qq)Pwin++;else if(pp<qq) Qwin++;else Draw++;
}
printf("%3d*%3d: %d, %d, %d\n",m,n,Pwin,Qwin,Draw);
}
return 0;
}
0828卵の名無しさん
垢版 |
2018/10/28(日) 12:08:07.77ID:6treyEuT
算数の問題 と書いてあるから 間違いなく算数の問題なのだ
というわけで 回答まだぁ

それはそうとド底辺事務員の好きな高学歴スレに
宣伝して来てやったぞ
ありがたく思え

http://asahi.5ch.net/test/read.cgi/newsplus/1540436974/600-

入試の時だけ成績が良くても、その後の生活で人はダメになるんやね
国立私立問わず医学部に入学しても、その後の生活がダメダメで
国試に通らなかったり、専門医も取れなかったりすると
人としてダメダメになるんやね
0829卵の名無しさん
垢版 |
2018/10/28(日) 12:29:02.77ID:Q5x4cT59
treasure0 <- function(m=3,n=4,k=2){
y=1:(m*n)
(z=matrix(y,ncol=n,byrow=T))
(P=as.vector(z))
(Q=as.vector(t(z)))
PQ <- function(x){
p=q=numeric(k)
for(i in 1:k){
p[i]=which(P==x[i])
q[i]=which(Q==x[i])
}
min(p)-min(q)
}
tre=combn(m*n,k)
re=apply(tre,2,PQ)
return(c(短軸有利=sum(re<0),長軸有利=sum(re>0),同等=sum(re==0)))
}

結局、
combn(m*n,k)
ここがボトルネックなんだよなぁ。

12部屋から6部屋選ぶ組み合わせは924通りしかないのに
20部屋から10部屋だと184756通り、
30部屋から15部屋だと155117520通り、
という感じなのでどうしても時間やメモリを食う。
0830卵の名無しさん
垢版 |
2018/10/28(日) 13:22:21.24ID:Q5x4cT59
やはり、cは高速だな

#include<stdio.h>
int main(){
int i,j,P[10000],Q[10000],c,m,n,mn,Pwin,Qwin,Draw,pp,qq;
for(m=1;m<100;m++){
n=m+1;
mn=m*n;
for(i=0,c=1;i<m;i++)for(j=0;j<n;j++)P[j*m+i+1]=Q[i*n+j+1]=c++;
for(i=1,Pwin=Qwin=Draw=0;i<mn;i++)for(j=i+1;j<=mn;j++){
pp=P[i]>P[j]?P[j]:P[i];
qq=Q[i]>Q[j]?Q[j]:Q[i];
if(pp>qq)Pwin++;else if(pp<qq) Qwin++;else Draw++;
}
printf("%3d*%3d: %d, %d, %d\n",m,n,Pwin,Qwin,Draw);
}
return 0;
}

90* 91: 16820566, 16703175, 10214
91* 92: 17575980, 17454585, 10441
92* 93: 18356554, 18231065, 10671
93* 94: 19162841, 19033167, 10903
94* 95: 19995399, 19861448, 11138
95* 96: 20854793, 20716472, 11375
96* 97: 21741593, 21598808, 11615
97* 98: 22656376, 22509032, 11857
98* 99: 23599724, 23447725, 12102
99*100: 24572226, 24415475, 12349
0831卵の名無しさん
垢版 |
2018/10/28(日) 19:48:06.14ID:Q5x4cT59
>>827
このコードをもとに宝を増やすように改変したつもりで数学板投稿したらをバグを指摘された。勉強になって( ・∀・)イイ!!
このスレのド底辺からは学ぶことがないなあ。
0832卵の名無しさん
垢版 |
2018/10/28(日) 20:16:51.08ID:AAZUotga
## 第22回生命表(完全生命表)http://www.mhlw.go.jp/toukei/saikin/hw/life/22th/index.html

F=c(178,32,20,12,8,8,8,8,7,7,7,7,7,7,8,10,12,13,15,16,17,19,20,22,23,24,25,27,28,30,31,32,34,36,39,41,42,45,50,56,
62,68,73,79,85,94,104,114,124,134,145,159,174,189,202,215,226,237,250,268,291,318,346,372,399,433,471,511,554,603,662,729,802,874,954,1053,1180,1332,1505,1699,1909,2143,2409,2701,3004,3310,3622,3938,4253,4531,4757,4918,5025,
5024,4876,4598,4132,3594,3025,2464,1941,1477,1085,769,525,345,217,132,76,42,22,11,5,2,1,0)

M=c(202,34,24,16,11,10,10,10,9,8,7,7,8,11,13,17,21,26,32,39,45,49,51,53,55,55,54,54,54,56,57,59,61,65,69,73,75,78,
84,93,103,113,122,131,144,159,176,195,215,236,257,283,310,340,373,411,450,488,525,568,620,688,764,839,910,994,
1081,1166,1256,1349,1450,1561,1675,1776,1885,2021,2185,2377,2594,2819,3046,3279,3504,3714,3900,4043,4116,4127,
4080,3973,3810,3580,3302,2967,2567,2123,1718,1352,1034,768,554,387,262,171,108,66,39,22,12,6,3,2,1)

LE <-function(ndx,Y,N0=10^5){
n=length(ndx)
lx=numeric(n)
lx[1]=N0
for(i in 1:(n-1))
lx[i+1] <- lx[i] - ndx[i]
nqx=ndx/lx
nLx=numeric(n)
for(i in 1:n)
nLx[i] <- mean(c(lx[i],lx[i+1]))
nLx[n]=0
Tx=rev(cumsum(rev(nLx)))
le=Tx/lx
return(round(le[Y+1],2))
}
yome = function(x){
le=LE(m,x)
round(uniroot(function(x,u0) LE(f,x)-le,c(1,100))$root)
}
y=sapply(18:80,yome)
plot(18:80,y-18:80)
0833卵の名無しさん
垢版 |
2018/10/29(月) 21:31:07.37ID:VzAgCvD5
さて 算数の問題です

https://m.youtube.com/watch?v=ryUjUlIgI9I&;list=PL9Aupg5SItT6sfFeXgtmOtsq9R5yCkp3G&t=1s&index=24

この動画は part1 が 2009年に投稿され
最終回まであと1話となっています
最終回の登校日はいつになるでしょう?

あらゆる手段を用いて求めましょう
0834卵の名無しさん
垢版 |
2018/10/29(月) 21:44:21.84ID:72tLNU2F
>>829
Haskellの遅延IOを使うととりあえずのメモリ不足は克服できる。

combinations :: Int -> [a] -> [[a]]
combinations 0 _ = [ [] ]
combinations n xs = [ y:ys | y:xs' <- tails xs, ys <- combinations (n-1) xs']

Prelude> take 5 $ combinations 15 [1..30]
[[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15],[1,2,3,4,5,6,7,8,9,10,11,12,13,14,16],[1,2,3,4,5,6,7,8,9,10,11,12,13,14,17],[1,2,3,4,5,6,7,8,9,10,11,12,13,14,18],[1,2,3,4,5,6,7,8,9,10,11,12,13,14,19]]
0835卵の名無しさん
垢版 |
2018/10/29(月) 21:46:20.38ID:72tLNU2F
Prelude> tre = combinations 15 [1..30]
Prelude> tre !! 100000
[1,2,3,4,5,6,7,8,11,12,17,20,21,25,30]
10万個目の組み合わせも出してはくれるが、処理が終わる時間が予想がつかないなぁ。
0836卵の名無しさん
垢版 |
2018/10/29(月) 22:12:36.39ID:72tLNU2F
>>829
min(p) - min(q)までHaskellに移植できた。

import Data.List
import Data.List.Split

k = 2
q = [1..12]
matQ = chunksOf 3 q
matP = transpose matQ
p = concat matP
combinations :: Int -> [a] -> [[a]]
combinations 0 _ = [ [] ]
combinations n xs = [ y:ys | y:xs' <- tails xs, ys <- combinations (n-1) xs']
tre = combinations 2 q

ip x1 x2 = minimum [elemIndices x1 p, elemIndices x2 p] !! 0
iq x1 x2 = minimum (elemIndices x1 q, elemIndices x2 q) !! 0
pqi x1 x2 = ip x1 x2 - iq x1 x2
0837卵の名無しさん
垢版 |
2018/10/29(月) 23:42:39.13ID:72tLNU2F
Haskellへの移植プログラム完成!

import Data.List
import Data.List.Split
m = 5 -- 縦マス(短軸)
n = 6 -- 横マス(長軸)
k = 5 -- 宝の数
q = [0..m*n-1]
matQ = chunksOf m q
matP = transpose matQ --行列を転置して
p = concat matP -- 配列に変換

combinations :: Int -> [a] -> [[a]]
combinations 0 _ = [ [] ]
combinations n xs = [ y:ys | y:xs' <- tails xs, ys <- combinations (n-1) xs']
treasure = combinations k q -- 宝の組み合わせ
ip y = minimum $ map(\x -> elemIndices x p!!0) y -- 宝の、配列pでのindex列を求めて最小値を返す
iq y = minimum $ map(\x -> elemIndices x q!!0) y

idxp = map ip treasure -- 宝の組み合せで実行して
idxq = map iq treasure

p_q = zipWith (-) idxp idxq -- 差をとって大小判別
p1st = length $ filter (<0) p_q -- 短軸方向探索pが先に宝をみつける
q1st = length $ filter (>0) p_q
draw = length $ filter (==0) p_q

main = do
putStrLn $ "p1st = " ++ show p1st ++ ", q1st = " ++ show q1st ++ ", draw = " ++ show draw
0838卵の名無しさん
垢版 |
2018/10/30(火) 00:23:28.38ID:Eer9XEMu
コンパイルしてコマンドラインから実行できるように改変(但し、エラー処理皆無)

import System.Environment
import Data.List
import Data.List.Split

combinations :: Int -> [a] -> [[a]]
combinations 0 _ = [ [] ]
combinations n xs = [ y:ys | y:xs' <- tails xs, ys <- combinations (n-1) xs']

main = do
argList <- getArgs -- m : 縦マス(短軸) n : 横マス(長軸) k : 宝の数
let m = read (argList !! 0)
n = read (argList !! 1)
k = read (argList !! 2)
q = [0..m*n-1]
matQ = chunksOf n q
matP = transpose matQ --行列を転置して
p = concat matP -- 配列に変換
treasure = combinations k q -- 宝の組み合わせ
ip y = minimum $ map(\x -> elemIndices x p!!0) y -- 宝の、配列pでのindex列を求めて最小値を返す
iq y = minimum $ map(\x -> elemIndices x q!!0) y
idxp = map ip treasure -- 宝の組み合せで実行して
idxq = map iq treasure
p_q = zipWith (-) idxp idxq -- 差をとって大小判別
p1st = length $ filter (<0) p_q -- 短軸方向探索pが先に宝をみつける
q1st = length $ filter (>0) p_q
draw = length $ filter (==0) p_q
putStrLn $ "p1st = " ++ show p1st ++ ", q1st = " ++ show q1st ++ ", draw = " ++ show draw
0839卵の名無しさん
垢版 |
2018/10/30(火) 00:28:02.10ID:Eer9XEMu
暴走せずに200万個を数えてくれる

>treasure 5 6 8
p1st = 1827737, q1st = 1825076, draw = 2200112
0840卵の名無しさん
垢版 |
2018/10/30(火) 01:00:07.00ID:Eer9XEMu
\hs>treasure 5 6 10
p1st = 7995426, q1st = 8023257, draw = 14026332
0841卵の名無しさん
垢版 |
2018/10/30(火) 07:08:46.76ID:Eer9XEMu
>treasure 5 6 9
p1st = 4130886, q1st = 4139080, draw = 6037184
0842卵の名無しさん
垢版 |
2018/10/30(火) 07:49:18.11ID:BVJsV4IZ
やはり事務員には難しすぎたようだね

さて 算数の問題です

https://m.youtube.com/watch?v=ryUjUlIgI9I&;list=PL9Aupg5SItT6sfFeXgtmOtsq9R5yCkp3G&t=1s&index=24

この動画は part1 が 2009年に投稿され
最終回まであと1話となっています
最終回の登校日はいつになるでしょう?

あらゆる手段を用いて求めましょう
0843卵の名無しさん
垢版 |
2018/10/30(火) 08:53:02.81ID:kXLKssbE
>>838
5×6マスで宝の数を10まで増やしていくと、

D:\bin>for %i in (1,2,3,4,5,6,7,8,9,10) do treasure 5 6 %i

D:\bin>treasure 5 6 1
p1st = 14, q1st = 14, draw = 2
D:\bin>treasure 5 6 2
p1st = 203, q1st = 197, draw = 35
D:\bin>treasure 5 6 3
p1st = 1801, q1st = 1727, draw = 532
D:\bin>treasure 5 6 4
p1st = 11418, q1st = 11008, draw = 4979
D:\bin>treasure 5 6 5
p1st = 55469, q1st = 54036, draw = 33001
D:\bin>treasure 5 6 6
p1st = 215265, q1st = 211894, draw = 166616
D:\bin>treasure 5 6 7
p1st = 685784, q1st = 680768, draw = 669248
D:\bin>treasure 5 6 8
p1st = 1827737, q1st = 1825076, draw = 2200112
D:\bin>treasure 5 6 9
p1st = 4130886, q1st = 4139080, draw = 6037184
D:\bin>treasure 5 6 10
p1st = 7995426, q1st = 8023257, draw = 14026332

1:同等
1〜8:短軸探索有利
9、10:長軸探索有利
という結果になった。

久しぶりにバッチコマンドを書いた
0845卵の名無しさん
垢版 |
2018/10/30(火) 09:01:44.04ID:Eer9XEMu
>>842
>あらゆる手段を用いて求めましょう

答: お前が答を書け

解答終了!!!

>>838
数学板の賢者がcでプログラムするのを期待していたが、cだと最初にメモリを割り当てなくちゃいけないから難しいんじゃないかな?
動的メモリ確保にしてメモリ不足を回避する必要がでてくると思う。
Rで30個から15個取り出す組み合わせをしようとしたら

> nrow(combn(30,15))
Error: cannot allocate vector of size 8.7 Gb

のメッセージがでて実行不能だった。
0846卵の名無しさん
垢版 |
2018/10/30(火) 10:25:52.99ID:Eer9XEMu
30個から15個取り出す組み合わせは155117520通りあるので
シミュレーションで頻度を出して確率を推測してみることにした。

m=5
n=6
mn=m*n
P=as.vector(matrix(1:mn,ncol=n,byrow=T))
Q=1:mn
sim <- function(k=15,all=FALSE){
tre=sample(mn,k)
p=q=numeric(k)
for(i in 1:k){
p[i]=which(tre[i]==P)
q[i]=which(tre[i]==Q)
}
p_order=ifelse(all,max(p),min(p))
q_order=ifelse(all,max(q),min(q))
p_order - q_order
}

choose(30,15)
re15=replicate(1e5,sim(15))
mean(re15<0) < mean(re15>0)
c(p1st_sim=mean(re15<0), q1st_sim=mean(re15>0) ,draw_sim=mean(re15==0))

> c(p1st_sim=mean(re15<0), q1st_sim=mean(re15>0) ,draw_sim=mean(re15==0))
p1st_sim q1st_sim draw_sim
0.16354 0.16515 0.67131
0848卵の名無しさん
垢版 |
2018/10/30(火) 14:03:59.31ID:Eer9XEMu
treasures <- function(m,n,k){
mn=m*n
Q=1:mn
(mat=matrix(Q,ncol=n,byrow=T))
(P=as.vector(mat))
tre=combn(mn,k)
PQ <- function(x){
p=q=p_q=numeric(k)
for(i in 1:k){
p[i]=which(P==x[i])
q[i]=which(Q==x[i])
p_q[i]=p[i]-q[i]
}
return(p_q)
}
re=apply(tre,2,PQ)
result=matrix(rep(NA,k*3),ncol=3)
colnames(result)=c('p1st','q1st','even')
for(i in 1:k){
result[i,] = c(sum(re[i,]<0),sum(re[i,]>0),sum(re[i,]==0))
}
return(result)
}
treasures(4,5,5)
# http://tpcg.io/Ph7TUQ
0849卵の名無しさん
垢版 |
2018/10/30(火) 14:06:10.19ID:Eer9XEMu
D:\bin>treasure 5 6 11
p1st = 13346984, q1st = 13395944, draw = 27884372

D:\bin>treasure 5 6 12
p1st = 19312228, q1st = 19372871, draw = 47808126
0850卵の名無しさん
垢版 |
2018/10/30(火) 14:08:53.77ID:Eer9XEMu
>>848
この結果は面白いな

全体としては互角なんだが、勝負のルールによって勝者がかわるのがこれで分かった。

> treasures(4,5,5)
p1st q1st even
[1,] 1948 9680 3876
[2,] 5488 10016 0
[3,] 7752 7752 0
[4,] 10016 5488 0
[5,] 9680 1948 3876
0851卵の名無しさん
垢版 |
2018/10/30(火) 16:01:45.84ID:Eer9XEMu
>>849
メモリ不足でクラッシュするかと思ったが案外、頑強だな。
エラー処理皆無でコードを書いたのだが。
1億を超える演算をこなしている。
Haskellのコンパイラーは優秀で感心。


D:\bin>treasure 5 6 13
p1st = 24301031, q1st = 24358063, draw = 71100756
0852卵の名無しさん
垢版 |
2018/10/30(火) 16:05:37.28ID:BVJsV4IZ
おい、婚活に失敗したド底辺

算数の問題の答えはまだぁ

まぁオマエの頭じゃ無理だろうな
0853卵の名無しさん
垢版 |
2018/10/30(火) 16:06:30.58ID:BVJsV4IZ
このスレは事務員が日がな一日妄想を垂れ流し
見物人たちがそれを見てフルボッコにするスレである

事務員 とは?
同一者の別名として、薄汚いジジイ、国試浪人、統計野郎、自称医科歯科、がある
自称医科歯科卒、実際は九州の駅弁国立出身で、卒業後は実家の東京に帰り国試浪人となり23年間経過、家庭教師バイトなどを経て現在は事務員、とされている
本人は、勤務医でたまに開業医の手伝いと内視鏡バイト、専門医なし、と主張しているが、連日連夜の異常な書き込み数の多さからは、勤務医とは考え難く、彼の職業がたとえ何であったとしても、人としてド底辺なことは間違いがない
自ら事務員であると告白したこともある
https://egg.5ch.net/test/read.cgi/hosp/1531459372/108-109
自作自演も頻繁に行なっている
事務仕事の際に手にした他人の給与明細や同窓会費振込票を盗撮し、自分のものとしてアップロードしたこともある、犯罪なんじゃねーの?
統計絶対主義でマウントを取ろうとするが、大学卒業後の人生の大部分においてそれが何の役に立つのかはなはだ疑問である
統計に基づいた重病の治療成績を患者に説明しても、患者の希望する治療は患者の事情によって異なることは一定年数以上の臨床経験があるものなら誰でも知っていることだ
それが理解できない彼は、彼自身が素性を明らかにしているようなものである
コンプ薬屋同様に、私立医への執拗な誹謗中傷を数年余にわたって続けている
裏口批判をしているが、実際にそれが可能な資産家の子弟がいるであろう右派スレには近寄らない、一度書き込んだ形跡があったが指摘したら別人だと言って逃げた
弱いものが多そうなスレしか狙わないのもコンプ薬屋と共通する異常者の特徴である
劣等コンプレックスの塊なんだろうな
自分の主張に対して都合の悪い突込みが入ると、相手を私立医と決めつけて、さてはシリツだな、裏口バカ、というセリフでワンパターンに返すことが多い
国試問題を挙げて簡単だとほざいてますが、本番で通らなければお話になりません
いくらネットでわめいていても、医師国試の本番で通らなければお話になりません
大事なことなので2回言いました
0854卵の名無しさん
垢版 |
2018/10/30(火) 16:12:20.65ID:Eer9XEMu
>>852
問題文がないのだから、無理だよ。

>あらゆる手段を用いて求めましょう

答: お前が答を書け

解答終了!!!
0855卵の名無しさん
垢版 |
2018/10/30(火) 18:54:55.33ID:Eer9XEMu
treasure_order <- function(m,n,k){
mn=m*n
Q=1:mn
(mat=matrix(Q,ncol=n,byrow=T))
(P=as.vector(mat))
tre=combn(mn,k)
PQk <- function(x){
p=q=p_q=numeric(k)
for(i in 1:k){
p[i]=which(P==x[i])
q[i]=which(Q==x[i])
}
pq=sort(unique(c(p,q)))
np=as.numeric(pq[1:k] %in% p)
nq=as.numeric(pq[1:k] %in% q)
10*np + nq
}
(re=apply(tre,2,PQk))
(result=matrix(NA,nrow=k,ncol=3))
for(i in 1:k){
result[i,]=c(sum(re[i,]==10),sum(re[i,]==1 ),sum(re[i,]==11))
}
colnames(result)=c('P_gets','Q_gets','both_get')
result
}
treasure_order(4,5,5)
■ このスレッドは過去ログ倉庫に格納されています

ニューススポーツなんでも実況