プログラミングのお題スレ Part12 at TECH
[2ch|▼Menu]
[前50を表示]
250:デフォルトの名無しさん
18/11/07 18:45:22.44 oTVd6hn3.net
どこが問題なのw
仕様に沿った解決法言っちゃってるじゃんw

251:219
18/11/07 19:20:37.53 bimd4khF.net
>>243
プログラムを作るのがお題だろう。
ここはプログラミングのお題スレなんだからこれでいいんだよ。
むしろ人がある程度プログラムの仕様を考えなければならないような数学問題みたいなやつがダメなお題。

252:デフォルトの名無しさん
18/11/07 20:13:22.48 Uevtgk2mh
社会貢献のための生成とはどうあるべきかについて考えればいいじゃないか。
それを無くしては単なる社会主義的生産物として生きていく日々だよ。

253:デフォルトの名無しさん
18/11/07 20:23:12.93 Uevtgk2mh
それとも社会貢献はプログラミングのお題じゃないってか?
頭良すぎるだろ。

254:デフォルトの名無しさん
18/11/07 20:24:13.29 Uevtgk2mh
俺にも下品さの師匠を教えてくれよ。
お前らみたいに豊かになりてーわ笑。

255:デフォルトの名無しさん
18/11/07 19:56:07.71 5DjOPE5m.net
>>242 Ruby
in_fname = 'hoge.bmp'
out_fname = 'hoge_ud.bmp'
File.binwrite(out_fname, File.binread(in_fname).tap{|b| b[22, 4] = [-b[22, 4].unpack(?l).pop].pack(?l))

256:デフォルトの名無しさん
18/11/07 20:06:47.46 umLQTzF1.net
>>244
あなたがそういう問題しか好きじゃないか解けないだけでしょ
スレ民の総意みたいな言い方しないで

257:デフォルトの名無しさん
18/11/07 20:14:12.09 Lazgvcn1.net
>>244
紙とえんぴつで解ける数学問題みたいなやつがプログラミングのお題としてダメなのは同意なんだけど>>242は例えば
画像の上下を反転せよ。入力はbmpとする。
とかのほうが良かったんじゃないかな。
愚直に配列いじる奴を尻目に仕様を利用して華麗に解くやつが現れる。
これがいいんじゃないか。

258:219
18/11/07 21:05:56.46 bimd4khF.net
>>249
スレ民の総意がどうであろうともこのスレはプログラミングのお題スレなんだからプログラミングのお題になってないのはスレチであることには代わりがない。
適切なスレに書くかまたはなければ新たにそれ用のスレを作って書けば良い。
>>250
それでもいいかも知れないが問題が簡略化されているために自分で仕様を調べるというプログラミングとは少し違う作業が発生するな。
更に仕様の盲点に気付くかというクイズ的な要素もある。

259:デフォルトの名無しさん
18/11/07 21:15:41.59 wOCAlbJb.net
まあ式を実装するだけの数学問題と大差ないお題にしてしまうような要素は不要だったな

260:デフォルトの名無しさん
18/11/07 21:15:43.65 h4FWJh3K.net
>>249
>>248 じゃないけど、数学の問題は問題自体が分からないから手が出せない。
高卒でも分かるように噛み砕いて貰えれば書けるかもだが。

261:デフォルトの名無しさん
18/11/07 21:17:30.61 h4FWJh3K.net
そう考えると、プログラミングの能力って言語覚えるより問題を理解する能力だよな。。。

262:デフォルトの名無しさん
18/11/07 22:05:04.79 DuFCNJWg.net
噛み砕くとこうだな
ファイルの22バイトめから保存されている4バイト長の整数値の符号を反転せよ。
ただし数値は下位バイトから順に格納されており、負数は2の補数表現を用いるものとする。

263:デフォルトの名無しさん
18/11/07 22:06:17.13 DuFCNJWg.net
出力は反転した数値以外は元のファイルと同じ内容のファイルとする
も要るか

264:デフォルトの名無しさん
18/11/07 22:14:53.17 h4FWJh3K.net
>>255
ごめん
>>230-231 の方が分からないんだ。。。

265:デフォルトの名無しさん
18/11/07 22:28:14.93 /kHK9X1+.net
それこそ数学の質問スレでやってくれない?

266:デフォルトの名無しさん
18/11/08 03:03:27.47 yQlGi5bN.net
>>244
>ここはプログラミングのお題スレなんだからこれでいいんだよ。
>むしろ人がある程度プログラムの仕様を考えなければならないような数学問題みたいなやつがダメなお題。
スレタイ『プログラマーは何を勉強すべきか?』
プログラマーは何を勉強すべきかということだが、最新のトレンドに適応した勉強が必要だ。
俺は今までこれだけ沢山勉強してきたという人も、実は最新のトレンドに適応していない可能性もある。
5、結論
  以上の結果より導き出される京大英語で8割を超すための対策は、「ネイティブ英語とは何か」
を定義づけして学ぶことに尽きるだろう。
  たとえば、「この料理はまずい」という英作文なら受験生に多いのが
 This dish tastes poor.
しかし、これは評価されない。なぜなら、英語として正しくてもマナー違反。英検英語なら否定文にして、
This dish isn't good. これでマナーは改善された。
  しかし、ネイティブなら I don't like this dish. と言うだろう。本当に不味い場合は、
Yuck! と叫ぶ。そういう違いだ。
 問題は、
「受験英語の参考書や問題集で取り上げられている構文や表現が現実に使われている英語と違う」
  という事実。それを指導している教師や講師も、外国生活がなく50年前の表現を気づかずに指導して
いること。そのために、校内テストや模試で高得点や上位の順位をとっても落ちてしまうこと。
URLリンク(storys.jp)

267:デフォルトの名無しさん
18/11/08 03:57:11.05 AySxWi85.net
「この料理はまずい」の時点でマナー違反なんだからそのまま訳すのが正しい
料理がまずいときの一言を答えさせたいならそう出題すればいいことだ
そういう出題側の質とか意識してんのかなこいつ

268:デフォルトの名無しさん
18/11/08 04:48:49.11 QHwNiY6E.net
数学のように、頭の中で正しいかどうかを、証明するような問題は、面倒くさい。
このスレでは、頭を使わず、単純な総当たり問題が好まれる
その方が、プログラミング的な問題

269:デフォルトの名無しさん
18/11/08 05:18:56.02 HOEn5tLb.net
お題:
自然数Nと、N個の「半角の小文字アルファベットと数字からなる1文字以上の文字列」が標準入力から順次与えられます。
文字列をNatural Sort*して標準出力から順次出力してください。
追加問題:
お題1を正規表現を使わず実装してください。
*:
"a120"と"a13"が与えられた場合、"a13","a120"の順番にソートするようにする。
また、今回は"a01"と"a1"が与えられた場合、連続する数字が少ない方を先にする、すなわち"a1","a01"の順になるようにするものとし、
"0"と"a"のどちらが先に来るかについては自由とします。

270:デフォルトの名無しさん
18/11/08 05:51:13.63 yQlGi5bN.net
>>261
>数学のように、頭の中で正しいかどうかを、証明するような問題は、面倒くさい。
>このスレでは、頭を使わず、単純な総当たり問題が好まれる
ならば、「チンポがシコシコする」という日本語表現は、文法的に正しいのか?
チンポ「を」シコシコするのではなくて、チンポ「が」シコシコする。この場合、「チンポ」は主語となる。
オブジェクト指向で言う「集約」は2種類あって、全体(俺)と部分(チンポ)が繋がっている場合と、
全体(俺)と部分(チンボ)が別々になっている場合とが考えられる。けれども「チンボ」はそれ自体
が独立した生き物であり、所有者の意思とは無関係に、勃起して「シコシコする」。
例えば寝てる時にエロい夢みて朝起きてみたらチンコが勃起して射精してたとか。
違うか?
「胸がドキドキする」は良いが、「チンポがシコシコする」はダメな理由を、50字以内で述べろ!

271:デフォルトの名無しさん
18/11/08 07:42:34.26 Tu3rCJEk.net
>>261
まあそうなんだけど、数学スレでガンガンプログラミング言語で答え出してる奴がいて正直羨ましい。

272:デフォルトの名無しさん
18/11/08 09:21:24.69 UCtqQ5sl.net
なぜそのスレで頑張らないのか。
二軍でヒーローになろうと思ってここで数学の問題出してるの?

273:デフォルトの名無しさん
18/11/08 09:28:43.02 Tu3rCJEk.net

私は出題者じゃ無いよ。

274:デフォルトの名無しさん
18/11/08 09:57:33.73 2oWgTmr1.net
>>265
>なぜそのスレで頑張らないのか。
>二軍でヒーローになろうと思ってここで数学の問題出してるの?
俺はただパソコンに向かって独り言ブツブツ言って、チンポがシコシコしてるだけだが?

275:デフォルトの名無しさん
18/11/08 09:57:41.43 llemawmF.net
>>262
How do I do a natural sort on an array?
URLリンク(www.perlmonks.org)
これを実装すんの?

276:デフォルトの名無しさん
18/11/08 10:23:04.41 Cbg63GbQ.net
>>263
君が何を言いたいのかよくわからない。

277:デフォルトの名無しさん
18/11/08 10:34:41.85 yQlGi5bN.net
>>269
『チンポ』についての生態学は、俺にもよくわからん。

278:デフォルトの名無しさん
18/11/08 11:03:16.65 WO5MlDuJ.net
>>262 Ruby
puts$<.readlines.sort_by{|a|[a.scan(/\d+|\D+/).map{|e|e.to_i(36)},a.size]}

279:デフォルトの名無しさん
18/11/08 14:52:40.11 9PdT3eEJ.net
>>271
>>262
>また、今回は"a01"と"a1"が与えられた場合、連続する数字が少ない方を先にする、すなわち"a1","a01"の順になるようにするものとし、

280:デフォルトの名無しさん
18/11/08 15:03:35.30 5p9g1xrz.net
>>272
問題無い
# stdin
a130
a12
a001
a01
a1
1
# stdout
1
a1
a01
a001
a12
a130

281:デフォルトの名無しさん
18/11/08 15:08:17.09 9PdT3eEJ.net
>>273
a01b2
a1b0002

282:デフォルトの名無しさん
18/11/08 15:11:12.86 5p9g1xrz.net
>>274
うわー恥ずかしい
指摘ありがとう

283:デフォルトの名無しさん
18/11/08 15:11:38.15 rrpg0ZUw.net
>>273
a001
a12
これ逆にならんとあかんのとちゃう?

284:デフォルトの名無しさん
18/11/08 15:14:27.12 tjdDhH3P.net
>>215 python3
むりやり数式で解いてみた
URLリンク(ideone.com)

285:デフォルトの名無しさん
18/11/08 15:33:18.20 quzojjRV.net
ソートの問題、
連続する数字はその連を数値として比較しつつ同じ数値のときは桁数少を前としているわけだよな
つまり
a01a
a1b
a01b
をソートすると
a01a
a1b
a01b

286:デフォルトの名無しさん
18/11/08 16:29:56.18 Tu3rCJEk.net
>>262
Haskell
main = concat $ map qsort grop
grop = map filterlen [1..(maximum $ map length input)]
filterlen n = filter (\x -> n == length x) input
qsort [] = []
qsort (x:xs) = small ++ [x] ++ big
where small = qsort [a |a <- xs, a <= x]
big = qsort [a | a <- xs, a > x]
input = ["a130","a12","a001","a01","a1","1"]

287:デフォルトの名無しさん
18/11/08 16:31:19.84 Tu3rCJEk.net
input = ["a130","a12","a001","a01","a1","1"]

288:デフォルトの名無しさん
18/11/08 18:41:10.95 e5hl87sZ.net
>>278
>連続する数字はその連を数値として比較しつつ同じ数値のときは桁数少を前としているわけだよな
同じ数値のときじゃなくて全体が等しいときか

289:デフォルトの名無しさん
18/11/08 18:52:29.20 B0s1LWLV.net
>>279
input = ["01m30s","1m45s","02m03s"]
結果
["1m45s","01m30s","02m03s"]
あんまりnatural じゃない感じ

290:デフォルトの名無しさん
18/11/08 19:15:05.42 85A5tG8V.net
お題
M行N列の領域をジグザグスキャンするときの順序を求めよ
3 3
=>
1 2 6
3 5 7
4 8 9
4 2
=>
1 2
3 5
4 6
7 8
3 5
=>
01 02 06 07 12
03 05 08 11 13
04 09 10 14 15
1 8
=>
1 2 3 4 5 6 7 8

291:デフォルトの名無しさん
18/11/08 22:07:15.82 k/fJXxDB.net
>>235 ruby
URLリンク(ideone.com)

292:デフォルトの名無しさん
18/11/08 22:11:37.46 Tu3rCJEk.net
>>282
そう?
ナチュラルソートっての知らんけど、その結果見ても仕様通りと思うんだが。

293:デフォルトの名無しさん
18/11/08 22:16:02.65 EeFetNer.net
>>271を訂正 Ruby
puts$<.readlines.sort_by{|a|a.scan(/(\D*)(\d+)/).map{|i,j|[i,j.to_i,j.size]}}
# stdin
a01b2
a1b0002
a130
a12
a001
a1
1
# stdout
1
a1
a1b0002
a01b2
a001
a12
a130

294:デフォルトの名無しさん
18/11/08 23:33:47.08 TLTEncZh.net
誰に何を文句言うわけでもないがナチュラルソートってのは一般に
"01.25" < "1.5"
"01m 25cm" < "1m 35cm" とか
"Chapter 001 section 5" < "Chapter 1 section 6"
となるような順序での整列
逆でもいいけど
問題の仕様はどうかしらんが単に用語の解説ね

295:デフォルトの名無しさん
18/11/08 23:49:40.65 I6IWEGdd.net
今回の問題の仕様とは微妙に違うから回答にはならないけど
echo -e "01m30s\n1m45s\n02m03s" | sort -V
01m30s
1m45s
02m03s
ナチュラルソートならこうなるべきだな

296:デフォルトの名無しさん
18/11/09 09:07:23.82 cVPfgm+I.net
>>287-288の仕様で Ruby
args = [
  '01.25', '1.5', '01m 25cm', '1m 35cm',
  'Chapter 001 section 5', 'Chapter 1 section 6',
  '01m30s', '1m45s', '02m03s'
]
nsort = lambda do |args|
  f = ->str{str.scan(/(?=.)(\D*)(\d+(\.\d+)?)/).flat_map{|a, b| b.empty? ? [a] : [a, b.to_r]}}
  g = ->str{str.scan(/\d+/).map(&:size)}
  args.sort do |str1, str2|
    comparison = f[str1] <=> f[str2]
    comparison.zero? ? g[str1] <=> g[str2] : comparison
  end
end
p nsort[args]
#=>["01m30s",
"1m45s",
"01m 25cm",
"1m 35cm",
"01.25",
"1.5",
"02m03s",
"Chapter 001 section 5",
"Chapter 1 section 6"]

297:デフォルトの名無しさん
18/11/09 17:42:13.83 SNvr5Euv.net
>>269
『チンポ』については、自分でも良くわからない、何とも言えない不思議な生き物だ。

298:デフォルトの名無しさん
18/11/09 18:36:42.14 B4AEy6G3.net
お題
1以上N以下の奇数を並べた数の桁数を求めよ
3
=> 2 (13)
10
=> 5 (13579)
9999
=> 19445 (135...99979999)
123456789
=> ?
31415926535897
=> ?

299:デフォルトの名無しさん
18/11/09 18:45:16.11 DHGOZxva.net
>>291
桁数というか奇数が何個かって話やね。
わざわざ分かりにくい仕様とか、コミュ障かと。

300:デフォルトの名無しさん
18/11/09 18:47:33.93 DHGOZxva.net
ん、ああ。
10とか100とかになったら個数と桁数は違うか。
悪かった。

301:デフォルトの名無しさん
18/11/09 19:31:42.41 myvceSEv.net
お題
与えられた数を最小文字数で生成する。

302:デフォルトの名無しさん
18/11/09 19:36:37.28 b84kY48J.net
>>291 rust
URLリンク(ideone.com)

303:デフォルトの名無しさん
18/11/09 19:38:13.95 JsSTi+Gx.net
>>294
問題の意味がわからん。何か例を書いてくれ。

304:デフォルトの名無しさん
18/11/09 19:45:38.08 OW/zGENl.net
意味のわからない日本語を解析する

305:デフォルトの名無しさん
18/11/09 19:46:38.02 A6qAb8kp.net
134217728 が与えられたら 8^9 を返すとかそういう話かね?

306:デフォルトの名無しさん
18/11/09 19:46:54.75 EUp1VEAA.net
>>291
Haskell
main = mapM_ print $ zip3 lst fosl fos
oddstr [] = []
oddstr (x:xs) = show x:oddstr xs
fo = map (\x-> filter (odd) [1..x]) lst
foo f = map (f.concat.oddstr) fo
fos = foo id
fosl = foo length
lst = [3,10,999,123456789,31415926535897]
コードはすぐ出来たけど、計算が終わらないw
奇数が多すぎてバッファに残ってなさそうだから、ファイルにリダイレクトし直しかな。。。

307:デフォルトの名無しさん
18/11/09 20:06:34.46 JsSTi+Gx.net
>>291
スマホから直接一度も試さずに書くが、Kotlin だと理屈の上ではこれでできると思う。
nが最大値な。
println((1..n step 2).joinToString("").length)
かといってこんなのメモリ食うだけ。

308:デフォルトの名無しさん
18/11/09 20:38:18.97 Zs2FyImb.net
>>291 Ruby

args = [0, 1, 2, 3, 10, 9999, 123456789, 31415926535897]
floor_log10 = -> n {r = 1; (0..n).find{ r *= 10; r > n}}
kotae = ->n{
x = floor_log10[n + 1]
((9*x - 1)*10**x + 10)/18 + (n-10**x+1)/2 * (x


309: + 1) + (n < 8 ? n & 1 : 0) } args.each{|e| puts '%d => %d' % [e, kotae[e]]} # => 0 => 0 1 => 1 2 => 1 3 => 2 10 => 5 9999 => 19445 123456789 => 500000000 31415926535897 => 214355930195731



310:デフォルトの名無しさん
18/11/09 21:56:37.18 lMSYlD+9.net
>>301
なんで

311:デフォルトの名無しさん
18/11/09 21:58:02.15 lMSYlD+9.net
すまん。途中で誤爆した。
>>301
なんでこうなるの??
あと最後のn < 8 ? n & 1 : 0も数式で表わせる?

312:デフォルトの名無しさん
18/11/09 22:05:09.74 gJrymgLI.net
>>291
Python3
print(len("".join(map(str, range(1, int(input())+1, 2)))))
を実行したらフリーズしたので
odd = range(1, int(input())+1, 2)
keta = 0
for i in odd:
keta += len(str(i))
print(keta)
#==============
123456789
=> 500000000
31415926535897
=> 終わらん

313:デフォルトの名無しさん
18/11/09 22:09:18.25 EUp1VEAA.net
>>299
123456789の桁数は500000000ってのは分かった。

314:デフォルトの名無しさん
18/11/09 22:23:23.31 PBoRuHnu.net
>>303
0からnまでの奇数を並べてできる数の桁数をf(n)とすると(n >= 0)
p := [log10(n+1)] として n >= 10の時
f(n) = Σ[k は 0〜[(n-1)/2]]( (2k+1)の桁数 )
  = 1*(0〜9までの奇数の数) + 2*(10〜99までの奇数の数) + ...
+ p*(10^(p-1)〜10^p-1までの奇数の数) + (p+1)*(10^p〜nまでの奇数の数)
  = 1*5 + Σ[k は 2〜p]45k*10^(k-2) + (p+1)*[(n - 10^p + 1)/2]
  = 45/100*Σ[k は 1〜p]k*10^k + 1/2 + (p+1)*[(n - 10^p + 1)/2]
  = ((9p - 1)10^p + 1)/18 + 1/2 + (p+1)*[(n - 10^p + 1)/2]
  = ((9p - 1)10^p + 10)/18 + (p+1)*[(n - 10^p + 1)/2] …… (*)
n = 0, 2, 4, 8, 9 の時はちょうど (*)
n = 1, 3, 5, 7 時は (*) + 1 なので
f(n) = ((9p - 1)10^p + 10)/18 + (p+1)*[(n - 10^p + 1)/2] + (n < 8 ? n & 1 : 0)
末尾の項を無理やり数式にしたいなら
[8/(n + 1)]((1 - (-1)^n)/2)(2^((5 - n)/2)([n/7] + 1))
とかにすればいいんじゃない意味ないけど

315:デフォルトの名無しさん
18/11/09 23:35:53.00 QKOvQ/Be.net
>>291 Squeak/Pharo Smalltalk
| fn |
fn := [:N |
| nDig |
nDig := N log truncated.
(1 to: nDig)
inject: (1 to: N by: 2) size * (nDig + 1)
into: [:tot :m | tot - ((10 raisedTo: m) / 2)]
].
#(3 10 9999 123456789 31415926535897) collect: fn
"=> #(2 5 19445 500000000 214355930195731) "

316:デフォルトの名無しさん
18/11/09 23:56:11.30 EzT7HP1o.net
>>306
訂正
((9p - 1)10^p + 10)/18 -> [((9p - 1)10^p + 10)/18]
あと (n < 8 ? n & 1 : 0) は (1 - (-1)^n)/2*[3/([√n] + 1)] の方がより簡単か

317:デフォルトの名無しさん
18/11/10 01:35:04.59 PYYpj2JU.net
>>291
Kotlin
URLリンク(paiza.io)

318:デフォルトの名無しさん
18/11/10 04:32:40.14 dp2CGyZQ.net
>>309
すごい😆

319:デフォルトの名無しさん
18/11/10 04:35:26.34 PYYpj2JU.net
>>262
Kotlin
URLリンク(paiza.io)
色々考えたが結局クラス作ってそこに数字列と文字列で切り分けて入れておいて比較時にそこ見るようにした。
入力の仕様は拡張されていて、最初に数字だけがあった場合はその後に続く単語がその個数あるとみなして
入力を行うが、最初に数字がない場合は無制限に読む。出力は入力した単語とソート後の単語を出す。

320:デフォルトの名無しさん
18/11/10 05:36:17.18 zQnB+SVr.net
提案
回答は言語別に別スレで
2スレ位になるかな?
評価価値基準で別れていくんじゃないかと
ここではコメントのみになるのかな。

321:デフォルトの名無しさん
18/11/10 05:52:45.45 5gG2FCqG.net
スレ過疎りそうだし誰もわざわざ別スレに回答見に行かなそう

322:デフォルトの名無しさん
18/11/10 06:43:43.85 zQnB+SVr.net
乱立して過疎ってる特定言語専用スレの活性化に寄与することを願いたいしコード例が増えることはそれぞれメリットあるんじゃないかと。
ここと相互リンクは必ず貼る。他の言語と比較しない
他を貶さないを基本ルールに。

323:デフォルトの名無しさん
18/11/10 07:08:4


324:9.40 ID:mapNUhJU.net



325:デフォルトの名無しさん
18/11/10 08:21:22.38 2tLivqWS.net
>乱立して過疎ってる特定言語
具体的に何?
一番肝心のこと言ってないから説得力がまるで無い

326:デフォルトの名無しさん
18/11/10 09:22:59.55 dp2CGyZQ.net
お題:
A,B,Cの3人が1から5までの値が1つずつ書かれた5枚のカードを使ってインディアンポーカーを行う。
各々ランダムに1枚カードを引き、自分は値を見ず他の参加者に値が見えるように額にかざす。
この状態でA,B,Cの順に自分の値が今回引かれた3枚の中で最大(MAX)か,2番目に大きい(MID)か,最小(MIN)かを予想して答える。
AとBはパスしてもよいものとし、誰かが答えた時点で終了となる。
なお全員必ず正解するものとする。
各々の引いたカードの値を引数にとり、一回分のインディアンポーカーの結果を出力する関数indian_poker(a, b, c)を実装せよ。
期待動作例:
indian_poker(3, 2, 1) // 「A is MAX」
indian_poker(5, 2, 4) // 「B is MIN」
indian_poker(4, 2, 3) // 「C is MID」

327:デフォルトの名無しさん
18/11/10 09:43:13.06 9vqEahoA.net
そのスレの流れを無視してよそのスレで出されたお題の答えだけ書かれても、そのスレの住人には邪魔なだけだと思う。

328:デフォルトの名無しさん
18/11/10 09:56:28.53 X2YiMm/N.net
こういう指示語ばかり使うやつはだいたい頭悪い

329:デフォルトの名無しさん
18/11/10 10:03:50.52 0iGN/oEh.net
>>317
マ板で見かけた入社試験過去問か。
プログラマー脱落者として辞退します。

330:デフォルトの名無しさん
18/11/10 10:10:03.22 zQnB+SVr.net
乱立して過疎ってる (特定言語専用(スレッド))
形容詞句?の係りはこれな
(こういうものの表しかたにも流儀が色々あって混在するとややこしい)

331:デフォルトの名無しさん
18/11/10 10:19:13.79 2tLivqWS.net
係り受けなんてどーでもいいよ
「特定言語」って具体的に何なんだ、って聞いてるだけじゃん
返答が『形容詞句?の係りはこれな』って人の話をわざと聞かない人間だろ
かなりのサイコパスなんで『乱立して過疎ってるスレ』とやらに誘いこんでマウンティングしたいだけじゃねえの
なぜなら、特定言語の具体的な名前を5時間経っても未だに出さない、
口を開いたかと思えば「係り受けはこうだから」
もう頭がおかしいだろこいつ

332:デフォルトの名無しさん
18/11/10 10:34:20.29 zQnB+SVr.net
一つの言語を話題の軸に置いたスレッドは幾らでもあるだろ?この板には。
過疎ってるのも伸びてるのも全部特定言語専用スレな

333:デフォルトの名無しさん
18/11/10 10:36:44.35 zQnB+SVr.net
コマンドプロンプトとかSQLとかでワイルドカード使ったことないのかな?

334:デフォルトの名無しさん
18/11/10 11:08:46.45 1MT6N26R.net
そもそもここが過疎だし、他スレなんかにここのコード書いても荒らしにしかならんので当然ながら反対
やりたい奴だけ勝手にやってろ

335:デフォルトの名無しさん
18/11/10 11:14:10.79 16GnFLu/.net
>>317
一人が答えた時点で終了になるのに全員正解とは

336:デフォルトの名無しさん
18/11/10 11:20:45.22 zQnB+SVr.net
幾らなんでも既存スレ無許可で乗っ取るのはやめてほしい。
でも逆にそちらで希望された場合には別スレにしなくてもいいのでは?リンクさえあれば

337:デフォルトの名無しさん
18/11/10 11:31:50.87 T2pc5qWv.net
そもそも>>312の時点で日本語が怪しいですし

338:デフォルトの名無しさん
18/11/10 11:33:27.18 16GnFLu/.net
>>317
答えた者が必ず正解するならAが常にあてずっぽうで正解できることになるな
パスする


339:意味も無い 言わんとすることは推測できるが、問題文としては明らかにおかしい 各自、論理的に正解が絞りきれた場合のみ解答し、そうで無ければ必ずパスするものとする。又、その論理に誤りはないものとする。みたいな条件が必要



340:デフォルトの名無しさん
18/11/10 11:34:10.16 g5G2TnXq.net
>>317 Java
URLリンク(ideone.com)
これはひどいコードww

341:デフォルトの名無しさん
18/11/10 11:36:49.05 16GnFLu/.net
>>330
ごり押しで草

342:デフォルトの名無しさん
18/11/10 11:44:08.17 16GnFLu/.net
Aは常に正解する
Aは常に正しい
故にA is GOD

343:デフォルトの名無しさん
18/11/10 12:18:21.41 2tLivqWS.net
>>317は9月末あたりに話題になってた
URLリンク(qiita.com)
URLリンク(qiita-image-store.s3.amazonaws.com)

344:デフォルトの名無しさん
18/11/10 12:38:22.96 16GnFLu/.net
>>333
元ネタからして雑すぎて草

345:デフォルトの名無しさん
18/11/10 12:44:49.01 gks79eHH.net
前スレ951のやつか

346:デフォルトの名無しさん
18/11/10 12:44:51.58 xqriZsUd.net
>>317 Ruby
def indian_poker(a, b, c)
  x = [Set[1, 2], Set[1, 5], Set[4, 5]]
  winner, winners_num = case
    when x.include?(Set[b, c]) then [?A, a]
    when a == 3 || (b == 3 && Set[a, b, c] != Set[2, 3, 4]) || x.include?(Set[a, c]) ||
      Set[b, c] == Set[2, 4] then [?B, b]
  else [?C, c]
  end
  '%s is %s' % [winner, %w[MIN MID MAX].zip([a, b, c].sort).find{|e| e.last == winners_num}.first]
end
arr = [*(1..5)].permutation(3){|i| puts '%p -> %s' % [i, indian_poker(*i)]};
# =>
[1, 2, 3] -> C is MAX
[1, 2, 4] -> B is MID
[1, 2, 5] -> B is MID
...
以下>>330と同じ

347:デフォルトの名無しさん
18/11/10 13:25:37.16 hLxIIZfE.net
>>329
> 各自、論理的に正解が絞りきれた場合のみ解答し、そうで無ければ必ずパスするものとする。又、その論理に誤りはないものとする。みたいな条件が必要
流石にその程度は理解しようよ…

348:デフォルトの名無しさん
18/11/10 13:27:54.99 8cjk91S6.net
>>291 python3
URLリンク(ideone.com)
うーん… O(1)にできない

349:デフォルトの名無しさん
18/11/10 13:37:54.71 16GnFLu/.net
>>337
書いてないことは何でもあり
論理パズルにするならちゃんとルールは全て掲示しないと駄目

350:デフォルトの名無しさん
18/11/10 13:52:54.08 9b5VuL4P.net
お題
n^n^nの下2桁を求めよ(^はべき乗、nは1以上の整数)
1 => 1
2 => 16 (2^2^2 = 2^4 = 16)
3 => 87 (3^3^3 = 3^27 = 7625597484987)
4 => 96
11 => 11
13 => 53
100 => 0
777 => ??

351:デフォルトの名無しさん
18/11/10 14:00:49.74 hLxIIZfE.net
>>339
はいはい w
アスペかよ

352:デフォルトの名無しさん
18/11/10 15:46:45.95 16GnFLu/.net
>>340
777の出力は77になればいいのかな?
その入力でこうなるの面白いな

353:デフォルトの名無しさん
18/11/10 15:58:06.48 xqriZsUd.net
>>342
97じゃない?

354:デフォルトの名無しさん
18/11/10 16:06:41.30 16GnFLu/.net
>>343
すまんコード修正したら97になったわ
はやとちりだった

355:デフォルトの名無しさん
18/11/10 16:28:23.31 31tiZVqm.net
>>330-331
そういうのはそれよりマシなコードを出してから言わないと単なる口先番長にしか見えないぞw

356:デフォルトの名無しさん
18/11/10 17:09:13.33 xqriZsUd.net
>>340 Ruby
def powmod(n, e, m)
  case e
  when 0 then 1
  when :even?.to_proc then powmod(n * n % m, e >> 1, m)
  else n * powmod(n, e - 1, m) % m
  end
end
def kotae(n, m)
  index, cycle = (1..m).each_wit


357:h_object([1]) do |i, a|     x = (a.last * n % m)     ind = a.index(x)     ind.nil? ? a.push(x) : (break([ind, i - ind]))   end   x = n.times.reduce(1){|r, i| r *= n; r < index ? r : break}   y = x.nil? ? index + (powmod(n, n, cycle) - index) % cycle : x   powmod(n, y, m) end [0, 1, 2, 3, 4, 5, 10, 11, 13, 100, 777].each{|i| puts '%d -> %06d' % [i, kotae(i, 10**6)]} # =>0 -> 000000 1 -> 000001 2 -> 000016 3 -> 484987 4 -> 084096 5 -> 203125 10 -> 000000 11 -> 906611 13 -> 549053 100 -> 000000 777 -> 977097



358:デフォルトの名無しさん
18/11/10 17:30:26.21 g5G2TnXq.net
>>345
自分で書いて自分でひどいコードと言うとるんやがww

359:デフォルトの名無しさん
18/11/10 17:52:39.10 AvCW4uHY.net
python
def ans(num):
_def calc(N):
__n = (N ** 2) % 100
__p = []
__while n not in p:
___p.append(n)
___n = (n * N) % 100
__return p
_loop = calc(num)
_step = num**num % len(loop)
_if len(loop) == 1:
__print(loop[0])
_else:
__print(loop[step-2])
for x in [0,1,2,3,4,5,10,11,13,777]:
_ans(x)
-> 0,1,16,87,96,25,0,11,53,97

360:デフォルトの名無しさん
18/11/10 17:55:30.82 hLxIIZfE.net
>>347
ああ、それはすまん
俺もパッと書けと言われたらこれしか思いつかんわ

361:デフォルトの名無しさん
18/11/10 19:50:00.93 nd1h6x9x.net
>>347
わかった上で愚直にごり押しコード書いただけだよな
引数順列の列挙もドストレートで素敵w

362:デフォルトの名無しさん
18/11/10 20:50:56.73 G7iMNc/F.net
>>317 Squeak/Pharo Smalltalk
| numOfCards indianPoker |
numOfCards := 5.
indianPoker := [:args |
| cards names infer |
cards := (1 to: numOfCards) asArray.
names := (Character alphabet asUppercase first: args size) asArray collect: #asSymbol.
infer := nil. (infer := [:dealts :limit |
| turn possibilities lastAns answers |
turn := 0. answers := OrderedCollection new.
possibilities := dealts collect: [:dealt | cards asSet removeAll: dealts; add: dealt; yourself].
lastAns := nil -> #?.
[lastAns value = #? and: [(turn := turn + 1) < limit]] whileTrue: [
| myCards others |
myCards := possibilities atWrap: turn.
turn > 1 ifTrue: [
(myCards copyWithout: (dealts atWrap: turn)) do: [:pCard |
(infer value: (dealts copy atWrap: turn put: pCard; yourself) value: turn) value ~= #?
ifTrue: [myCards remove: pCard]]].
others := dealts copyWithoutIndex: turn - 1 \\ 3 + 1.
lastAns := (names atWrap: turn) -> (true caseOf: {
[others min > myCards max] -> [#MIN].
[others max < myCards min] -> [#MAX].
[others max > myCards max and: [others min < myCards min]] -> [#MID]
} otherwise: [#?])
]. lastAns]) value: args value: Float infinity
].
indianPoker value: #(3 2 1). " #A->#MAX "
indianPoker value: #(5 2 4). " #B->#MIN "
indianPoker value: #(4 2 3). " #C->#MID "

363:デフォルトの名無しさん
18/11/11 03:24:01.44 HtKIrWnT.net
>>340 python3
URLリンク(ideone.com)

364:デフォルトの名無しさん
18/11/11 10:02:52.73 ZG9KPLpE.net
>>340
Rubyで。
URLリンク(ideone.com)

365:デフォルトの名無しさん
18/11/11 12:53:19.00 ILkwXRqJ.net
>>340 Squeak/Pharo Smalltalk
| fn |
fn := [:N |
(Array new: 3 withAll: N) reduce: [:mex :n |
mex \\ 100 = 0 ifTrue: [0] ifFalse: [n raisedTo: mex modulo: 100]
]
].
#(1 2 3 4 11 13


366:100 777) collect: fn "=> #(1 16 87 96 11 53 0 97) "



367:デフォルトの名無しさん
18/11/11 14:11:48.73 j7sl2u35.net
>>354
それだけでいけるのか
すげー

368:デフォルトの名無しさん
18/11/11 14:19:03.18 SClia95W.net
それでもJニキなら何とかしてくれる

369:デフォルトの名無しさん
18/11/11 14:25:13.88 j7sl2u35.net
よく読んだら素直に実装してるだけか

370:デフォルトの名無しさん
18/11/11 14:34:26.37 ILkwXRqJ.net
>>357
ですね…^^;

371:デフォルトの名無しさん
18/11/11 16:24:01.50 xWJTm2Oc.net
お題
n次のヒルベルト曲線を描画せよ
n=1
■□■
■□■
■■■
n=3
■□■■■■■□■■■■■□■
■□■□□□■□■□□□■□■
■■■□■■■□■■■□■■■
□□□□■□□□□□■□□□□
■■■□■■■□■■■□■■■
■□■□□□■□■□□□■□■
■□■■■■■□■■■■■□■
■□□□□□□□□□□□□□■
■■■□■■■■■■■□■■■
□□■□■□□□□□■□■□□
■■■□■■■□■■■□■■■
■□□□□□■□■□□□□□■
■□■■■□■□■□■■■□■
■□■□■□■□■□■□■□■
■■■□■■■□■■■□■■■

372:デフォルトの名無しさん
18/11/11 17:11:10.50 Gv5Fmm22.net
>>340 Perl5
use bignum (l=>GMP);
for $i (1,2,3,4,11,13,100,777) {
$j = $i % 100;
$k = $j ** $j % 100;
$p = $j ** $k % 100;
printf "$i %02d\n", $p;
}
実行例
$ time perl 12_338.pl
1 01
2 16
3 87
4 96
11 11
13 53
100 00
777 97
0.562 secs

373:デフォルトの名無しさん
18/11/11 17:52:24.96 tvDFPkAv.net
>>359 Ruby
def hilbert_curve(n)
  return [[1, 0, 1], [1, 0, 1], [1, 1, 1]] if n == 1
  hc = hilbert_curve(n - 1)
  [
    *hc.transpose.reverse.zip(hc.reverse.transpose).map{|a, b| [*a, 0, *b]},
    [1, *Array.new(2**(n + 1) - 3, 0), 1],
    *hc.zip(hc).map.with_index{|(a, b), i| [*a, 1/(i + 1), *b]}
  ]
end
[1, 3].each{|e| puts "n = #{e}", hilbert_curve(e).map{|a| a.join.gsub(/\d/, ?0 => ?□, ?1 => ?■)}.join($/)}
# => n = 1
■□■
■□■
■■■
n = 3
■□■■■■■□■■■■■□■
■□■□□□■□■□□□■□■
■■■□■■■□■■■□■■■
□□□□■□□□□□■□□□□
■■■□■■■□■■■□■■■
■□■□□□■□■□□□■□■
■□■■■■■□■■■■■□■
■□□□□□□□□□□□□□■
■■■□■■■■■■■□■■■
□□■□■□□□□□■□■□□
■■■□■■■□■■■□■■■
■□□□□□■□■□□□□□■
■□■■■□■□■□■■■□■
■□■□■□■□■□■□■□■
■■■□■■■□■■■□■■■

374:デフォルトの名無しさん
18/11/11 22:01:36.28 B3f/927d.net
>>340
Haskell
素直に書いた版。
何やってるかは分かりやすい。
main = mapM_ put $ zip list $ map f list
put (x,y) = putStr (show x ++ ":") >> print y
f x = (x ^ x ^ x) `mod` 100
list = [1,2,3,4,5,6,7,8]

375:デフォルトの名無しさん
18/11/11 22:10:56.11 B3f/927d.net
Haskell
Perlの人のパクリ版(めちゃ速い)
main = mapM_ put $ zip list $ map f list
put (x,y) = putStr (show x ++ ":") >> print y
f x = p
where j = x `mod` 100
k = j ^ j `mod` 100
p = j ^ k `mod` 100
list = [1,2,3,4,11,13,100,777]

376:デフォルトの名無しさん
18/11/11 22:20:34.69 xWJTm2Oc.net
>>360
n=10のときどうなる?

377:デフォルトの名無しさん
18/11/11 23:54:52.39 VLVUrnJ+.net
指数を100の剰余取ってるのってどういう根拠なの?

378:デフォルトの名無しさん
18/11/11 23:59:16.36 lebYcZ/K.net
>>364
use bignum (l=>GMP);
for $i (10) {
$j = $i % 100;
$k = $j ** $j % 100;
$p = $j ** $k % 100;
printf "$i %02d\n", $p;
}
$i = 10;
print ($i**$i)**$i;
実行結果
$ perl 12_338_1.pl
10 01
10000000000
ダメですね合いませんね。
単に左辺を%100すると一般性はありませんでした。サーせん。
ちゃんと循環性を見るとか、別の解法が要りますね

379:デフォルトの名無しさん
18/11/12 00:02:23.31 EX0FpiMD.net
ちなみに循環性を見るとこんな感じになってました
use bignum (l=>GMP);
use Tie::IxHash;
use feature 'say';
for $i (0,1,2,3,4,5,10,11,13,777) {
tie my %h,'Tie::IxHash';
$p = $i;
for (1..100) {
last if exists $h{$p} and $h{$p} > 10;
$h{sprintf "%02d", $p % 100} = $_;
$p = $p * $i % 100;
}
@a = keys %h;
say "$i: ", scalar @a, ": @a", ": $p";
}
実行結果
1: 1: 01: 1
2: 21: 02 04 08 16 32 64 28 56 12 24 48 96 92 84 68 36 72 44 88 76 52: 48
3: 20: 03 09 27 81 43 29 87 61 83 49 47 41 23 69 07 21 63 89 67 01: 47
4: 10: 04 16 64 56 24 96 84 36 44 76: 16
5: 2: 05 25: 25
10: 2: 10 00: 0
11: 10: 11 21 31 41 51 61 71 81 91 01: 11
13: 20: 13 69 97 61 93 09 17 21 73 49 37 81 53 89 57 41 33 29 77 01: 37
777: 20: 77 29 33 41 57 89 53 81 37 49 73 21 17 09 93 61 97 69 13 01: 73

380:デフォルトの名無しさん
18/11/12 00:03:57.97 EX0FpiMD.net
>>366
× 単に左辺を%100
○ 単に右辺(指数)を%100


次ページ
最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
暇つぶし2ch

1874日前に更新/360 KB
担当:undef