プログラミングのお題スレ Part19

■ このスレッドは過去ログ倉庫に格納されています
2020/11/30(月) 00:04:05.21ID:TF2Czp0y
プログラミングのお題スレです。

【出題と回答例】
1 名前:デフォルトの名無しさん
  お題:お題本文

2 名前:デフォルトの名無しさん
  >>1 使用言語
  回答本文
  結果がある場合はそれも

【ソースコードが長くなったら】 (オンラインでコードを実行できる)
https://ideone.com/
http://codepad.org/
http://compileonline.com/
http://rextester.com/runcode
https://runnable.com/
https://code.hackerearth.com/
http://melpon.org/wandbox
https://paiza.io/

宿題は宿題スレがあるのでそちらへ。

※前スレ
プログラミングのお題スレ Part18
https://mevius.5ch.net/test/read.cgi/tech/1594702426/
2021/04/20(火) 19:18:30.05ID:4HfXomGv
例ってそれぞれの入力してでどう言う出力なのか答え出さないと例にならんやん?
2021/04/20(火) 20:00:19.11ID:fjai9OEL
>>622
例1の出力) (C, B, A).
例2の出力) (D, B, C, A).
例3の出力) (D, B, C, E, A).
2021/04/20(火) 20:07:07.92ID:fjai9OEL
全順序じゃないから、単純なソートアルゴリズムじゃダメみたいだね。
2021/04/20(火) 20:14:12.39ID:fjai9OEL
https://qiita.com/nekonibox/items/c1c7f4d1ad1695967e39
ご参考に。
626608
垢版 |
2021/04/20(火) 23:18:11.98ID:F5cpVo8A
>>600 Scala
https://scastie.scala-lang.org/527l8E3KT3SbWA4P7jOv0g
2021/04/21(水) 00:20:12.53ID:BjBFMDAR
>>620
haskell
https://ideone.com/3eleC6
2021/04/21(水) 04:35:47.26ID:BjBFMDAR
>>620
コレでよかった
haskell
https://ideone.com/kcgnWx
2021/04/21(水) 09:20:40.26ID:nkly2OdJ
>>628
アルゴリズムを簡単に解説してくれますか?
すみません。
2021/04/21(水) 11:28:35.43ID:feIJLTYL
例えば>>821の時は順序の生成元が
E<A, D<B, B<C, B<E
この中で先頭に持ってきて良いものを探す
それはつまり「何かに依存していないもの」
この状態ではA,B,C,Eは何かに依存しているのでダメ
よってこの場合Dしかない
残りA,B,C,Eの順序を決める
その際順序の生成元からD<Xの形は取り除く
つまり
E<A, B<C, B<E
依存していないものはBのみなのでBが2番目
残りA,C,Eで順序の生成元はE<Aのみ
依存してないのはC,Eでどちらがきても良い

数学的には“何かに依存していない”はその“半順序”における“極小元”
そして極小元になり得る必要十分条件がまさに「順序の生成系の中でそれより小さいものがないもの」、すなわち「何かに依存してないもの」とわかる(証明も簡単)
そしてこの作業に於いて順序の生成系にループが有れば、例えばx<y,y<z,z<xのようなものが有ればx,y,zは最後まで取り除かれず、最後には「まだ元は残ってるけど極小元なし」の状態に到達してしまうのでその時点でerror判定して終了すれば良い
2021/04/21(水) 11:44:47.65ID:nkly2OdJ
>>630
お見事です。ありがとうございます。
2021/04/21(水) 12:03:04.18ID:v7jA28gl
お題が気持ち悪い

単に有向グラフの辺となるものだけ指定すれば良いのに
依存とか書いちゃうから以下みたいな間接依存が許されない雰囲気

AはBに依存
BはCに依存
2021/04/21(水) 19:33:37.67ID:tmGizupL
蟻野郎が順序集合理解してるとも思えない。
2021/04/21(水) 19:35:00.12ID:/BbfB4Z5
>>631
お前全然分かってないだろ
理解できないくせに聞くな
2021/04/21(水) 19:48:52.11ID:Y7fj3JnX
順序集合の定義自体は超簡単じゃね?
順序集合の定理なんか使わないから順序集合なんて言葉を使う必要もないけど

アルゴリズム的には
極大(極小)元の中で名前順の先頭である元を取り出す
を繰り返すだけで良い
取り出せなくなってまだ残っていたらERROR

>>630みたいに無駄に長く説明しなくて良い
2021/04/21(水) 19:59:05.72ID:tmGizupL
順序集合真面目にやるなら集合と位相について学ぶ必要があるわけで
637デフォルトの名無しさん
垢版 |
2021/04/21(水) 20:12:32.68ID:rPf7kV48
そりゃーC++には半順序がバンバン出てくるから選ばれた人間向けの言語だよ。
2021/04/21(水) 22:08:22.58ID:OiYnhzgp
>>634
ちゃんと理解して実装したぜ。
https://github.com/katahiromz/OleBow/commit/f65c774b625385e855971adb1275de1fd6ebee0c

循環参照の例がうまくいかないけど。
// :: IBindCtx: IRunningObjectTable
// :: IEnumMoniker: IMoniker
// :: IMoniker: IBindCtx
// :: IMoniker: IEnumMoniker
// :: IRunningObjectTable: IEnumMoniker
// :: IRunningObjectTable: IMoniker
// :: PartitionMoniker: IMoniker
// :: SoapMoniker: IMoniker
ポインタ型とかは後回しでいっかな。
2021/04/22(木) 06:53:19.23ID:fMSh/hUg
俺ももっと勉強しないとなあ
2021/04/22(木) 07:08:36.76ID:DXDf8hNh
>>620 Ruby
# Array

rule = []
while gets
break unless m = /^\s*(\w)は(\w)?(?:,\s*(\w))*/.match( $_ )
rule << m.to_a[1..] - [nil]
end
solution = []
loop {
free = []
break if rule.delete_if{|a| a.size == 1 && free << a[0] && solution << a[0] }.empty?
free.each{|d| rule.each_index{|i| rule[i] -= [d] } }
}
puts (rule.empty?)? "(#{solution.join(', ')})." : "ERROR"
2021/04/22(木) 07:09:10.65ID:DXDf8hNh
>>620 Ruby
# Bit演算

rule = []
while gets
break unless m = /^\s*([A-Z])は([A-Z])?(?:,\s*([A-Z]))*/i.match( $_ )
rule << [ m[1].upcase, m.to_a[2..].inject(0){|r,c| (c)? r | (1 << c.upcase.ord - ?A.ord) : r } ]
end
solution = []
loop {
free = []
break if rule.delete_if{|a| a[1] == 0 && free << a[0] && solution << a[0] }.empty?
free.each{|d| rule.each_index{|i| rule[i][1] &= ~ (1 << d.ord - ?A.ord) } }
}
puts (rule.empty?)? "(#{solution.join(', ')})." : "ERROR"
2021/04/22(木) 20:40:45.65ID:euTe4E7l
お題
JSONでシリアライズされた未知のm×nの行列が与えられる。
転置行列を返せ。転置行列はシリアライズされていなくてもよい。

入力
"[[1,2],[3,4]]"
出力
[[1,3],[2,4]]
2021/04/23(金) 05:15:31.62ID:dol38sZT
>>642 Ruby

require "json"
p JSON.parse(gets).transpose # => [[1, 3], [2, ,4]]
2021/04/23(金) 07:10:55.59ID:M88Kc634
当然transpose標準で用意されてる言語はそうなるわなw
645デフォルトの名無しさん
垢版 |
2021/04/23(金) 13:43:38.22ID:Vuss2QH6
>>642 J

smoutput |: ". @ }: @ }: ;. _1 }. stdin ''
入力
[[1,2,3].[4,5,6]]

出力
1 4
2 5
3 6
2021/04/27(火) 15:35:20.99ID:CrWxBL6F
お題: コマンドラインで動作するエクセルもどきを作れ。入力テキストの中身に特定の形式の「フィールド」(field: 欄)を埋め込んでおく。今回はフィールドは以下のような形式で表現される。

(1) {{=数式}}
(2) {{フィールド名:文字列}}
(3) {{フィールド名:=数式}}

フィールドは{{ }}で囲んだ文字列で指定される。
数式にはフィールド名を変数とする式を指定できる。フィールド名は半角英数字の組み合わせとする。
式は少なくとも、丸カッコと、整数の四則演算と、整数から文字列への変換と、文字列の連結をサポートすること。
入力テキストのそれぞれのフィールドを評価後の値に置き換えたテキストを出力せよ。フィールドの循環参照や式のエラーがあった場合はその場所に「ERROR」と出力せよ。
その他の仕様についてはエクセルをできる限りまねること。
2021/04/27(火) 15:52:00.73ID:CrWxBL6F
>>646 追記。
フィールド名は英字で始まるものとする。

(入力例)
こんにちは、{{NAME:蟻人間}}さん。
今年は{{:=Y}}年です。来年は{{:=Y+1}}年です。

A={{A:=1}}.
B={{B:=2}}.
A+B+4={{=A+B+4}}.
A*B-2={{=A*B-2}}.

日付: {{Y:=2021}}年{{M:=4}}月{{D:=27}}日
{{:="<"&NAME&">"}}
2021/04/27(火) 16:21:47.75ID:CrWxBL6F
>>647 さらに追記。
{{=数式}}と{{:=数式}}は同じように解釈すること。
2021/04/27(火) 16:53:41.78ID:B18ZzSzj
{{数式}}でいいだろセンスねぇな
2021/04/27(火) 17:02:02.42ID:CrWxBL6F
>>649
代入文か代入式を許容することか。{{A=3}}
そっちの方がいいかもね。

エクセルは数式の先頭で=を書いてるだけで、それ以外に代入式や代入文はなかったはず。
2021/04/27(火) 17:08:35.63ID:CrWxBL6F
>>646 お題を書き直します。

お題: コマンドラインで動作するエクセルもどきを作れ。入力テキストの中身に特定の形式の「フィールド」(field: 欄)を埋め込んでおく。今回はフィールドは以下のような形式で表現される。

(1) {{数式}}
(2) {{フィールド名=数式}}

フィールドは{{ }}で囲んだ文字列で指定される。
数式にはフィールド名を変数とする式を指定できる。フィールド名は英字で始まる半角英数字の組み合わせとする。
式は少なくとも、丸カッコと、整数の四則演算と、値の比較と、整数から文字列への変換と、文字列の連結をサポートすること。等号は二文字の==とする。
入力テキストのそれぞれのフィールドを評価後の値に置き換えたテキストを出力せよ。フィールドの循環参照や式のエラーがあった場合はその場所に「ERROR」と出力せよ。
2021/04/27(火) 17:10:52.46ID:CrWxBL6F
>>651

(入力例)
こんにちは、{{NAME=蟻人間}}さん。
今年は{{Y}}年です。来年は{{Y+1}}年です。

A={{A=1}}.
B={{B=2}}.
A+B+4={{A+B+4}}.
A*M-2={{A*M-2}}.

日付: {{Y=2021}}年{{M=4}}月{{D=27}}日
{{"☆ "&NAME&" ☆"}}
2021/04/27(火) 20:20:55.02ID:MrWPWVr1
連投死ねクソ蟻
お前に来年は来ねえよ
2021/04/27(火) 22:28:29.02ID:CrWxBL6F
>>653
くっさ、くっさわらたんよ。ははは。

お題: 5chに粘着して、トリップ付きのコテハンを罵倒し続けるボットを作れ。
2021/04/27(火) 22:30:28.43ID:CrWxBL6F
人間がボットみたいなことやってたらカバみたいだね。ほんとほんと。
2021/05/03(月) 17:08:04.28ID:meUcD9ks
お題
ファイルパスを入力として受け取り、そのサブパスをすべて出力してください

入力: A/B/B/B
出力:
A
A/B
A/B/B
A/B/B/B
2021/05/03(月) 19:31:00.21ID:vyn1ULyt
>>656 Ruby

'A/B/B/B'.gsub(/.+?(?<=\/|$)/).reduce(''){|s, a|p s + a}

# => "A/"
"A/B/"
"A/B/B/"
"A/B/B/B"
2021/05/03(月) 20:05:34.50ID:vJY6tWsE
>>656
haskell

import Data.List

subPathes p = [ str |
str' <- tail $ inits $ p ++ "/",
last str' == '/',
let str = ( reverse $ inits str' ) !! 1 ]

main = mapM print $ subPathes "A/B/B/B"
659デフォルトの名無しさん
垢版 |
2021/05/03(月) 22:24:37.21ID:v5K6mFSj
>>656 C
char *str = "A/B/B/B";
int i = 0;
while (str[i]) {
if (str[i] == '/') {
char c[i + 1];
memcpy(c, str, i);
c[i] = 0;
printf("%s\n", c);
}
i++;
}
printf("%s\n", str);
2021/05/03(月) 22:28:25.61ID:Fl247JAk
>>656 Ruby
gets.split( ?/ ).inject( [] ){|r,d| (r << d).tap{|t| puts t * ?/ } }
2021/05/03(月) 23:35:00.95ID:ED/pHj/W
python

import sys
from pathlib import PurePath

for x in PurePath(sys.argv[1]).parents: print(x)
662デフォルトの名無しさん
垢版 |
2021/05/04(火) 01:17:51.79ID:BGUDbBhh
>>656
Kotlin
https://paiza.io/projects/KhmBe1ysOa3PIaPX7xJkDg

最初は再帰でやろうと思ったけど止めて、Kotlin らしく拡張プロパティ作って実現した。
663デフォルトの名無しさん
垢版 |
2021/05/04(火) 02:03:51.93ID:BGUDbBhh
文字列をPATHの区切り文字で後ろから検索しないで先頭から検索しても同じと気付いたのでこっそり直した。
664デフォルトの名無しさん
垢版 |
2021/05/04(火) 18:30:10.36ID:0HSekrvc
>>656 Ruby
def f(s)
a=s.split("/")
(0..a.size-1).map{|i| a[0..i].join("/")}
end
p f("A/B/B/B")
実行結果
["A", "A/B", "A/B/B", "A/B/B/B"]
2021/05/06(木) 18:06:27.01ID:b7Mkjg0R
>>656
Elixir

list = String.split( "a/bc/d", "/" ) # 分割

# 第2引数は、蓄積変数の初期値
%{ list: result } = Enum.reduce( list, %{ list: [ ], word: "" }, fn( str, acc )->

tmp_str = acc.word <> str # 文字だけを連結する。/ は連結しない

acc = %{ acc | list: acc.list ++ [ tmp_str ] } # 連結
acc = %{ acc | word: tmp_str <> "/" } # 連結
acc
end )

IO.inspect result
#=> ["a", "a/bc", "a/bc/d"]
2021/05/06(木) 18:47:12.53ID:wT5/oYmn
a="ko/koh/oreo/n/eone"
['/'.join(a.split('/')[0:i+1]) for i in range(len(a.split('/')))]
667デフォルトの名無しさん
垢版 |
2021/05/06(木) 20:53:31.79ID:DSX8dnAp
ここに練習用のいいファイルあるわ
https://tackle57.base.ec/
2021/05/06(木) 21:10:09.05ID:q2LSo660
お題: プログラムの間違い探し。

https://github.com/reactos/reactos/pull/3642
ひとつ以上の間違いを探しなさい。
2021/05/06(木) 21:37:58.66ID:ajjDZVcw
>>667
さりげなく妙に高い値段のソフトの販売サイトに誘導しないように。
2021/05/06(木) 21:43:26.28ID:F7n15kLE
>>668
答え:お前の存在が間違い
2021/05/06(木) 21:51:43.21ID:q2LSo660
>>670
実力を隠さなくてもいいよ。
672デフォルトの名無しさん
垢版 |
2021/05/06(木) 22:23:58.98ID:wWHyWlvf
>>668
#include <studio.h>
2021/05/07(金) 13:48:08.72ID:H+I+sfZ3
WHEREコマンドはReactOSに既に実装されています。
なので、(あえて作る場合でも)それを基にしてく
ださい(よ、頼むからさ。失礼だと思わないの?)

>コマンドではなく機能です。そして(既に実装されている)
>それは、この目的に対して便利ではありません。

貴方は公開されている(ReactOS実装の?)関数の
コードをパクって、独立したアプリケーションにしたと
いうわけですね。
というのであれば(我々の)メインストリームコードと
同期しているサードパーティコードみたいな感じを
装う必要はありません(はっきり言わせてもらえば
「しないで下さい」)
2021/05/07(金) 13:57:45.37ID:H+I+sfZ3
システムで色々な箇所で使用される短縮名称
を正式名称と(相互)変換する機能なんて
アルゴリズムとかの題材とかには不適。
泥臭い部分がかなりあるシステム固有の設計
の話になるしたとえコードは公開しているに
せよ部外者の立ち入りは歓迎されないのは
当然。 実情を詳しく知らない外部の人に
任せられる部分じゃなかったりするから。
675デフォルトの名無しさん
垢版 |
2021/05/07(金) 19:10:13.55ID:FdFZQv1E
>>656 JavaScript
"A/B/B/B".replace(/^\/|\/?[^\/]*/g, (_, o, s) => console.log(s.substring(0, o)));
676Mb
垢版 |
2021/05/07(金) 22:02:57.18ID:P+8SzjSX
読み仮名(ひらがな、カタカナ)から、単純なコード順の整列キーを
生成するルーチンを書く。
単純にコード順で整列すると、「ガレージ」は「カレー」の直後には
こなくて、「か(蚊)」の後ではなく、「ガ(蛾)」の後に
来てしまう。
比較関数を定義しようとすると、順序関係が一意に決まらなくなって
整列ルーチンが止まらなくなる。また、SQL などの整列機能が利用できない。
業務系のシステムだと、企業名だとか個人名だとかの読みで整列する
要求があるので、読みの入力時に整列用のキーを生成しておくのが
吉と思われる。
2021/05/08(土) 01:15:44.80ID:qYTbA2A2
>>651 C++
エクセル使ったことないから挙動が違ってたらごめんね
最後のほうはやっつけで書いたのでバグってるかもしれない

https://wandbox.org/permlink/AfU4a1aLrkxhkErW
2021/05/08(土) 05:04:40.43ID:PD8fhCnz
>>676 Perl5
仮名を清音に変換してから比較する
https://ideone.com/bzxwnp
2021/05/08(土) 06:08:52.93ID:tI5Uqx1l
>>677
うわー、1000行近い大作。しかもかなりモダンなC++。ひょえーー。
2021/05/08(土) 14:56:47.01ID:bO3UufY6
>>677
ちょっと修正
同じ優先順位の演算子が左結合になってなかった

https://wandbox.org/permlink/2DkQ32dFPC7i8ksn
2021/05/09(日) 21:15:00.81ID:1F2i56L2
お題:
N 人が一列に並んでおり、左から i 人目の人は色 C[i] の服を着ています。

あるチームは次の条件を満たすとき、良いチームであると言います。
- 0 人以上が所属している。
- すべての色 i について、色 i の服を着た人がチームに偶数人所属している。

N 人から "連続する" 0 人以上を選んで良いチームを作るとき、
チームに所属する人の数としてあり得る最大値を求めて下さい。

制約:
1≦N≦10^6
1≦C[i]≦60

入力:
N
C1 C2 ... CN

入力例 1
5
1 2 3 3 1

出力例 1
2

入力例 2
5
1 2 3 4 5

出力例 2
0
2021/05/09(日) 22:47:51.84ID:YYfh4rSr
>>681
Haskell

import Data.List

mxLenGoodTeams cs = let
teams = [ take j $ drop i $ cs |
i <- [ 0..( length cs - 1) ],
j <- [ 2 .. ( length cs - i ) ] ]
isGoodTeam team
= all ( even . length ) $ group $ sort $ team
in maximum $ ( 0 : ) $ map length $ filter isGoodTeam teams

main = do
print $ mxLenGoodTeams $ [ 1,2,3,3,1 ]
print $ mxLenGoodTeams $ [ 1,2,3,4,5 ]
2021/05/10(月) 00:22:13.18ID:mAsL1Pq+
>>681
python
https://ideone.com/8ZEsh2
2021/05/10(月) 01:18:02.63ID:DR29Zbhh
C++ O(N log N)

https://wandbox.org/permlink/W31B0sNEOOuXELla
2021/05/10(月) 01:18:51.44ID:DR29Zbhh
>>681
686デフォルトの名無しさん
垢版 |
2021/05/11(火) 00:16:24.82ID:sq5XRTcM
>>681
問題の意味がわからない。

> - すべての色 i について、色 i の服を着た人がチームに偶数人所属している。

とはどういう意味なのか?
「すべての色 i 」とは何か?
「色 i の服を着た人がチームに偶数人所属」というのはどういう意味なのか? 同じ色の服を着た人は存在しないのだよな?
2021/05/11(火) 05:10:59.51ID:TUYWs3v7
毎度ながら日本語も問題作成も入出力例もクッソ下手だとは思うが
おまえはおまえで読解力無さ過ぎ
連続した (1≦10^6)個のデータ
データ内容は 1≦60
データ内容が偶数個となる連続した部分の最大長
1 2 2 3 3 4 4 5 → 2 2 3 3 4 4 → 6
1 2 3 4 2 3 4 5 → 2 3 4 2 3 4 → 6
1 2 3 4 5 2 3 4 → - → 0
1 2 3 3 2 4 5 4 → 2 3 3 2 → 4
1 2 3 2 2 3 2 4 → 2 3 2 2 3 2 → 6

まあ例に関しては俺も人のこと言えない
陥りやすいミスを確認しやすいキラーサンプル的な例がいくつかあればベスト
2021/05/11(火) 20:07:35.50ID:m1fDyeBb
入出力例は不親切だとは思うが
問題文自体は問題ないでしょう
あれが理解できないというのであれば理解できない側の能力に問題がある
2021/05/11(火) 20:11:36.25ID:jkEXfYRr
色C[i]
色i
終了
2021/05/11(火) 20:21:52.62ID:IH6PME9X
色C[i]は「i番目の人が来ている服の色」
色iは単に色
2021/05/11(火) 20:23:51.68ID:PxX+uCNu
正しくないんだから突っ込まれて当然

>>690
Fラン文系か?
2021/05/11(火) 20:27:14.53ID:IH6PME9X
>>691
真面目に何がダメだったのかわからない
教えてください...
2021/05/11(火) 20:30:24.67ID:AKHuOMpp
別にiが添え字の自然数と宣言しているわけでもなし文法的にも間違ってない
アスペでもない限り理解できる
2021/05/11(火) 20:35:40.14ID:jkEXfYRr
C[blue]みたいな?
iはインデックスじゃないんだ
2021/05/11(火) 20:38:54.00ID:PxX+uCNu
出題の意図は>>681で分かる
>>681はバカということも分かる
2021/05/11(火) 20:40:02.84ID:aw7aUPl3
>>695
お、perlおじさんか?
2021/05/11(火) 20:40:22.57ID:PxX+uCNu
>>686が嫌味で書いたのか本当にわからなかったのかはわからない
698デフォルトの名無しさん
垢版 |
2021/05/12(水) 10:57:02.98ID:xHZdId+E
プログラミング言語が使えても日本語が使えないのでは話が伝わらない。
それだったらプログラミング言語でそのまま書いてくれた方がここのスレでは話が通じる。
699デフォルトの名無しさん
垢版 |
2021/05/12(水) 12:28:32.10ID:kJR81pbU
・左から100番目の人はC[100]の色の服を着ていると読める
・列を自由に入力して良いのなら、最大値はN以下の偶数となり自明
2021/05/12(水) 14:17:43.85ID:Ro8bxiRw
まるで競プロだな
2021/05/12(水) 16:05:32.13ID:ASs2TDTE
>>681
出題者です
問題文がわかりずらかったみたいですいません

想定解法書きます (配列はすべて 0-index です)
A[0] = 0
A[i] = A[i - 1] xor (2^(C[i - 1] - 1)) (1≦i≦N)
な配列 A を考えます

ある区間 [L, R) がいいチームであるならば、A[R] xor A[L] = 0 です (累積和と同じ発想です)
両辺に A[R] を xor すると A[L] = A[R] になります

R を全探索しながらあり得る L のうちで一番左側のものを連想配列などで求めることで
N = 10^6 などのケースでも高速に答えを得ることができます
702デフォルトの名無しさん
垢版 |
2021/05/13(木) 13:08:14.73ID:tJiNVUVY
問題文の他例が二つしかないから分かりにくい
>>687の説明みるまで何が良いチームなのか分かりにくい
2021/05/13(木) 19:07:49.38ID:3W7MB1VC
> 一列に並んでおり、左から
左てなんだ?先頭末尾なら分かるが
> 良いチームであると言います
なんだそのモヤる日本語。普通にチームで良いだろ
チームの条件として色が偶数があれば良いんだから
> i 人目の人は色 C[i] の服を着て
あとの制約見るまで一意かと勘違いする。説明でいちいち C[i] と置くのもイミフ

説明をただただややこしくしてるだけ
仕事で仕様の説明でこんな喩え話してきたらキレるわ
2021/05/13(木) 21:41:53.75ID:B4CYAsif
短気すぎるだろ
705Mb
垢版 |
2021/05/13(木) 21:42:39.21ID:kEXKw6jf
>>693
> アスペでもない限り理解できる
「アスペルガー症候群」というのは、昔は「高機能広汎性発達障害」といって、
わりと馬鹿にしたもんでもない。かくいう私も、いわゆる「アスペ」の
一人だ。

ここで問題。日本語の(現代語の)動詞のうち、アルゴリズム的に押さえこめる
動詞(規則活用動詞)"以外の" 動詞はいくつあるか。
なお、「長尾の法則」(頭から見ていって、非・漢字から漢字に変化するところで、
文節は切れる)は使ってよし(「お」とか「ご」とかは名詞につくから、
このさい関係はなし)。
とりあえず六つはあって、サ変とかカ変とかは既知だけど、「そもそも、
どれだけあるのか?」っつー話になると、かなり面倒。
2021/05/13(木) 21:45:18.19ID:B4CYAsif
>>705
> アルゴリズム的に押さえこめる

これどういう意味? 意味わかんなすぎてキレそうなんだけど
2021/05/13(木) 22:16:56.76ID:lZ9C/hi/
お前も短気すぎるw
2021/05/13(木) 23:36:26.05ID:mWio4uhK
さっさとPythonやらせれ
ちょっとでいいから
20年前に覚えたPerlに変わるマクロがいるんじゃああああああ

VBAでいいとかいわない
709デフォルトの名無しさん
垢版 |
2021/05/14(金) 11:54:50.47ID:l/Mcr9Yu
バカの書いた不適切な文書は不和をもたらす
>>681のことな
2021/05/14(金) 13:21:20.02ID:23AH7lhZ
もうこれからは出題するときは頭に馬鹿には理解できない問題
ってとりあえず書いておけばいいのに
そうすれば荒れることもなくなるだろうから
2021/05/14(金) 13:38:00.72ID:f3dsViZI
【コミュニティの一生】

面白い人が面白いことをする

面白いから凡人が集まってくる

住み着いた凡人が居場所を守るために主張し始める

面白い人が見切りをつけて居なくなる

残った凡人が面白くないことをする

面白くないので皆居なくなる
712デフォルトの名無しさん
垢版 |
2021/05/14(金) 14:08:14.84ID:4R64iY9Y
問題を作るのは難しいからしゃあない
どんな入力で、求めるのが値なのかアルゴリズムなのかを明示すればいい
2021/05/14(金) 15:59:25.59ID:BwDBHw+5
お題: join関数を自作せよ
join関数は第2引数の配列を第1引数の文字列で連結する関数である

func join(sep, array)

s = join(':', ['1', '2', '3'])
puts(s)
# 1:2:3

sepは文字列で、文字列で無かった場合の動作は未定義である
arrayは長さが0以上の配列で要素は文字列である。それ以外の構造は未定義である
2021/05/14(金) 16:23:22.95ID:WbiXCFQ1
先に解答例を作ってそこから試験問題作る先生のように
逆にたどって問題作れば分かり易い問題作れるのに

イキって、よーし、ぼくちゃん問題作っちゃるぞー!って、
解答未定のまま問題から作り始めるから今回のようにアフォなことになるんよ
2021/05/14(金) 16:35:13.82ID:cn5v//cT
python
def joint(s,x,y=""):
if len(x) == 1:
print(f"{x[-1]}{y}")
else:
joint(s,x[:-1],f"{s}{x[-1]}{y}"))
716デフォルトの名無しさん
垢版 |
2021/05/14(金) 16:45:17.02ID:4R64iY9Y
>>713
C
https://ideone.com/ecufbl
2021/05/14(金) 19:57:58.55ID:BwDBHw+5
>>713
C++
https://ideone.com/HCgb0A

モダンなC++だともっと書き方違うんだろうか?
11, 14あたりしか知らないので不安
2021/05/14(金) 20:06:49.42ID:m9ewaxml
>>713
Haskell

join x = tail . concat . map ( ( x : ) . return )

main = do
print $ join ':' "123"
print $ join ' ' "Hello"
719デフォルトの名無しさん
垢版 |
2021/05/14(金) 20:28:04.72ID:DpIMp/DM
>>713 Lua
function join(d, a)
local r = a[1]
for i = 2, #a do
r = r .. d .. a[i]
end
return r
end

print(join(":", {"1", "2", "3"}))
実行結果
1:2:3
2021/05/14(金) 20:49:04.94ID:SGxg0iSp
def join(sep, list)
□return sep.join(list)
721デフォルトの名無しさん
垢版 |
2021/05/14(金) 21:20:46.78ID:9KJ7FZky
>>713 sh
https://ideone.com/wlbCfa
2021/05/14(金) 21:50:11.90ID:G1LerHLY
>>713
Java
https://paiza.io/projects/XDT_nug6wRMHKiGsDF55Dw
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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