プログラミングのお題 ..
912:デフォルトの名無しさん
22/11/04 19:18:35.30 u3TD418O.net
ん?
ならなにを言いたいのかわからんわ
913:デフォルトの名無しさん
22/11/04 19:20:02.13 iggZ7AM6.net
わからないなら無理に書き込まなくていいよ
914:デフォルトの名無しさん
22/11/04 19:54:59.56 u3TD418O.net
ごめん、説明できないならいいや
915:デフォルトの名無しさん
22/11/05 14:37:23.18 wb4h3pkZ.net
>>857 octave
URLリンク(ideone.com)
f = @(a, b) (a + b) * (b - a + 1) / 2;
916:デフォルトの名無しさん
22/11/05
917:22:37:38.99 ID:ik3uUvNv.net
918:デフォルトの名無しさん
22/11/05 23:35:33.60 WGyFluMA.net
10*11/2
919:デフォルトの名無しさん
22/11/06 03:33:15.03 V4pkDxVq.net
>>857
Kotlin
URLリンク(paiza.io)
ループ文は使わず再帰でなんとかした。
(1..10).sum() や (1..10).reduce { a, n -> a + n } でも結果は出るが sum() や reduce() がライブラリにある拡張関数なので没。
10 * 11 / 2 とか 55 を直接出すのはプログラム作る意味がほとんどないような感じがするので止めた。
920:デフォルトの名無しさん
22/11/06 04:47:10.33 p1AlQ8ne.net
お題が、正方形や三角形の面積を求めるのと
同程度に簡単な式だしなあ
921:デフォルトの名無しさん
22/11/06 08:11:23.79 l6ScHNeb.net
Haskell
sum [1..10]
922:デフォルトの名無しさん
22/11/06 08:35:41.45 5UCgIOa9.net
>>861で終了じゃん
最適化して55でも良いけど
中途半端に和の公式使ってるヤツってアホなの?
923:デフォルトの名無しさん
22/11/06 09:08:00.03 aYMPlSSq.net
一垓にそうは言えないのでは
ループを使わないの意味が多くの数でもすぐ答えがでそうな処理を見たいのかもしれない
924:デフォルトの名無しさん
22/11/06 09:25:21.24 p1AlQ8ne.net
掛け算割り算だと中途半端でアホで
足し算だと利口だとおっしゃる
925:デフォルトの名無しさん
22/11/06 09:33:05.99 5UCgIOa9.net
和の公式を使うくらいなら55の方が良い
って話
なんで中途半端な最適化をするの?
926:デフォルトの名無しさん
22/11/06 09:38:06.42 gK09y9Q8.net
1^n + 2^n +・・・+(10^25)^n
n=10、 n=-17
の手段選ばすとかは?
25条はぎりふつうループでは困難かとおもえる数値を適当にいまおもいついた
927:デフォルトの名無しさん
22/11/06 10:54:00.31 Zb5xxfES.net
= 10+(9+1)+(8+2)+(7+3)+(4+6)+5
= 10+10+ 10+ 10+ 10+ 5
= 10 + (10 * ((10/2)-1))+5
= (10 * ((10/2)-1))+10+5
= x(0.5x-1)+1.5x
928:デフォルトの名無しさん
22/11/06 12:06:08.03 5iQhHwnm.net
こうどなじょうほうせん を愉しむための問題でしょ
929:デフォルトの名無しさん
22/11/06 15:29:02.07 RIYDMAGE.net
と思って>>863を書いたんだけど
930:デフォルトの名無しさん
22/11/06 15:33:43.73 RIYDMAGE.net
1~10の合計
1から10までの合計
じゃなくて
1~10までの合計
っていうのも気になった
931:デフォルトの名無しさん
22/11/06 17:04:56.12 PNCv3I6p.net
1~10までの実数の合計って言ってる奴は有限の値に収束するとでも思っているか
932:デフォルトの名無しさん
22/11/06 18:24:36.01 S6zCBHE1.net
するだろ
URLリンク(i.imgur.com)
933:デフォルトの名無しさん
22/11/06 18:35:07.31 mzFwuoQr.net
>>890
合計にはdx関係ないぞ...
934:デフォルトの名無しさん
22/11/06 18:37:14.41 PNCv3I6p.net
低レベルすぎて草
1以上10以下の実数全体の集合をAとすると
#A = ?_1 ゆえに Σ_{λ∈A}λ は有限の値を取らない
935:デフォルトの名無しさん
22/11/06 18:38:48.30 PNCv3I6p.net
文字化けしたか
「#A = 連続体濃度」
936:デフォルトの名無しさん
22/11/06 18:48:29.30 qhQ571Br.net
なんか足すと一見無限になりそうだけど
ある区間a<bの間にa<c<bとなるcが取れなくなることはありえないよね?
937:デフォルトの名無しさん
22/11/06 19:07:23.07 9PA1hevU.net
>>889
和が存在しないとうならそれが答え
3を含むが3.5を含まないという説得力のある説明が出来るならよろしく
938:デフォルトの名無しさん
22/11/06 19:12:17.73 PNCv3I6p.net
>>895
和が発散する説明はすでにしてあるんだが何を言いたいの
939:デフォルトの名無しさん
22/11/06 19:14:51.13 9PA1hevU.net
Q:和を求めよ
A:和は存在しない
940:デフォルトの名無しさん
22/11/06 19:15:52.52 9PA1hevU.net
発散とか収束とか
意味をわかって使わないと恥ずかしいぞ
941:デフォルトの名無しさん
22/11/06 19:17:22.08 PNCv3I6p.net
>>895みたいなこと言う奴が解析の基礎すら理解できてるとすら思えないが
942:デフォルトの名無しさん
22/11/06 19:17:36.32 9PA1hevU.net
>>892が最高に恥ずかしい
943:デフォルトの名無しさん
22/11/06 19:19:08.56 9PA1hevU.net
>>899
最高に笑える書き込みありがとう
944:デフォルトの名無しさん
22/11/06 19:19:25.97 PNCv3I6p.net
数学的に具体的な反論が一切ないじゃん
バカなの
945:デフォルトの名無しさん
22/11/06 19:21:59.86 aYMPlSSq.net
ぽまえら
餅付いて >>857 を嫁
946:デフォルトの名無しさん
22/11/06 19:23:24.47 9PA1hevU.net
>>892を見ただけでアホだとわかる
947:デフォルトの名無しさん
22/11/06 19:24:24.94 PNCv3I6p.net
>>904
暴言は結構なんで、数学的に反論してくれませんか?
まあ頭が悪くてできないんでしょうけど
948:デフォルトの名無しさん
22/11/06 19:28:25.36 9PA1hevU.net
>>905
何に反論してほしいの?
多分視野が狭くて何を主張されてるのかわかってないと思うんで
一回落ち着いた方がいいぞ
その上で
君が主張を明確にして
それに対して反対意見があれば反論してあげる
949:デフォルトの名無しさん
22/11/06 19:30:41.70 9PA1hevU.net
1以上10以下の実数の総和が存在しないことなんて
誰でもわかる
和が存在するなんて主張はしてないから勘違いしないように
950:デフォルトの名無しさん
22/11/06 19:31:28.37 PNCv3I6p.net
>>906
>1~10までの実数の合計って言ってる奴は有限の値に収束するとでも思っているか
に対してお前は>>895みたいなクソ発言してるわけだがこのクソ発言の妥当性を説明して見ろよ
951:デフォルトの名無しさん
22/11/06 19:35:38.89 9PA1hevU.net
和が存在しないというならそれが答え
の意味がわからなかったかな?
その次の文は和の存在とは関係ない
君への宿題
952:デフォルトの名無しさん
22/11/06 19:37:43.37 PNCv3I6p.net
>>909
任意のRの開区間に対してその元の和が有限の値になる場合何てないんだから
「和が存在しないというならそれが答え」なんて発言は問題の本質を理解していないバカの発言だろ
人に宿題出す前に算数からやり直せよ
953:デフォルトの名無しさん
22/11/06 19:40:06.40 eRXytuty.net
【悲報】アスペ君、今日も元気。。。
954:デフォルトの名無しさん
22/11/06 19:46:26.35 Zb5xxfES.net
プログラミングのお題なんだから1+2+に決まってるだろ。
少数を含めた1から10までに考えられる数値を足すとかできるわけねえだろ。
955:デフォルトの名無しさん
22/11/06 19:47:59.95 9PA1hevU.net
>>910
問題の本質というなら
解釈の多様性が本質
和の存在は解釈とは無関係
存在しないなら「存在しない」が答えとなるだけの話
956:デフォルトの名無しさん
22/11/06 19:48:45.29 9PA1hevU.net
>>912
floatやdoubleなら有限だね
957:デフォルトの名無しさん
22/11/06 19:49:37.79 PNCv3I6p.net
>>913
お気持ちで数学を語るのやめてくれませんかね
はなはだ不愉快です
「任意のRの開区間に対してその元の和」に対して有限の値を取らないという以外にどんな有意味なモデルが取り得るんですかね
バカすぎて日本語の意味すら理解できてなさそうだけど
958:デフォルトの名無しさん
22/11/06 19:49:56.13 9PA1hevU.net
決まってるといくら主張しても
お題に書いてないんだから
どう解釈されても出題者が悪い
959:デフォルトの名無しさん
22/11/06 19:51:41.99 9PA1hevU.net
>>915
お前が数学の話を語りたがってるだけで
私はただ解釈の多様性の話をしてるだけ
960:デフォルトの名無しさん
22/11/06 19:52:43.83 9PA1hevU.net
>>863に数学っぽい話あったか?
961:デフォルトの名無しさん
22/11/06 19:52:59.97 PNCv3I6p.net
>>917
実数の開区間の和が有限じゃないことにいちゃもん付けてきたのはオタクでしょ?
有限の値を取らない意外にどんな有意義な解釈が成り立つんですか?
きちんと説明しなさい
962:デフォルトの名無しさん
22/11/06 19:53:54.13 9PA1hevU.net
>>919
それ別の人
963:デフォルトの名無しさん
22/11/06 19:55:00.86 9PA1hevU.net
>>890と同一人物だと思って
トンチンカンな書き込みを繰り返してたのたね
恥ずかしい
964:デフォルトの名無しさん
22/11/06 19:55:05.02 PNCv3I6p.net
>>920
>和が存在しないとうならそれが答え
って和が存在する有意義なモデルがあるって言う前提で話してますよね?
もしそうじゃないならこれはどういう意図で行ったんですか?
ちなみに続く3.5云々の意味もよく分かってません
965:デフォルトの名無しさん
22/11/06 19:56:03.75 aYMPlSSq.net
もうこりゃ発散とか収束とか言う前に就職の心配したほうがいいな
966:デフォルトの名無しさん
22/11/06 19:57:33.13 9PA1hevU.net
>>922
落ち着いてから書き込んでね
967:デフォルトの名無しさん
22/11/06 19:59:09.36 PNCv3I6p.net
>>924
敗北宣言ですか
これにこりたら今後二度とお気持ちで数学を語るのはやめてください
研究者やエンジニアが迷惑するので
968:デフォルトの名無しさん
22/11/06 20:01:35.14 9PA1hevU.net
数学を語りたがってるのはお前と>>890だけだって
だから落ち着け
969:デフォルトの名無しさん
22/11/06 20:06:58.14 9PA1hevU.net
おれの主張は>>863だから
もちろん本気で出題者がそう思っているという主張ではなくて
解釈の余地があるという問題提起
970:デフォルトの名無しさん
22/11/06 20:07:53.80 Zb5xxfES.net
問題は出題者の意図を読み取ることが重要
1~10までの整数の和の事だろうなと考えるのが低レベルとは思えない。
常識で考えればそうなる
できればその高レベルのプログラムとやらを説明してほしいものだな。
971:デフォルトの名無しさん
22/11/06 20:12:04.95 9PA1hevU.net
一応プログラム板なんだからさ
解釈の多様性を多少は意識しようよ
プログラミング言語だったら「動作未定義」
曖昧な仕様書で中国人に発注したら
一番都合の良い解釈をされてとんでもないソフトになるぞ
972:デフォルトの名無しさん
22/11/06 20:17:19.25 Zb5xxfES.net
プログラムのお題なんだから、
プログラムで実現できないってのは答えにはならんよ。
国語の問題じゃねえんだから、
プログラムとして成立する答えを出せよ
973:デフォルトの名無しさん
22/11/06 20:24:40.28 9PA1hevU.net
国語の問題じゃねえんだから
出題者の意図を好意的に汲み取る必要はないんだよ
974:デフォルトの名無しさん
22/11/06 20:26:21.60 mzFwuoQr.net
>>930
だからちゃんと仕様出せやってことだろ
>>863は半分ネタだと思うけど、実数だと言うなら実数について「1~10までの合計」を定義しないとお題にならんよ
975:デフォルトの名無しさん
22/11/06 20:32:00.92 9PA1hevU.net
>>932
私は出題者じゃないし実数だなんて主張もしてない
いろんな解釈があるならお題にならん
解釈の余地は可能な限り減らせ
976:デフォルトの名無しさん
22/11/06 20:38:00.65 mzFwuoQr.net
>>933
お前にアンカーしてるわけでもないのに絡んでくるとかあたおかすぎる
977:デフォルトの名無しさん
22/11/06 20:59:57.69 Zb5xxfES.net
1から10までの整数の和では無い可能性があるから、
その場合はプログラムでは実現できないって言いたいだけだろ
整数の和として答えてるプログラムを低レベルってどういことやねん。
素直に受け取ればいいものを曲解して不可能に持って行ってるだけだろ
978:デフォルトの名無しさん
22/11/06 21:02:11.02 9PA1hevU.net
「整数の和として答えてるプログラムを低レベルってどういことやねん。」
だれがそんなことかいた?
979:デフォルトの名無しさん
22/11/06 21:04:22.43 9PA1hevU.net
>>935
>>931
980:デフォルトの名無しさん
22/11/06 21:07:02.93 tOVlE3Vc.net
>>857
python: URLリンク(ideone.com)
やさしいお題、助かります!
981:デフォルトの名無しさん
22/11/07 06:42:16.97 C4s2+P7f.net
仕事では御免だが
解釈の余地を残すことが娯楽では大切だって良く分かる例
982:デフォルトの名無しさん
22/11/07 15:08:59.94 4okW5BTf.net
お題:1/1+1/2+...+1/nの合計を求め、分母と分子を整数で出力せよ。
*ただしライブラリを使わないこと
983:デフォルトの名無しさん
22/11/07 15:35:37.09 Sowq9nFL.net
>>940 Ruby
(1..n).map{ 1r/_1 }.sum
984:デフォルトの名無しさん
22/11/07 15:48:12.
985:36 ID:wln8XcGb.net
986:デフォルトの名無しさん
22/11/07 17:42:49.96 dFD6FGsc.net
gcdとかsumとかprintはライブラリじゃないの?
987:デフォルトの名無しさん
22/11/07 18:21:56.48 UfWjgfnM.net
1+・・・+1/n の小数点n桁目はいくらか
988:デフォルトの名無しさん
22/11/07 18:47:35.11 Fdh4LiCB.net
>>944
こっちの方がおもしろいかも
小数第○位って昔は言ったけど今は言わない?
989:デフォルトの名無しさん
22/11/07 20:48:13.34 OXo72DE3.net
>>940
Java
URLリンク(paiza.io)
990:デフォルトの名無しさん
22/11/07 20:49:01.52 FonngYyy.net
>>943
Pythonではprintは組み込み関数だな
他は知らんけど
991:デフォルトの名無しさん
22/11/07 21:06:30.94 Fdh4LiCB.net
組み込み関数はライブラリじゃないと
ライブラリと呼ばない言語なら何でもありか
992:デフォルトの名無しさん
22/11/07 21:08:54.69 Fdh4LiCB.net
C言語上のただのintの乗算でもライブラリが必要な環境もあるわけだけど
993:デフォルトの名無しさん
22/11/07 21:34:22.19 q2YPtCXX.net
アルゴリズムが見たいのでしょうね
994:デフォルトの名無しさん
22/11/07 21:35:14.79 kmERiYaX.net
まあ今時組込とかでもなきゃintの乗算でライブラリ呼び出す環境もあまりないけどそもそも入出力はライブラリ任せだからねぇ
995:デフォルトの名無しさん
22/11/07 23:30:13.24 3GzmFPX6.net
>>943
Haskell ?
だとsumやgcdはpreludeで標準関数扱い
基本import〜が必要ない奴は標準扱い
996:デフォルトの名無しさん
22/11/08 01:53:36.92 s644Ul/+.net
>>940
Kotlin
URLリンク(paiza.io)
分子と分母を別々に保持して足し続けただけ。約分はしていない。
997:デフォルトの名無しさん
22/11/08 21:45:51.73 dCnZkmaL.net
>>940
URLリンク(ideone.com)
・「ただし」以下は無視した回答
function [n, d] = f(n)
[n, d] = rat(sum(1./(1:n)), 1e-7);
end
998:デフォルトの名無しさん
22/11/08 21:46:18.88 dCnZkmaL.net
>>940 octave
URLリンク(ideone.com)
・「ただし」以下は無視した回答
function [n, d] = f(n)
[n, d] = rat(sum(1./(1:n)), 1e-7);
end
999:デフォルトの名無しさん
22/11/09 00:46:04.53 oWTDq5DR.net
>>940 octave
URLリンク(ideone.com)
・「ただし」以下は無視した回答
function [n, d] = f(n)
[n, d] = rat(sum(1./(1:n)), 1e-7);
end
1000:デフォルトの名無しさん
22/11/09 00:46:10.95 oWTDq5DR.net
>>940 octave
URLリンク(ideone.com)
・「ただし」以下は無視した回答
function [n, d] = f(n)
[n, d] = rat(sum(1./(1:n)), 1e-7);
end
1001:デフォルトの名無しさん
22/11/09 01:55:16.87 QvIAsso6.net
なぜ同じ書き込みが4つもある?
1002:デフォルトの名無しさん
22/11/09 02:02:28.03 Ewgu9c/a.net
お題スレの7不思議に加えよう
1003:デフォルトの名無しさん
22/11/09 12:49:26.26 AHjhHUHj.net
お題
入力した文字列を以下の4種類に分けた文字列を作成する関数を作成してください
・アルファベット大文字
・アルファベット小文字
・数字
・それ以外の文字
1004:デフォルトの名無しさん
22/11/09 18:55:40.68 dDwxEUkd.net
Array.from(input).filter(c=>c.match(/[A-Z]/)).join("")
+ Array.from(input).filter(c=>c.match(/[a-z]/)).join("")
+ Array.from(input).filter(c=>c.match(/[0-9]/)).join("")
+ Array.from(input).filter(c=>c.match(/[^A-Za-z0-9]/)).join("")
1005:デフォルトの名無しさん
22/11/09 20:05:26.68 1g3d+RJJ.net
>>960 octave
URLリンク(ideone.com)
function c = f(s)
u = isstrprop(s, 'upper');
l = isstrprop(s, 'lower');
d = isstrprop(s, 'digit');
c = {s(u) s(l) s(d) s(~(u | l | d))};
end
1006:デフォルトの名無しさん
22/11/10 01:00:36.16 UXFdZVAF.net
>>960
Haskell
URLリンク(ideone.com)
isUpper = flip elem [ 'A' .. 'Z' ]
isLower = flip elem [ 'a' .. 'z' ]
isNum = flip elem [ '0' .. '9' ]
isOthers = id
. all not
. zipWith ( $ ) [ isUpper, isLower, isNum ]
. repeat
sieve str = [ filter cond str |
cond <- [ isUpper, isLower, isNum, isOthers ] ]
testStr = "foldl1 :: Foldable t => (a -> a -> a) -> t a -> a"
main = mapM_ print $ sieve testStr
1007:デフォルトの名無しさん
22/11/10 01:50:3
1008:8.82 ID:j8kXq8l6.net
1009:デフォルトの名無しさん
22/11/10 02:29:28.73 kjI8mJgQ.net
>>961
俺も正規表現でやりたいけどこっちのほうが5倍速かった…
コンパイル言語に比べたら目くそ鼻くそだがこんだけ違うと考えちゃうな
const str = 'aA0!bB1@cC2#dD3$eE4%'.repeat(500);
let oomoji = [], komoji = [], suuji = [], sonota = [];
for (const c of str) {
let cp;
switch (true) {
case 65 <= cp && cp <= 90:
oomoji.push(c);
break;
case 97 <= cp && cp <= 122:
komoji.push(c);
break;
case 48 <= cp && cp <= 57:
suuji.push(c);
break;
default:
sonota.push(c);
}
}
[oomoji, komoji, suuji, sonota] = [oomoji, komoji, suuji, sonota]
.map(a => a.join``);
// console.table({oomoji, komoji, suuji, sonota});
1010:デフォルトの名無しさん
22/11/10 02:37:16.98 kjI8mJgQ.net
>>965
5倍じゃなくて3倍だったわ
perf.linkで測ったコード、
let cp = c.codePointAt();
が
let cp;
になってたわ寝ぼけてた
1011:デフォルトの名無しさん
22/11/10 07:33:44.51 oQpocXYl.net
>>960
ASCII のみで良い?
それとも Unicode?
1012:デフォルトの名無しさん
22/11/10 07:56:41.06 3FlvzqxM.net
>>960 Ruby
-> s { s.scan(/[A-Z]+|[a-z]+|\d+|[\W_]+/) }
1013:デフォルトの名無しさん
22/11/10 14:11:20.86 oQpocXYl.net
>>960
Kotlin
URLリンク(paiza.io)
Unicodeで作った。サロゲートペアの文字もちゃんと扱える。
判別には Java の Character クラスのメソッドを利用している。
これだといわゆる全角の数字は数字扱いになるが漢数字は数字と分類してくれない。
ローマ数字はアルファベット大文字扱い。
日本語の「あ」とかもアルファベットとして扱われるが大文字でも小文字でもないのでそれ以外の文字に追加されるようにした。
コントロールコードは \uXXXX 形式になるようにした。
1014:デフォルトの名無しさん
22/11/10 18:57:30.40 3zaWz6R+.net
>>960
PowerShell
function StrClassify($s)
{
"\P{Lu}", "\P{Ll}", "\P{N}", "[\p{Lu}\p{Ll}\p{N}]" |% {$s -creplace $_}
}
StrClassify "Κωνσταντινούπολιςは1453年にİstanbulと改称された。`n"
StrClassify "塩化銅(Ⅱ)は水中で CuCl₂ ⇄ Cu²⁺ + 2Cl⁻ のように電離する。"
[実行結果]
Κİ
ωνσταντινούπολιςstanbul
1453
は年にと改称された。
CCCC
ulul
Ⅱ₂²2
塩化銅()は水中で ⇄ ⁺ + ⁻ のように電離する。
1015:デフォルトの名無しさん
22/11/10 20:35:16.34 V5vZiHvW.net
>>944をやってみたらPythonで300くらいでオーバーフローになった
分子と分母をべつべつに計算してp/qだったとすると
int(10^n * p / q ) % 10 が求める答えのはずだが、この計算ができなかった
1016:デフォルトの名無しさん
22/11/10 20:44:38.28 V5vZiHvW.net
ここで問題変更でp/qの小数点n桁目を求める問題にすればいいか
オーバーフローしないように×10ずつして整数部分は無視していけば整数演算の範囲内にできるか
忘れたがユークリッド互除法みたいな?
1017:デフォルトの名無しさん
22/11/10 20:50:26.16 m98zu82a.net
input.replace(/[^A-Z]/g,"")
+ input.replace(/[^a-z]/g,"")
+ input.replace(/[^0-9]/g,"")
+ input.replace(/[A-Za-z0-9]/g,"")
1018:デフォルトの名無しさん
22/11/10 20:51:12.57
1019: ID:m98zu82a.net
1020:971
22/11/10 21:10:50.60 V5vZiHvW.net
>>944オーバーフローせずにできた
URLリンク(ideone.com)
1021:デフォルトの名無しさん
22/11/10 21:27:26.89 p27a51fr.net
>>944
Haskell
URLリンク(ideone.com)
import Data.Ratio
hnn n = flip mod 10 $ truncate $ (* ( 10^n)) $ sum $ map recip [ 1%1..n%1 ]
main = print $ hnn 300
1022:デフォルトの名無しさん
22/11/10 21:45:52.91 KPTSzoDK.net
お題 小数点第n位を求めるプログラムを作成せよ
1023:デフォルトの名無しさん
22/11/10 21:58:11.94 JknzoKCK.net
>>977
何の?
1024:デフォルトの名無しさん
22/11/11 12:27:18.79 eQP0gwqb.net
ルート4の
1025:デフォルトの名無しさん
22/11/11 13:33:07.98 XogJxnoW.net
そんなむず過ぎるお題は過疎るのだ却下
1026:デフォルトの名無しさん
22/11/11 18:36:58.77 Jm4DMnci.net
>>978
入力された実数
1027:デフォルトの名無しさん
22/11/11 20:10:51.65 +Uq9lyYZ.net
(x*10**n)%10
1028:デフォルトの名無しさん
22/11/12 01:53:40.01 Y/i2pfZ3.net
お題
配列データと、同じ長さの確率の配列(合計値1)が与えられた時に、対応する確率で配列からデータを出力せよ
例
aa,bb,cc
0.4,0.5,0.1
→aa 40%, bb 50%, cc 10%で出力
1029:デフォルトの名無しさん
22/11/12 08:50:36.22 yCEPOpQl.net
>>983 Ruby
a = %w[aa bb cc]
p = [0.4, 0.5, 0.1]
f = -> (a, p) { r = rand; a[(0..a.size-2).find{ r < p[0.._1].sum } || a.size - 1] }
10.times{ print f[a, p] }
# => aabbccbbaaaaaabbbbbb
1030:デフォルトの名無しさん
22/11/12 10:10:20.03 g2vYgSbJ.net
>>983
Haskell
URLリンク(ideone.com)
import System.Random
import Data.List
randomDbls :: StdGen -> [ Double ]
randomDbls= randomRs (0,1)
chooseItem is ws r = let
folder a b = a : map ( + a ) b
selecter r ( i, ( f, t ) ) = f <= r && r < t
ts = foldr folder [ ] ws
fs = 0 : ts
ifts = zip is $ zip fs ts
in fst $ head $ filter ( selecter r ) ifts
main = do
rds <- ( return . randomDbls ) =<< getStdGen
print $ map (chooseItem ['A'..'C' ] [0.4,0.5,0.1] ) $ take 100 rds
1031:デフォルトの名無しさん
22/11/12 10:19:35.32 uOtU06vW.net
>>983 octave
URLリンク(ideone.com)
f = @(a, r) a(rand < cumsum(r))(1);
1032:デフォルトの名無しさん
22/11/12 14:34:06.57 Q9bJaddO.net
>>983 ocaml
URLリンク(ideone.com)
let (<<) f g x = f (g x)
let cumsum =
List.rev << fst << List.fold_left (fun (a, s) f -> s +. f :: a, s +. f) ([], 0.)
let f xs =
let r = Random.float 1. in
fst << List.find ((<) r << snd) << List.combine xs << cumsum
1033:デフォルトの名無しさん
22/11/12 16:47:04.36 We3Ba5Li.net
>>983
コレでよかった
Haskell
URLリンク(ideone.com)
import System.Random
randomDbls :: StdGen -> [ Double ]
randomDbls= randomRs (0,1)
chooseItem (i:is) (w:ws) r | r < w = i
chooseItem (i:is) (w:ws) r = chooseItem is ws ( r - w )
main = do
rds <- ( return . randomDbls ) =<< getStdGen
print $ map (chooseItem ['A'..'C' ] [0.4,0.5,0.1] ) $ take 100 rds
1034:デフォルトの名無しさん
22/11/12 17:19:40.29 MirHjvCf.net
>>983
別名法とかいうアルゴリズム
URLリンク(ideone.com)
1035:デフォルトの名無しさん
22/11/12 19:13:20.80 MirHjvCf.net
URLリンク(ideone.com)
元からあったコードをちょっといじったんだけど変換ミスがあった
1036:デフォルトの名無しさん
22/11/13 18:45:40.25 zjrUNZaB.net
>>983
Kotlin
URLリンク(paiza.io)
1037:デフォルトの名無しさん
22/11/13 19:01:26.14 ZCYlhUwL.net
次スレ
1038:vログラミングのお題スレ Part21 https://mevius.5ch.net/test/read.cgi/tech/1668333636/
1039:デフォルトの名無しさん
22/11/15 08:06:01.58 XL64sJsG.net
うめ
1040:デフォルトの名無しさん
22/11/15 09:22:13.74 x0rg5fHd.net
お題:1辺がn文字の正四角形を表示せよ
1 <= n <= 8 とする
1041:デフォルトの名無しさん
22/11/15 10:16:55.01 V1sKjJZc.net
haskell
URLリンク(ideone.com)
sqStr n = ""
++ "\x250f" ++ r "\x2501" ++ "\x2513" ++ "\n"
++ r ( "\x2503" ++ r "\x2001" ++ "\x2503" ++ " \n" )
++ "\x2517" ++ r "\x2501" ++ "\x251b" ++ "\n"
where r = concat . replicate ( n-2 )
main = putStr $ sqStr 10
1042:デフォルトの名無しさん
22/11/15 20:16:12.10 r20LvnA2.net
>>994 octave
URLリンク(ideone.com)
function s = f(n)
s = repmat('#', n);
s(2:end-1, 2:end-1) = ' ';
end
1043:デフォルトの名無しさん
22/11/17 21:39:57.15 BbSHYj/y.net
うめ
1044:デフォルトの名無しさん
22/11/17 21:40:03.49 BbSHYj/y.net
うめ
1045:デフォルトの名無しさん
22/11/17 21:40:08.22 BbSHYj/y.net
うめ
1046:デフォルトの名無しさん
22/11/17 23:04:00.66 W9+RkUIs.net
竹
1047:1001
Over 1000 Thread Thread.net
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 516日 23時間 1分 3秒
1048:過去ログ ★
[過去ログ]
■ このスレッドは過去ログ倉庫に格納されています
最新レス表示スレッドの検索類似スレ一覧話題のニュースおまかせリスト▼オプションを表示暇つぶし2ch
289日前に更新/324 KB
担当:undef