◎正当な理由による書き込みの削除について:      生島英之とみられる方へ:

プログラミングのお題スレ Part13 YouTube動画>1本 ->画像>15枚


動画、画像抽出 || この掲示板へ 類似スレ 掲示板一覧 人気スレ 動画人気順

このスレへの固定リンク: http://5chb.net/r/tech/1549160513/
ヒント:5chスレのurlに http://xxxx.5chb.net/xxxx のようにbを入れるだけでここでスレ保存、閲覧できます。

1デフォルトの名無しさん2019/02/03(日) 11:21:53.20ID:72eosYJ+
プログラミングのお題スレです。

【出題と回答例】
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/

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

※前スレ
https://mevius.2ch.net/test/read.cgi/tech/1538096947/

2デフォルトの名無しさん2019/02/03(日) 11:24:10.97ID:72eosYJ+
お題1: 現在地の緯度、経度を出せ
緯度:、、、、
経度:、、、、
お題2: 東京都新宿区西新宿2丁目8-1 の緯度、経度を出せ
緯度:、、、
経度:、、、
お題3: お題2で求めた緯度経度から住所を出せ
郵便番号:、、、
住所:東京都、、、、

3デフォルトの名無しさん2019/02/03(日) 11:36:46.42ID:72eosYJ+
>>2 python (pythonista)
#お題1
import location
location.start_updates() # GPSデータ更新を開始
gps=location.get_location() # GPSデータを取得する
location.stop_updates()# GPSデータ更新を終了
print('お題1')
print('緯度:'+str(gps['latitude']))
print('経度:'+str(gps['longitude']))
#お題2
address_dict = {'Street': '西新宿2丁目8-1'}
gc = location.geocode(address_dict)[0]
print('お題2')
print('緯度:'+str(gc['latitude']))
print('経度:'+str(gc['longitude']))
#お題3
adr = location.reverse_geocode(gc)[0]
#print(adr)
print('お題3')
print('郵便番号:'+str(adr['ZIP']))
print('住所:'+str(adr['State'])+str(adr['City'])
+str(adr['Street']))
#結果
お題1
緯度:35.7----略
経度:139.6---略
お題2
緯度:35.689504
経度:139.6916833
お題3
郵便番号:160-0023
住所:東京都新宿区西新宿2丁目8番1号

4デフォルトの名無しさん2019/02/03(日) 13:16:33.45ID:jFMT64Yy
平方数の判定は、たとえばmod 10だと、
1と4と5と6と9に限るってのを利用すると、違う場合は判定が速いんだろ。
mod n で複数やる。

1=1^2
4=2^2
9=3^2
6=4^2
5=5^2
6=6^2
9=7^2
4=8^2
1=9^2

5デフォルトの名無しさん2019/02/03(日) 17:42:03.97ID:oUppVF8S
>>1

6デフォルトの名無しさん2019/02/03(日) 18:09:22.12ID:I0qputsI
>>4
平方根求められる関数と、少数を整数にする関数があれ

7デフォルトの名無しさん2019/02/03(日) 18:10:24.69ID:I0qputsI
途中で送っちゃった。。。

あれば簡単。

def isSqr(x):
if sqrt(x) - int(sqrt(x)) == 0:
return True
else:
return False

def sqrt(x):
return (x ** 0.5)

8デフォルトの名無しさん2019/02/03(日) 19:44:56.44ID:t6DUu8Hq
>>7 ならば
a=12345.678*12345.678
print('答え',a == (a**0.5) **2)
#結果 True

9デフォルトの名無しさん2019/02/03(日) 20:21:31.21ID:jFMT64Yy
たとえば1000桁のを1000回、判定するとかsqrtでは時間かかるやつの高速化だろ

10デフォルトの名無しさん2019/02/03(日) 20:45:32.58ID:I0qputsI
>>8
なにが「ならば」か分からんけど。。。

引く必要なかったし、ifの中身をそのまま返せば良かった。

def isSqr(x):
return (sqrt(x) == int(sqrt(x)))

11デフォルトの名無しさん2019/02/03(日) 21:02:27.70ID:Hf9VDUPT
>>9 だったらそういう問題の出し方にしないと。

例えば、1から1億までの間の数字で平方根数は何個あるか。 かかった時間と、PC 環境を示せ

また、処理できる最大に近い数字を示せ。

とかかな。

12デフォルトの名無しさん2019/02/03(日) 21:37:11.53ID:MY6f7I+S
なんか変なのいるね

13デフォルトの名無しさん2019/02/03(日) 21:40:28.27ID:v4AFDwkt
浮動小数経由する実装だと整数部が53bit超えると判定出来ない(つまり64bit整数以上だと不適切)
だから自前で浮動小数を経由せずに平方根の整数部分を求めることを考えるわけだけどナイーブにやると計算量が線型になるから二分探索やNewton(-Raphson)法で計算量減らすことを考えるわけだ

14デフォルトの名無しさん2019/02/03(日) 22:02:19.65ID:I0qputsI
>>13

>>7で64ビット以上の数も判定出来てるけど。。。
(0が偶数ならTrue、奇数ならFalse)
小数点以下が0か(n.0かn.41421356みたいな形か)どうか見てるだけだし。
この辺はsqrt関数の性能に依存するだろうけど。

n = 100000000000000000000
m = 10000000000000000000

print(isSqr(n))
print(isSqr(m))

出力

True
False

15デフォルトの名無しさん2019/02/03(日) 23:09:07.55ID:CD+d7Abc
>>14
100000000000000000001がtrueになったりはしない?

16デフォルトの名無しさん2019/02/03(日) 23:21:43.21ID:CD+d7Abc

17デフォルトの名無しさん2019/02/03(日) 23:32:49.30ID:J7OBWIJA
>>14
何言ってんのおまえ

18デフォルトの名無しさん2019/02/03(日) 23:38:52.32ID:v4AFDwkt
>>14
無能
たまたま判定出来るケースだけ抽出してるだけじゃねぇか

19デフォルトの名無しさん2019/02/03(日) 23:57:14.35ID:Hf9VDUPT
>>13 それもわかる。 だったら解き方の最初にこういう目的で解いたとか書かないとね。
だから、解ける最大数値も書いたら良いと書いたんだが。

ちなみに、>>1 の1億までの数字は、iPhoneで28秒だった。

>>15 False になるよ。iphone のpythonista

また、言われたようにバイナリサーチ法や、巨大数のバイナリー検索も試してみたが、単純検索よりずっと時間がかかった。 ま、これは言語にもよると思うから何とも言えないが。 スクリプト系はステップ数が短い方が効率は良さそうだな。

>>18 だからさ、どこまでやるか条件を出せよ。 そしてサンプルを示してみたら? 実行時間も入れて。

プログラムと言うのは、使う現場で目的が違うんだから目的がわからなければ良い悪いなんて言えないだろ。

20デフォルトの名無しさん2019/02/04(月) 01:09:58.80ID:tmXRmKR0
このお客さんはどこから来たんだ

21デフォルトの名無しさん2019/02/04(月) 01:42:54.31ID:8qZo3rbs
アホ過ぎて話になんねー
線型探索と二分探索のどっちが速いかが言語によるとか頭腐ってんのか

線型探索: http://ideone.com/De3SOQ
二分探索: http://ideone.com/v9Twjx

22デフォルトの名無しさん2019/02/04(月) 06:56:02.27ID:eX/1kX5o
>>19
寝てる間にフォローありがとう。


>>15
こっちはiPhoneのモバイルC内蔵のPythonだが、trueなった。
Haskellは63ビットだからかもう少し早い段階でなる。
ただ、>>19 の言う通り実用上問題無いのでは。
(階乗と違って入力より巨大な数が帰るわけじゃないし、Cとかだと十分実用かと)

64ビットまでの数では効率的なバージョンと、それ以上の数も対応するバージョンという感じではどうか。

sqrtも、n乗根は似た作りになるし。

# n√x
def sqrtn(n,x):
return (x ** (1/n))

23デフォルトの名無しさん2019/02/04(月) 07:03:50.35ID:eX/1kX5o
どちらかと言うと**演算子(Cで言うpower関数)の実装に興味あるな。

24デフォルトの名無しさん2019/02/04(月) 07:23:18.46ID:958Z8DnZ
CRC 16bit 左送り 初期値 0x0000 生成多項式0x11021
テーブル使用せず演算でなるべくスマートに

25デフォルトの名無しさん2019/02/04(月) 08:07:18.20ID:jp+X9sqK
指数関数,正弦関数,余弦関数のベキ級数展開(マクローリン展開)

プログラミングのお題スレ Part13 	YouTube動画>1本 ->画像>15枚
http://www.synchronature.com/Science/Euler.html

26デフォルトの名無しさん2019/02/04(月) 10:14:05.68ID:AyF9PYpz
平方数 64ビット以上の巨大数
pythonista iPhone XS Max

def chk2(v1,v2):
 c = 0
 for i in range(v1, v2+1):
  if i == (i**0.5) **2: c += 1
 return c

v = 100000000000000000000
r = 10000000
v1= v-r
v2= v+r

start_time=time.clock()
c = chk2(v1,v2)
end_time=time.clock()
print('#結果',end_time-start_time,'秒','count=',c)
print('#範囲 ',v1,v2)

#結果 5.777779999999893 秒 count= 525
#範囲 99999999999990000000 100000000000010000000

27デフォルトの名無しさん2019/02/04(月) 10:28:47.91ID:AyF9PYpz
>>26 同じ条件でバイナリサーチをやってみると若干だけ早かったが、誤差の範囲

#結果 5.770102000000406 秒 count= 525
#範囲 99999999999990000000 100000000000010000000

28デフォルトの名無しさん2019/02/04(月) 11:40:45.86ID:GcH+yasd
>>26-27
99,999,999,999,990,000,000~100,000,000,000,010,000,000の範囲には10,000,000,000しかないんだからcount=525ってのは演算誤差が出てるってことだよな?

99,999,999,980,000,000,001 (9,999,999,999^2)
100,000,000,020,000,000,001 (10,000,000,001^2)

29デフォルトの名無しさん2019/02/04(月) 11:43:01.09ID:GcH+yasd
いや、intにしてないからそれを調べてるってわけじゃないのか

30デフォルトの名無しさん2019/02/04(月) 14:12:20.36ID:NdPuZxEw
>>28 言われてみればフロートまでカウントするのはおかしいから判定を変えた。

 for i in range(v1, v2+1):
  if (i**0.5).is_integer(): c += 1
 return c

Core i3 3.2GHz Windows10 python3.7
#結果 8.15625 秒 count= 49151
#範囲 99999999999990000000 100000000000010000000

iPhoneの方が倍くらい早いかな。
#結果 4.180858 秒 count= 49151

Core i7のマシンもあるが大して期待できなさそうだな。

検算の意味で、1から1000までをカウントして31だったから正しいだろう。
なお、Python3の整数int型に最大値はない(上限なし)からどんな数でも扱える。

31デフォルトの名無しさん2019/02/04(月) 14:13:11.15ID:fIIhQCXR
もういいからお前

32デフォルトの名無しさん2019/02/04(月) 14:20:39.50ID:GcH+yasd
>>30
いや、誤差出てるやん

33デフォルトの名無しさん2019/02/04(月) 14:55:46.83ID:GcH+yasd
>>30
これ(count=49151)って99999999999999975424から100000000000000024575 (64bit浮動小数点数の16進表記で0x4415AF1D78B58C3Fから0x4415AF1D78B58C41)の平方根が、
10000000000 (64bit浮動小数点数の16進表記で0x4202A05F20000000)になって全部Trueになってるってことだろ

34デフォルトの名無しさん2019/02/04(月) 15:39:51.36ID:8qZo3rbs
99,999,999,980,000,000,001 = 999,999,999^2
100,000,000,000,000,000,000 = 10,000,000,000^2
100,000,000,020,000,000,001 = 10,000,000,001^2
なんだから[99'999'999'999'990'000'000, 100'000'000'000'010'000'000]の区間に入る平方数はただ一つ100,000,000,000,000,000,000しかない

「32bit符号なし整数にしか対応してません」っつうなら分かるがまともに判定出来てないのに「判定出来てる」主張する無能
やれ前提書けだの環境書けだの時間書けだのクソみてぇな御託並べる前に自分の頭の悪さを自覚しろ

35デフォルトの名無しさん2019/02/04(月) 18:19:40.08ID:TMO26aZK
>>34 申し訳ない。 2〜3日前にpython をiPhoneに入れて使い始めてただただ練習のためにお題を使わせてもらってた。
整数と、浮動小数の最大値にまで頭が回らなかった。
今日初めてWindowsにpythonを入れた状態で本当に気が回らなかった。
本当に申し訳ない。

バイナリサーチの方は1個と出るが、時間が膨大にかかる。

36デフォルトの名無しさん2019/02/04(月) 20:37:21.99ID:WZY4HG/d
自然数の割り算関数mydivと余り関数mymodを作れ。

37 ◆QZaw55cn4c 2019/02/04(月) 20:41:26.02ID:CLpqTC7n
>>36
C++ 多桁長演算(加減乗除)の一環として、mpz_class との互換を目指していました
http://2chb.net/r/tech/1434079972/51

38デフォルトの名無しさん2019/02/04(月) 20:50:12.06ID:Ly7rB5Pz
>>36
これでいいの?javascript
const myDiv = (a, b) => ~~(a / b)
const myMod = (a, b) => a % b

39デフォルトの名無しさん2019/02/04(月) 21:00:40.83ID:mK0I6q3a
modをみる
nが平方数なら、n=x^2 だが、n=x^2 (mod m)でもある
逆にmod で平方数でなければ、元々も平方数ではない

mod 3だと0 1 は平方数だが、2はちがう。3i + 2 は平方数にはならない

40デフォルトの名無しさん2019/02/04(月) 22:02:57.78ID:eX/1kX5o
>>38
元は小学生にプログラミングを通じて、割り算への理解を深めてもらえないかと考えたんで、単純に演算子を置き換えて欲しくないかも。。。

41デフォルトの名無しさん2019/02/05(火) 10:18:54.39ID:ij/1zyvC
小学生の時テストで0点をもらった間違った割り算の
やり方をプログラムにしてみた。
--Lua
function myDivMod(a, b)
local r = 0
while a > 0 do
a = a - b
r = r + 1
end
return r, -a
end
print(myDivMod(10,3))
実行結果
4 2

42デフォルトの名無しさん2019/02/05(火) 12:28:40.98ID:aE6b0ZPr
>>35 結局 整数のsqrt を作って、範囲の中に納まる最小最大の整数のsqrt を取り出し、その差(+1)がその範囲の中にある平方数の個数と言う作りにした。
ポイントとなった整数のsqrt が秀逸だったのでここに書いておく。 どんなに巨大な数字でも数回のシフト操作だけで終わるから極端にスピードが速い。
ソースは、gist.github.com/bnlucas/5879594

# integer square root
def isqrt_2(n):
 if n < 0:
  raise ValueError('Square root is not defined for negative numbers.')
 x = int(n)
 if x == 0:
  return 0
 a, b = divmod(x.bit_length(), 2)
#divmod(a, b)は(a // b, a % b)のタプルを返す。
#平方数は半分のビット数以下だからそれを最大値で計算開始
 n = 2 ** (a + b)
 while True:
  y = (n + x // n) >> 1 #1bit右にシフト
  if y >= n:
   return n
  n = y

-----------------
#結果 0.0 秒 count= 1000000000
#範囲   999999999000000000000000000000000000 1000000001000000000000000000000000000
#入力bit_length()=120 入力bit_length()=120
平方数範囲 999999999500000000 1000000000499999999
上の二乗  999999999000000000250000000000000000 1000000000999999998249999999000000001

43デフォルトの名無しさん2019/02/05(火) 12:33:09.36ID:NCwCR2JI
>>41
おしいなw

44デフォルトの名無しさん2019/02/05(火) 13:45:18.58ID:jFne2R1T
掛け算は簡単だけど除算は結構面倒
http://ideone.com/EheeYM

45デフォルトの名無しさん2019/02/05(火) 18:45:08.63ID:63VtM8MC
>>42 の isqrt_2 を使ったパフォーマンステスト。
次のようなのを継ぎ足してテストした。 例によってインデント部は全角空白に変換してるから、逆変換しないと動かない。

def isSqrt(n):
 return n == isqrt_2(n)**2

v0 = 12345678901234567890
v = v0**2 # 整数平方される対象の数値
loopc = 100000 # をこの回数繰り返す。

isqr=0
start =time.process_time()
for i in range(loopc): isqr=isqrt_2(v)
end =time.process_time()

print('#整数平方(v)の結果',end-start,'秒')
print(' 繰返し数の回数',loopc),print(),print('#v0   ',v0)
print('#v=v0**2=',v),
print('#isqrt(v)',isqr)
print('#上の**2',isqr**2)
print('対象数vのビット数',v.bit_length(),'bit')
print('vが平方数かどうかの判定',isSqrt(v))
-----
#整数平方(v)の結果 0.22398700000002236 秒
繰返し数の回数 100000

#v0    12345678901234567890
#v=v0**2= 152415787532388367501905199875019052100
#isqrt(v) 12345678901234567890
#上の**2 152415787532388367501905199875019052100
対象数vのビット数 127 bit
vが平方数かどうかの判定 True

46デフォルトの名無しさん2019/02/06(水) 11:48:35.22ID:Cmz9AyOj
>>45 同じ条件で2分探索法でやると 5.5秒かかった。

47デフォルトの名無しさん2019/02/06(水) 16:53:02.43ID:XOfzhWu4
Wikipediaに Integer square root
https://en.wikipedia.org/wiki/Integer_square_root
があり、その中の 2.1 Using bitwise operations
の二つを試してみたが、
最初のrecursive call を使った方が 1.65秒
次の方が 2.05秒

早いことは早いが、>>42 >>45 のビットシフト法の方がかなり早い。
0.22秒
gmpのisqrt は早そうだが Pythonistaでは使えないので試していない。

48デフォルトの名無しさん2019/02/09(土) 01:16:57.63ID:VrkeVQvn
>>4 そう言う記述を度々見るんだが、具体的なプログラムを提示してくれない?

49デフォルトの名無しさん2019/02/09(土) 05:46:19.68ID:ZuP9aKcb
>>48
前スレでもGMPだって紹介されてたし
https://gmplib.org/manual/Perfect-Square-Algorithm.html
https://gmplib.org/repo/gmp/file/tip/mpn/generic/perfsqr.c

実際に使われる法はビルド時生成(https://gmplib.org/repo/gmp/file/tip/gen-psqr.c)だけど大抵の32/64bitシステムの場合は書いてある通り

50デフォルトの名無しさん2019/02/09(土) 06:52:32.52ID:y7fm8J5o
なんでも放題にすればいい

お題
平方数は 256で割るとあまりの
パターンが44種類になるという。
この44種類を求める。

51デフォルトの名無しさん2019/02/09(土) 08:05:29.21ID:y7fm8J5o
放題は、お題の間違い

52デフォルトの名無しさん2019/02/09(土) 08:30:22.91ID:IKLi4q/e
python
{(x**2) % 256 for x in range(0,256)}

53デフォルトの名無しさん2019/02/09(土) 10:10:19.89ID:DhY4ZB+P
Ruby
p 0x100.times.map{|i| i*i&0xFF}.uniq.sort
# => [0, 1, 4, [...], 233, 241, 249]

54デフォルトの名無しさん2019/02/09(土) 10:33:40.76ID:O4yJeWlE
javascript
[...new Set(function*(){for(let i=0;i<256;i++)yield i*i%256}())].sort((a,b)=>a-b)

55デフォルトの名無しさん2019/02/09(土) 14:20:17.67ID:BaccQTUO
お題:ハノイの塔の最少手数は一種類しかないのか

56デフォルトの名無しさん2019/02/09(土) 14:22:34.94ID:VrkeVQvn
>>50 その44種(mod256)の中に x%256 が一致するか
python

mod256=sorted({(i**2)%256 for i in range(256)})
x=123*123
print(x%256 in mod256)
# True

これでmod の話が理解できた。 要は完全な平方数じゃないのは平方根の計算をしないと言う話ね。

57デフォルトの名無しさん2019/02/09(土) 15:28:05.40ID:1XyVHoA8
>>50 Perl5

%a = map{$_=>1} map{$_*$_%256} 0..256;
@a = keys %a;
print "@a\n";


実行結果
~ $ perl 13_50.pl | wc -w
44
$ perl 13_50.pl
137 89 161 57 1 4 100 17 36 49 121 64 68 144 201 177 65 185 16 9 193 169 129
105 196 132 25 73 249 209 33 233 225 97 41 81 241 164 145 228 217 0 153 113

58デフォルトの名無しさん2019/02/09(土) 17:42:33.15ID:1XyVHoA8
>>50 Perl5 その2

use List::MoreUtils 'uniq';
@a = uniq map{$_*$_%256} 0..255;
print "@a\n";

59デフォルトの名無しさん2019/02/09(土) 18:17:43.26ID:HLblHrgV
>>49 有難う。
python だが、
# 256, 9, 5, 7, 13, 17 97
のmodであらかじめカットしたら、5倍くらい早くなった。

因みに >>50 のお題で
mod256=sorted({(i**2)%256 for i in range(256)})

modn = lambda n:set((i**2)%n for i in range(n))
mod256 = modn(256)

では下のsetを使った方が3割くらいスピードが速かった。

60デフォルトの名無しさん2019/02/09(土) 18:57:59.38ID:luPnpF49
>>59
# 256, 9, 5, 7, 13, 17 97
なんて順番ははおかしいんじゃねと思って、
大きい順にカットしたら、更に2割以上早くなった。

61デフォルトの名無しさん2019/02/10(日) 06:54:30.87ID:qszHu1wC
>>50 J
64個の平方数を調べれば44種類のパターンはそろうようだ。
/:~ ~. 256| *: i. 64

62デフォルトの名無しさん2019/02/10(日) 12:16:48.56ID:8pY6FeJB
お題
ある数 n とする。
下位から24bit区切りの数を足し合わせてからmod 2^24-1 した数が、元の数nのmod 2^24-1 と一致することを確認しなさい。

63デフォルトの名無しさん2019/02/10(日) 12:27:09.74ID:Mq5me4ef
>>62

任意の n に対してある自然数 N, 自然数列{a_k} が存在して
n = Σ_{k = 0}^{N} a_k * 2^(24 * k) と書けるので mod 2^24 - 1 として
n = Σ_{k = 0}^{N} a_k * 1^k
= Σ_{k = 0}^{N} a_k ■

64デフォルトの名無しさん2019/02/10(日) 14:27:03.54ID:H2rtpzeI
>>59,60
256はmodじゃなくて&255を取る
確率的には大きい順じゃなくて9,97,17,13,7,5が良いのでは?
9,97,17,13,7,5でmodを取る場合、大きい数からそのままmodを取るのではなく2^48-1でmodを取った数値に対してmod
これで速度どうなる?

65デフォルトの名無しさん2019/02/10(日) 14:33:21.22ID:JrJlQQ/Q
>>63 それなんと言うプログラム?

66デフォルトの名無しさん2019/02/10(日) 14:41:11.23ID:fWGYOSi7
またこの流れ?

67デフォルトの名無しさん2019/02/10(日) 14:49:22.42ID:NRo2aHHT
mod 255にしたら遅くなるんじゃねーの
0 < n mod 255 < 254
だぞ

68デフォルトの名無しさん2019/02/10(日) 14:49:43.12ID:NRo2aHHT
0 <= n mod 255 <= 254 だった

69デフォルトの名無しさん2019/02/10(日) 15:12:41.36ID:95x0uvij
>>62 python

# n%(2**24-1) を求める
def mod224get(n):
 bn=(n.bit_length()+7)//8 #byte長
 bb=n.to_bytes(bn,'little')
 s= sum([int.from_bytes(bb[i:i+3],'little')
  for i in range(0,bn,3) ]) #24bit毎の合計
 return s%(2**24-1)

v0=12345678901234567890
#v0=0
n=v0**2
loop = 100000
print('テスト範囲は ',n,'〜',n+loop-1,'loop回数=',loop)
start =time.process_time()
for i in range(n,n+loop):
 if mod224get(n) != n%(2**24-1) :print('間違い見っけ',n)
end =time.process_time()
print('全問正解 かかった時間は、',end-start,'秒')
#
―― 結果
テスト範囲は 152415787532388367501905199875019052100 〜 152415787532388367501905199875019152099 loop回数= 100000
全問正解 かかった時間は、 0.2963889999999765 秒

70デフォルトの名無しさん2019/02/10(日) 16:02:45.96ID:8pY6FeJB
>>64 アドバイスありがとう。 それは思ったんだけど、現代の言語がそんなところで手抜きはしていないだろうと信じてテストしていなかった。

今、&255 に変えてテストしてみたけど、スピードの差はなかった。 そう言う発想は昔は非常に重要だったけど、今は言語の中で吸収してるみたいだね。

その下のアドバイスに対しては、何故ご自分では試されないのですか?

あまりやるつもりはないのは、mod 2**24-1 と言うのが理解できていないからです。 これで早くなるのなら色々試してみたいんですが、このリストを作るだけでもかなりの時間がかかりめげてます。

71デフォルトの名無しさん2019/02/10(日) 16:33:26.08ID:H2rtpzeI
>>70
剰余の順番に関しては確率がこんなんだからやで
3 / 5 = 0.600000
4 / 7 = 0.571429
4 / 9 = 0.444444
7 / 13 = 0.538462
9 / 17 = 0.529412
49 / 97 = 0.505155

テーブルは9, 97, 17, 13, 7, 5の物で良いんやで?
多倍長整数の剰余より32bit整数/64bit整数の剰余のほうが計算量が少ないから、
(32bitの場合) 2^24-1で剰余を取ったものに対して9, 17, 13, 7, 5の剰余で平方数かどうかを調べる
(64bitの場合) 2^48-1で剰余を取ったものに対して9, 97, 17, 13, 7, 5の剰余で平方数かどうかを調べる

なしてこんなことができるかってーと、
2^24-1(=16777215)の因数に5, 7, 9, 13, 17が、2^48-1(=281474976710655)の因数に5, 7, 9, 13, 17, 97含まれているからやで

72デフォルトの名無しさん2019/02/10(日) 16:55:58.44ID:8pY6FeJB
>>71 あまり深入りするつもりはないけど、mod 2**24-1 でチェックしたら、
mod 9, 97, 17, 13, 7, 5 でチェックする必要はないと言う事?

ま、数学を解いてるつもりは全くなく、プログラムの練習だからいかに沢山の人が素晴らしいプログラムを見せてくれるかにしか興味はない。
プログラムを書かない人は自分にとってはなんの意味もない。

73デフォルトの名無しさん2019/02/10(日) 17:11:01.79ID:H2rtpzeI
>>72
ちゃうねん
mod 2**24-1をした数値に対してmod 9, 17, 13, 7, 5 でチェックするねん
もしくはmod 2**48-1をした数値に対してmod 9, 97, 17, 13, 7, 5 でチェックするねん

74デフォルトの名無しさん2019/02/10(日) 19:32:43.48ID:/XsfFvRM
>> 73
2重に剰余を取るのはGMPみたく多倍長なら意味があるけど, 32/64bit固定長ならあまり意味はない
複数回剰余を確認する必要があるから多倍長から固定長(32/64bit)にしていて, 更に因数を使えば剰余を求めるための除算の代わりに乗算が使えるから因数の多い2^24 - 1や2^48 - 1を採用してる

75デフォルトの名無しさん2019/02/11(月) 00:35:41.13ID:8Hdd2FlG
>>62
ガウス少年が見出したように
Σ1,2,…,n-2,n-1=n *(n +1) /2
なので、
n の mod 2^24-1

Σ1,2,…,n-2,n-1 =n *(n +1) /2 の mod 2^24-1
が等しいのは自明だと思うけど、
そういう、ちょっとした数学を使わず
Σ1,2,…,n-2,n-1
をloopで和を算出し mod 2^24-1 して比較する
n の mod 2^24-1 と比較する
プログラムを作れという題なんだろうか…

76デフォルトの名無しさん2019/02/11(月) 00:37:45.16ID:8Hdd2FlG
>>75
「比較する」を二度書いちゃった、訂正

Σ1,2,…,n-2,n-1
の和をloopで算出し mod 2^24-1 して
n の mod 2^24-1 と比較する

77デフォルトの名無しさん2019/02/11(月) 00:57:54.78ID:HnU/OI7o
>>75 お題をよく読んだら? 24bit = 3バイト毎に取り出してその合計に対して 2**24-1 をしなさいと言う問題だよ。

数学なんて関係ない。 ただ出されたお題をプログラムで解いてくれ。

78デフォルトの名無しさん2019/02/11(月) 01:10:25.11ID:8Hdd2FlG
>>75 ごめん
Σ1,2,…,n-2,n-1=n *(n +1) /2
は間違えた。こうだ
Σ1,2,…,n-2,n-1=n *(n -1) /2

79デフォルトの名無しさん2019/02/11(月) 01:12:22.73ID:8Hdd2FlG
>>77
ゴメンなんか誤解したかも、よく読む

80デフォルトの名無しさん2019/02/11(月) 01:15:22.84ID:f+GXhEiR
ある数nのビット表記方法によって一致する/しないを答えればいいのかな

81デフォルトの名無しさん2019/02/11(月) 01:42:54.29ID:8Hdd2FlG
>>62 Perl5

use bignum (l=>GMP);
use feature say;

sub sum24 {
my $v = $_[0];
if ($v > 0) {
my $d = int($v / 2**24);
my $m = $v % 2**24; # $v - $d * $f6;
$m + sum24($d);
} else {
0;
}
}

$n = 12345678901234567890;
say $n % (2**24 -1);
say sum24($n) % (2**24 -1);


実行結果
~ $ perl 13_62.pl
13189905
13189905

82デフォルトの名無しさん2019/02/11(月) 01:47:30.91ID:8Hdd2FlG
>>81
8行目後半の#から右
# $v - $d * $f6;
は削除し忘れたcommentです スマソ

83デフォルトの名無しさん2019/02/11(月) 01:53:44.12ID:C0KPLnD/
どうみても自明なんだから確認も糞もないけどな

84デフォルトの名無しさん2019/02/11(月) 01:57:28.89ID:8Hdd2FlG
お題を作ることの難しさだよな…

85デフォルトの名無しさん2019/02/11(月) 02:15:34.48ID:HnU/OI7o
>>83 自明もへったくれもない。 プログラムが正しいかどうかの確認だよ。
プログラムも書かないで能書きだけ垂れてもなんの足しにもならない。 ここはプログラムのお題スレだよ。

>>62 のお題は前スレのGMP の整数平方根の説明の文章の中から取り出したもの。
つまり、ここまでできると、次は n**2%(2**24-1) のリストを作れと言うお題になるんだろうけど、時間がかかりすぎるからお題にするのはやめた。
このリストができないと実際の平方数の高速チェックが出来ないじゃん。

86デフォルトの名無しさん2019/02/11(月) 02:26:56.38ID:8Hdd2FlG
そんな怒るなよ。
暖かくしてぐっすりお休みよ

87デフォルトの名無しさん2019/02/11(月) 02:31:44.77ID:HnU/OI7o
しかしここまで複雑な処理をして本当に早くなるのかどうか疑問だけどな。 mod 2**24-1 って結構時間がかかりそうな気がする。

88デフォルトの名無しさん2019/02/11(月) 02:35:42.19ID:ucqIUq+7
>>85
一番能書き垂れてんのお前だろ
クソみたいな御託並べる前に自分のことを考えろっつったろうが

GMPが一体どこで
> n**2%(2**24-1) のリスト
なんか使ってんだ?91で割った場合のテーブルでさえ12byte必要だってのにどうやってそんな巨大なテーブル用意するんだ?
GMPの中身なんか数学の成果の塊だぞ?お前が数学したくないだか出来ないだか知らんがアルゴリズム考えるようなスレでクソみたいなこと喋ってんじゃねぇよ
お前はコードを書いても価値がない

89デフォルトの名無しさん2019/02/11(月) 02:35:55.83ID:8Hdd2FlG
単なるbitmaskで済まない様な場合
あるいは除算して剰余を求めるなら
さんざ研究されていると思うから自力で1から考える前に
先人の業績を知れってことだろ
アバヨ ノシ

90デフォルトの名無しさん2019/02/11(月) 02:36:00.30ID:IhaR3BEX
お題:ポーカーダイス

通常のサイコロを5個振って出た目をポーカーの役になぞってそれぞれの出現確率を求める。
役は、5カード、4カード、ストレート、フルハウス、3カード、2ペア、1ペア、ブタ(ノーペア)
例えば出た目が 1,1,3,1,4 ならスリーカード。2,5,4,6,3 ならストレート。
5カードは6/(6^5)、4カードは(5*5*6)/(6^5)というように数学的に
求めても難しくはないのですが、ここはプログラミングのスレなので
全通り力技でチェックして求めてみてください。

解答例:C言語 https://ideone.com/4X62Am

91デフォルトの名無しさん2019/02/11(月) 03:04:24.50ID:8Hdd2FlG
6^5総当りせよってか…
native compiler系言語で力技か

92デフォルトの名無しさん2019/02/11(月) 03:20:03.89ID:K/18SmCD
Jニキはよ

93デフォルトの名無しさん2019/02/11(月) 03:29:32.98ID:ucqIUq+7
大した数じゃないからズルいことが出来る
https://ideone.com/yEcdPV

94デフォルトの名無しさん2019/02/11(月) 04:00:05.29ID:8Hdd2FlG
お なかなか

95デフォルトの名無しさん2019/02/11(月) 08:16:46.17ID:b3B7Bg4u
python3
https://ideone.com/k6Ea4j

最後の出力部分はpython 3.6以降だと
for k,v in hand.items(): print("{} :\n {} / 7776 ({} %)".format(k,v, round(100*v/7776,2)))
でいけるけど実行環境が3.5なのでやむなく

96デフォルトの名無しさん2019/02/11(月) 16:44:30.42ID:xTuBWJbc
なんか数学でもできる力技お題増えてきたな
もっとプログラミングじゃないとできないような良いお題無いんだろうか

97デフォルトの名無しさん2019/02/11(月) 17:22:02.16ID:7gZS39yo
>>96
そんなの存在しないんじゃない?

98デフォルトの名無しさん2019/02/11(月) 17:28:00.80ID:6aFdKLEP
確率の問題でも特定の疑似乱数と種を使った偏りを求めるとかは数学では難しい

99さまよえる蟻人間 ◆T6xkBnTXz7B0 2019/02/11(月) 17:37:44.75ID:adj8EvAq
お題: 日本語文字とカッコ { } とスラッシュ(/)で構成された入力文字列Sが与えられる。{ }で囲まれ、かつ
スラッシュで区切られた部分文字列について、それぞれ場合分けを行って、複数の文字列のリストに展開して改行区切りで出力せよ。
カッコの対応が間違っている場合はERRORを出力せよ。

(例1) {ひまわり/あさがお}は{植物/花}です。
(出力結果)
ひまわりは植物です。
あさがおは植物です。
ひまわりは花です。
あさがおは花です。

100さまよえる蟻人間 ◆T6xkBnTXz7B0 2019/02/11(月) 17:59:47.38ID:BEdrdhIs
なお、展開の順序については問わない。カッコがなくなるまで繰り返し展開せよ。

101さまよえる蟻人間 ◆T6xkBnTXz7B0 2019/02/11(月) 18:20:25.29ID:BEdrdhIs
(1) {あ{いう/え}/お{か/き}/く}け{こ}
(2) さ{し/す}せそ{{た/ち}つ/て}と

102デフォルトの名無しさん2019/02/11(月) 19:00:31.50ID:MkFOBvt9
ネストありかよ、ちょっと面倒だな

103さまよえる蟻人間 ◆T6xkBnTXz7B0 2019/02/11(月) 19:03:55.20ID:BEdrdhIs
ヒント: まず、適当な場所でブツ切りにしてノードに分ける。

104デフォルトの名無しさん2019/02/11(月) 19:20:26.84ID:Q78+FEDq
>>101 で、どう言う結果を正解とするの?

105さまよえる蟻人間 ◆T6xkBnTXz7B0 2019/02/11(月) 19:32:34.31ID:BEdrdhIs
(1)の答え(※ソート済み)
あいうけこ
あいうけこ
あえけこ
あえけこ
おかけこ
おかけこ
おきけこ
おきけこ
くけこ
くけこ
くけこ
くけこ

106さまよえる蟻人間 ◆T6xkBnTXz7B0 2019/02/11(月) 19:33:13.25ID:BEdrdhIs
(2)の答え(※ソート済み)
さしせそたつと
さしせそちつと
さしせそてと
さしせそてと
さすせそたつと
さすせそちつと
さすせそてと
さすせそてと

107デフォルトの名無しさん2019/02/11(月) 19:36:37.18ID:MkFOBvt9
これでいいのか?

> (1) {あ{いう/え}/お{か/き}/く}け{こ}
あ いう け こ
あ え け こ
お か け こ
お き け こ
く け こ

> (2) さ{し/す}せそ{{た/ち}つ/て}と
さ し せそ た つ と
さ す せそ た つ と
さ し せそ ち つ と
さ す せそ ち つ と
さ し せそ て と
さ す せそ て と

108デフォルトの名無しさん2019/02/11(月) 19:37:56.93ID:MkFOBvt9
あれ?
変化しないケースも出力するの?

109さまよえる蟻人間 ◆T6xkBnTXz7B0 2019/02/11(月) 19:40:50.96ID:BEdrdhIs
>>107
間違い。

110さまよえる蟻人間 ◆T6xkBnTXz7B0 2019/02/11(月) 19:46:19.44ID:adj8EvAq
ごめんなさい。間違えました。重複は単一化して下さい。

111さまよえる蟻人間 ◆T6xkBnTXz7B0 2019/02/11(月) 19:52:58.89ID:adj8EvAq
>>105-106 >>109 間違い。

112さまよえる蟻人間 ◆T6xkBnTXz7B0 2019/02/11(月) 20:21:24.27ID:BEdrdhIs
単純に場所分けを樹木図で考えると重複ができるようだ。すみません。

113デフォルトの名無しさん2019/02/11(月) 20:48:49.82ID:uHNor3GB
お題:Aが真であるならばBが真である ことをプログラムしなさい。

114さまよえる蟻人間 ◆T6xkBnTXz7B0 2019/02/11(月) 21:04:41.39ID:BEdrdhIs
アホちゃいまんねん、パーでんねん。

115デフォルトの名無しさん2019/02/12(火) 00:09:52.31ID:VqanzRzk
バカなのか?AとBに因果関係があるわけじゃないし、この世の全てがプログラム言語でマッピングできるわけじゃない、数学徒は帰れ

116デフォルトの名無しさん2019/02/12(火) 00:29:24.58ID:xM7yD0R2
const A = true;
const B = A === true ? true : false;
console.log(B);

117デフォルトの名無しさん2019/02/12(火) 01:58:51.98ID:ww6cDCbZ
>>113
If A = True Then
B = True
End if

118デフォルトの名無しさん2019/02/12(火) 01:59:52.12ID:/350tEey
>>113
!A&&B

119デフォルトの名無しさん2019/02/12(火) 02:31:32.61ID:qK/pLy4w
>>118 python
B = A

120デフォルトの名無しさん2019/02/12(火) 02:31:55.89ID:qK/pLy4w
>>113 の間違い

121デフォルトの名無しさん2019/02/12(火) 02:52:28.28ID:jwrsqhME
{あ{いう/え}/お{か/き}/く}けこ
 あいうけこ
 あえけこ
 おかけこ
 おきけこ
 くけこ

さ{し/す}せそ{{た/ち}つ/て}と
 さしせそたつと
 さしせそちつと
 さしせそてと
 さすせそたつと
 さすせそちつと
 さすせそてと

122デフォルトの名無しさん2019/02/12(火) 07:13:30.28ID:WW36R8Qd
>>113
> Bが真である
をどう解釈するかによる
文字通りの解釈なら
If A Then Assert(B)
かな
Bを真にすると解釈するなら>>117が正解かな
>>116>>119はAが偽の時にBを偽にしちゃうので誤りやね

123デフォルトの名無しさん2019/02/12(火) 09:01:25.53ID:eC1lEXzI
>>117も間違い。偽のときは未定義なんだからエラー吐かなきゃ

124デフォルトの名無しさん2019/02/12(火) 10:15:35.66ID:EWuoyvxz
未定義じゃねえだろアホ

125デフォルトの名無しさん2019/02/12(火) 10:18:36.24ID:eC1lEXzI

126デフォルトの名無しさん2019/02/12(火) 10:38:38.54ID:/lUdPPCt
Aが偽の時はエラー吐かなきゃいけないとかBを偽にしてはいけない
とかいうのは勝手な拡大解釈でしかない

127デフォルトの名無しさん2019/02/12(火) 10:45:59.39ID:dUnMTtNo
真面目に考えるだけ時間の無駄

128デフォルトの名無しさん2019/02/12(火) 11:03:54.75ID:8L309PqZ
>>125
アホかお前
AならばBでAが偽ならばそれは真だっつーの
義務教育からやり直せよ

129デフォルトの名無しさん2019/02/12(火) 11:18:15.32ID:eC1lEXzI
>>128
> AならばBでAが偽ならばそれは真だっつーの

えっ、どういうことなの?
それは
AならばB
のとき
AでないならばB
ということ?
BはAに関わらず真ということ?

> AならばBでAが偽ならばそれは真だっつーの

の意味がよくわからん…

130デフォルトの名無しさん2019/02/12(火) 11:29:33.12ID:dUnMTtNo
>>129
論理としては A => B (AならばB)は対偶論理 ¬B => ¬A (BでないならばAでない)を成り立たせるために通常 ¬A∨B (AでないかまたはBである) で定義される
つまり A => B という論理式は A が偽であれば B の真偽に依らず真になる

だから何だという話ではある

131デフォルトの名無しさん2019/02/12(火) 11:30:20.12ID:7Ldk0kbC
>>129
そう決まってるじゃん
前提が偽ならどんな推論でも導けるし真になる
論理学の初歩

132デフォルトの名無しさん2019/02/12(火) 11:36:13.30ID:puzbyhsI
AならばBと
Aが真ならばBが真
とは違うだろ

133デフォルトの名無しさん2019/02/12(火) 11:43:29.03ID:puzbyhsI
「AならばB」
と言う命題は
「Aが真でBが真である
Aが偽であればBは真である」という命題の
上の文の3行目のはじめの部分をプログラムしろということだぞ

134デフォルトの名無しさん2019/02/12(火) 11:45:33.01ID:puzbyhsI
4行目間違えた

135デフォルトの名無しさん2019/02/12(火) 12:10:48.64ID:2r3VUiS2
A: 自然数 : 1,2,3,・・・・・
B: 整数  : ・・・・・ , -2,-1,0,1,2,3,・・・・・

AならばBである
AでなければBでもない
BでなければAでもない

136デフォルトの名無しさん2019/02/12(火) 12:11:50.75ID:/o8EBvgR

137デフォルトの名無しさん2019/02/12(火) 12:12:39.52ID:2r3VUiS2
>>135 間違い
A: 自然数 : 1,2,3,・・・・・
B: 整数  : ・・・・・ , -2,-1,0,1,2,3,・・・・・

AならばBである
Aでなければ不定
BでなければAでもない

138デフォルトの名無しさん2019/02/12(火) 12:31:09.58ID:eC1lEXzI
>>130
ありがとうこれは分かりやすい。
高校出てないけど義務教育は真面目にやったんだがなぁ…こんなのあったっけ?

139デフォルトの名無しさん2019/02/12(火) 12:36:07.27ID:puzbyhsI
そういうことは日本の教育問題になるからな

140デフォルトの名無しさん2019/02/12(火) 12:42:53.41ID:YxhBMJOC

141デフォルトの名無しさん2019/02/12(火) 12:43:36.37ID:YxhBMJOC

142さまよえる蟻人間 ◆T6xkBnTXz7B0 2019/02/12(火) 12:47:20.67ID:cy1s3mXO
>>136
よくできました。

お題: ひらがなで与えられた五段活用動詞の五段活用を表示しなさい。
明らかに五段活用動詞でない場合は、ERRORと表示しなさい。

143デフォルトの名無しさん2019/02/12(火) 13:39:39.30ID:dUnMTtNo
>>138
義務教育ではやらない
というか高校数学でも明示的に教えはしない(証明ではしばしば暗に使う)
そして大学の数学科では何をおいてもまず最初に学ぶ

144デフォルトの名無しさん2019/02/12(火) 14:05:55.07ID:/4hrfCEw
ゆとり以降は知らんが高校で習ったぞ

145デフォルトの名無しさん2019/02/12(火) 14:14:27.12ID:eC1lEXzI
高校が義務教育なら俺も高校行けたのに

146デフォルトの名無しさん2019/02/12(火) 16:12:20.21ID:MCXQbCzx
>>145
必要な感じがするのであれば高認受けて高卒と同等にでもなりなさい。昔の大検と違ってそれだけでも高卒扱いになる。
その後大学行くかどうかはご自由に。金と時間があまりないなら通信制ってのもあるよ。
この頃はネットの大学もあるな。よく知らんけど。

まあしかし既に社会人になって何十年も稼いできてしまった人の場合はもはやどうでも良い話かな。

147デフォルトの名無しさん2019/02/12(火) 17:14:44.20ID:AqcDbyue
>>138 理解したいと思った気持ちが大事。深入りの必要はない。

プログラムの世界というのは、客のニーズを知らなくてもなんでも解決しないといけないから、その時々で勉強するしかない。 実践の世界。
素地がある方が理解は早いとは思うが、気にすることは無い。

その時に必要なものを勉強すれば(理解できれば)良い。 全ての学問を習得するなんて不可能なんだから、学問なんてあまり気にしない方が良い。

ただ、論理的な思考訓練はやった方が良いとは思うが、大学でできるとは思わない方が良い。 ひたすらプログラムを続けた方が思考訓練になると思うぞ。

148デフォルトの名無しさん2019/02/12(火) 17:34:27.64ID:AqcDbyue
>>113 しかしさ、この日本語は日本語として成り立っていないんじゃないの?
日本語としても論理学としても
日本語の曖昧さを残したまま、お題にする方がおかしい。

これを自分の顧客に提示して見なさい。 バカじゃないのと言われるよ。 理解力がないと思われるだろうな。

149デフォルトの名無しさん2019/02/12(火) 18:50:16.09ID:zaXjz+ge
説教厨あらわる

150デフォルトの名無しさん2019/02/12(火) 19:11:01.53ID:Rw1aIHZT
>>132
その2つの意味後違うって言うならそうなるセマンティクスを提示してみせろや
「普通は」同等に扱うだろ

151デフォルトの名無しさん2019/02/12(火) 19:12:14.58ID:Rw1aIHZT
>>150
意味後違う → 意味が違う

152デフォルトの名無しさん2019/02/12(火) 19:59:08.96ID:mxj4fC0D
チコ 「A->Bの意味も知らずにボーっとコードかいているんじゃねよ!」

153デフォルトの名無しさん2019/02/12(火) 21:33:58.92ID:4uAoJeXz
>>99 Ruby
def hoge(str)
  return str if str.match?(/\A[^{}\/]*\z/)
  raise 'ERROR' if str.match?(/\A[^{]*}|{[^}]*\z/)
  a, *b = str.scan(/(?<={|\A)[^{}]*(?=}|\z)/).map{|s| s.empty? ? [''] : s.split(?/)}
  s = str.gsub(/(?:{|\A)[^{}]*(?:}|\z)/, '%s')
  a.product(*b).flat_map{|e| hoge(s % e)}.uniq.sort
end

%w[
  {あ{いう/え}/お{か/き}/く}け{こ}
  さ{し/す}せそ{{た/ち}つ/て}と]
].each{|s| puts hoge(s), $/}
# =>
あいうけこ
あえけこ
おかけこ
おきけこ
くけこ

さしせそたつと
さしせそちつと
さしせそてと
さすせそたつと
さすせそちつと
さすせそてと

154 ◆QZaw55cn4c 2019/02/12(火) 22:11:55.07ID:afakhEje
>>133
>「Aが真でBが真である
>Aが偽であればBは真である」

完璧に間違っていますね…Aが偽であってBが偽であってもいいのです
あなた、もう馬鹿としかいいようがないですね、論理学の教科書が読めなかったの?いや、日本語が読めなかったの?
生きていること自体が罪悪といわずして何といえばいいのか…

死ね

155 ◆QZaw55cn4c 2019/02/12(火) 22:13:32.20ID:afakhEje
>>132
一緒ですよ

156デフォルトの名無しさん2019/02/13(水) 05:57:47.09ID:ttYQgqMy
お題
print(a)
のように変数の宣言や代入なしで
使用するとどうなろか

157デフォルトの名無しさん2019/02/13(水) 07:02:03.53ID:Xe5jZGpg
>>156
日本語でok

158デフォルトの名無しさん2019/02/13(水) 07:39:48.48ID:aN9MpGEF
EXCELシート名が1文字のシートが数シートある。これをwindows10でVB6を使いデータベースで読み取ってみせよ。

159デフォルトの名無しさん2019/02/13(水) 08:26:40.04ID:ds2YQTN5
>>154
だから>>134で4行目間違えたって書いてあるだろ
よく読め

160デフォルトの名無しさん2019/02/13(水) 08:38:42.75ID:ds2YQTN5
>>155
AならばBと
Aが真ならばBが真
が同じならば
AならばBと
Aが偽ならばBが真
と同じ
AならばBと
Aが偽ならばBが偽と
同じ
ということになるぞ?
これは同じじゃないから君の言ってることは
間違ってるということだな

161デフォルトの名無しさん2019/02/13(水) 08:43:59.85ID:ds2YQTN5
よく考えたらやっぱり同じだな

162デフォルトの名無しさん2019/02/13(水) 09:12:06.89ID:B8qJWD6e
>>160
糞コテの肩は持ちたくないがなんだこのくっそみたいな日本語は

「AならばB」と「Aが真ならばBが真」が同値ならば
「AならばB」と「Aが偽ならばBが真」と「Aが偽ならばBが偽」が同値
って言いたいのか?

同値になるわけねえだろ
ABの真偽は4パターンしかねえんだから、いくらお前が無能でも全4パターンくらい考えてからレスしろよ

大体、任意の命題Pに対して「P」と「Pは真である」が同値にならないケースってなんだよ
馬鹿も休み休み言えよホント

163デフォルトの名無しさん2019/02/13(水) 11:03:26.26ID:ds2YQTN5
>>162
>>161に「よく考えたら同じだな」って書いてあるじゃん

164デフォルトの名無しさん2019/02/13(水) 11:23:09.04ID:B8qJWD6e
「よく考えたらやっぱり同じだな」だけでは何と何が同じだと思ったのかわからない
悪びれた様子もなく前後の文脈からも推論不可
とてもまともとは思えない

165デフォルトの名無しさん2019/02/13(水) 11:31:27.70ID:ds2YQTN5
>>164
わかりにくくてごめんね

166デフォルトの名無しさん2019/02/13(水) 11:36:53.06ID:ttYQgqMy
>>156 Lua
print(a)
実行結果
nil

167デフォルトの名無しさん2019/02/13(水) 11:59:11.28ID:kZE3tAhm
言語とか使えるライブラリとか制限しないと
意味が無くなっている希ガス
言語指定した場合でも特定の文法を使っては
ならないとか制限加えると面白いものが
出来るような,,,

168デフォルトの名無しさん2019/02/13(水) 12:32:49.57ID:B8qJWD6e
>>165
お前の場合、わかりにくいんじゃなくてわかりえないの
日本語もおかしいし

169デフォルトの名無しさん2019/02/13(水) 12:36:48.35ID:ds2YQTN5
>>168
俺の文が不親切すぎたよな
ごめんねごめんねー

170デフォルトの名無しさん2019/02/13(水) 13:30:26.24ID:0cDEleYh
>>167 制限なんかしなくてよいよ。 ライブラリが嫌いならあまりライブラリが使えそうにないお題を出せばよいだけだし。
例えば正規表現ライブラリなんて装備されていない言語は殆どないだろうし、標準装備している言語とそうでない言語で不公平になるし。
使えるものはすべて駆使して解けばよいだろ。

171デフォルトの名無しさん2019/02/13(水) 15:40:07.94ID:0cDEleYh
>>113 python
if A: B=A

結果
Aが True の時 B(結果)= True
Aが False の時 B(結果)= None (変わらず)
Aが False の時 B(結果)= False (変わらず)
Aが False の時 B(結果)= True (変わらず)

172デフォルトの名無しさん2019/02/13(水) 18:13:27.57ID:ttYQgqMy
>>113 Lua
functio naraba(A, B)
if A == B then
return true
else
return B
end
end

173デフォルトの名無しさん2019/02/13(水) 18:26:24.24ID:J6DmHrNb
>>172 それちゃうよ。
A が False の時 B がFalseに限定される

174デフォルトの名無しさん2019/02/13(水) 18:27:28.53ID:J6DmHrNb
と言うか何を返してるんだろ。

175デフォルトの名無しさん2019/02/13(水) 19:13:38.60ID:ayAZ2qec
>>156
C言語のようなコンパイルする言語だとだいたいはコンパイル時にエラーになって実行不能だろうなあ(そうでない言語もあるかも知れないが)。
更に print がない言語もある。少なくともCの標準的なライブラリにはない。printf()やputs()のようなものはある。
なので変数宣言すればコンパイルは通るが今度はリンクで関数が見つからなくてエラーになりこれまた実行不能。

まあでも言語や環境で起こることは違って来るので答えは沢山出てくるかも知れない。(またはほとんど相手にされないかだ)。

176デフォルトの名無しさん2019/02/13(水) 21:01:39.06ID:7GscGWa9
お題
長方形のサイズが指定された時、その長方形に敷きつめられるパターン全て列挙
回転もおkかは好きに定めていい
例: 2 3
#

###

#
#

###
###

177デフォルトの名無しさん2019/02/13(水) 21:10:56.19ID:9nMuJOxB
回転もOKの場合は↓も入るってことかの?

##
#

178デフォルトの名無しさん2019/02/14(木) 00:46:56.24ID:QGThOkDI
>>176 なんか図が良くわからないな。

2 x 3 なら、そのパーツは, / は空きだとすると


*//
***

/**
――-
*//
*//

/**
/**
―――
*//
**/

/**
//*
――
***
***
――-
みたいな感じかな。パーツの回転を許す許さないは自由という事。
3 x 3 の時は斜めのパーツも許すんだろうね。
*//
/*/
//*
これが一つのパーツ?

179デフォルトの名無しさん2019/02/14(木) 00:50:00.40ID:QGThOkDI
>>178 斜めのパーツは現実的には作れないし、組み合わせが膨大になるから、許さない方が良いのかも。
縦、横に繋がっていないパーツは除外かな。

180デフォルトの名無しさん2019/02/14(木) 01:06:21.81ID:QGThOkDI
これはかなり難しいお題になるんじゃないの。
パーツを少なくするためには、穴開きパーツも許さない方が良さそうだし。

パーツは、空白は 0 基本図形は 1として表した方が良いのかな。 2 x 3 なら

100
110

011
001
とか

181デフォルトの名無しさん2019/02/14(木) 01:48:31.30ID:anuIpNjB
>>178
同じ形のパーツだけで指定の長方形に敷き詰められる物を探すんじゃろ

182一尾圭吾2019/02/14(木) 02:36:27.51ID:ODX5iexG
プログラミング超初心者です
自動で2ちゃんにコピペを書き込むようになりたいんですがそれってかなりレベル高いスキルですかね?

183一尾圭吾2019/02/14(木) 02:39:09.40ID:ODX5iexG
>>10うわぁww眉毛剃っとるwwwwww
流石やな....ヤクザやんw

184デフォルトの名無しさん2019/02/14(木) 05:27:21.29ID:6Gfgc+2u
>>150
三値論理

185デフォルトの名無しさん2019/02/14(木) 06:52:51.05ID:J1vF692V
論理プログラムのスレはありませんか?

186デフォルトの名無しさん2019/02/14(木) 08:13:17.60ID:anuIpNjB
>>176
回転なしなら縦の長さの因数と横の長さの因数それぞれの組み合わせの四角を列挙すればええんよな?
回転ありだとどうすればええんじゃろ

187デフォルトの名無しさん2019/02/14(木) 08:52:55.94ID:QGThOkDI
>>176 必要なパーツの種類と個数を出せば良いんだろう。
回転させて使おうがどうしようが自由。

188デフォルトの名無しさん2019/02/14(木) 09:41:08.57ID:9tQDIG7c
>>178
パターン全てって書いてあるから単に 2^ドット数 だと思ってたんだが、人間が見た時に何らかの意味がありそうなパターンって事なの?
しかし何に意味がありそうと感じるかは主観の問題だからここでのお題としては適切ではないよね。

189デフォルトの名無しさん2019/02/14(木) 10:37:38.67ID:zlobX1y6
>>188
アホかお前

190デフォルトの名無しさん2019/02/14(木) 11:47:38.28ID:E3VWek4W
>>156 R
cat(a)

Error in cat(a) : object 'a' not found
Execution halted

191デフォルトの名無しさん2019/02/14(木) 11:52:48.67ID:rq9LAi9f
パーツの対称性を見るくらいしかなさそうだけどなぁ

90度回転で不変ならパーツ自体が正方形の場合しか充填し得ないし180度回転で不変なら長方形しかない
問題は対称性なしの場合で, 回転で得られる4通りの図形の組み合わせで少なくとも適当な長方形が作れる必要がある。

192デフォルトの名無しさん2019/02/14(木) 12:23:18.44ID:4UGy3YJR
出題者です、同じ1種類のパーツのみで敷き詰めるのを意図してた
回転なしは因数でおk、有りは一応解法は浮かんだが証明詰めきれなかったので好きに定めて良いって書いた

193デフォルトの名無しさん2019/02/14(木) 12:26:41.67ID:9tQDIG7c
>>189
じゃあどう解釈すれば良いのか?

194デフォルトの名無しさん2019/02/14(木) 12:30:54.48ID:9tQDIG7c
>>192
相変わらず問題がよくわからんよ。

195デフォルトの名無しさん2019/02/14(木) 12:50:46.70ID:QGThOkDI
>>192 2x3 の時は、1種類のパーツのみで埋めるとすると

111
111
の時は 111 x2個
1,1,1
1,1,1
の時は 1,1(2段) x3個

11,1
1,11
の時は 110,100(2段) 2個とするのか
11 が 2個と 1 が2個 は2種類のパーツだからダメ?

196デフォルトの名無しさん2019/02/14(木) 13:04:00.12ID:QGThOkDI
>>195 90度回転を認めると、11が、3個で良いね。

回転なしなら、111 2個と 1が6個
1
1
2段のパーツが3個
の3種類が解?

197デフォルトの名無しさん2019/02/14(木) 13:09:44.77ID:zlobX1y6
上でもう出てんだろ
回転なしなら辺の約数の組み合わせで全部だっつーの

198デフォルトの名無しさん2019/02/14(木) 13:44:03.89ID:icHgtaXf
ヤング図形考えて終わりじゃねえのコレ

199デフォルトの名無しさん2019/02/14(木) 13:56:13.92ID:iDdALKjs
abcd
badc

abab
cdcd

aaba
babb

abbb
aaab

同じパターンで埋めるのって色々できそうだけどこういうの全部いいの?

200デフォルトの名無しさん2019/02/14(木) 18:55:26.99ID:PxTMiczy
>>199 それ何種類も使ってるじゃん。
最低何れかの縦横が連続していないとダメだろ。 パズソーのピースじゃないの?
先ずは2x3で1種類のパーツのみで探せという問題の回答を決めてほしい。

201デフォルトの名無しさん2019/02/14(木) 19:04:40.56ID:iDdALKjs
いや全部一種類だよ
マスがくっついてないだけで
連続してるとは書かれてなかったし

202デフォルトの名無しさん2019/02/14(木) 19:56:54.06ID:IkVUbwNW
お題を正しく理解できてない模様 >>176をもう1度確認
1つ目の#は6個、2つ目の###は2個、
3つ目の#    4つ目の###
   #は3個、    ###は1個で2行3列が全て埋まります

203デフォルトの名無しさん2019/02/14(木) 20:35:35.28ID:0TijawxO
>>210
例えば、 最初の基本バーツは何? どうしてこれが1種類なのかな?

abcd
badc

-----|

204デフォルトの名無しさん2019/02/14(木) 20:45:00.72ID:0TijawxO
>>202 全く理解できない。
>>176 はどうして一つ目が6個なのかな? 1個しかないじゃん?
一つ目って何? 二つ目って何?

プログラミングのお題スレ Part13 	YouTube動画>1本 ->画像>15枚

自分が今見てるのは、iPhone BB2C

205デフォルトの名無しさん2019/02/14(木) 20:54:16.99ID:RyxU72PZ
回答の良し悪しだけじゃない、良問悪問ってあるよね…

206デフォルトの名無しさん2019/02/14(木) 21:20:53.44ID:IkVUbwNW
>>204

1つ目の #   は6個で2行3列が全て埋まります

###
###


2つ目の ### は2個で2行3列が全て埋まります

###
###


3つ目の #
     #   は3個で2行3列が全て埋まります

###
###


4つ目の ###
     ### は1個で2行3列が全て埋まります

###
###

207デフォルトの名無しさん2019/02/15(金) 01:14:00.78ID:Ap6BYDwO
>>203
回転を許す立場なら
@_
_@
って言うパーツ一種類だけからできてんじゃん
頭大丈夫か?

208デフォルトの名無しさん2019/02/15(金) 01:38:17.60ID:nnYj1Xkq
>>207 b と d が同じに見えるそっちこそ頭大丈夫か?

abcd
badc

これのどこが、
--@
@―

なんだよ。

209デフォルトの名無しさん2019/02/15(金) 02:40:42.39ID:YMyZWZCa
90度回転ありなら
#     #   #     #
 # と #  と  # と # 
で敷きつめられる(=全て埋まる)という意味だろうけど
>>179に抵触するので、これは無しでしょ

210デフォルトの名無しさん2019/02/15(金) 06:13:53.42ID:hXoOelh0
>>208
回転を許すっつってんだろ氏ねよ糞無能が
@_
_@
を90度回転させたら
_@
@_
だろうが
市ね糞野郎

211デフォルトの名無しさん2019/02/15(金) 08:54:29.71ID:nnYj1Xkq
>>209 ようやくわかった。
a_
_a
_b
b_
などと並んでるものは、全て同じパーツとみなすという意味か。

>>176 のお題をよく見ると、2 x 3 の正解の回答が書かれてる。 斜めは許していないからダメだろ。
また、回転も許していない。
回転を許すなら

■ ■
というパーツも入るがそれは除外されてるから、回転も無しだ。

212デフォルトの名無しさん2019/02/15(金) 10:38:13.03ID:NxGjA/1R
>>199のような飛び飛びのパターンまで含めると5x5くらいのサイズなら解けそうでも
10x10くらいの大きさになるとほぼ解けなくなるか?

213デフォルトの名無しさん2019/02/15(金) 11:04:50.72ID:bh7l703i
...
d0<-a
a->b
b->c
c->d
c'<-d
b'<-c'
a<-b'
d->a2
d<-a2
a2->b2
....
に対して
任意の英数字から初めて右向きの矢印をnこ進んだ英数字を一瞬で割り出す簡単な計算方法を教えろ
左向きの矢印のときも答えろ
ここで英数字には好きな整数の値を対応させろ

214デフォルトの名無しさん2019/02/15(金) 11:10:32.09ID:bh7l703i
自己解決しました
この問題には答えなくていいです

215デフォルトの名無しさん2019/02/15(金) 11:21:16.25ID:bh7l703i
新問題
...
g0<-a
a->b
b->c
c->d
c'<-d
b'<-c'
a<-b'
d->e
e->f
f->g
f'<-g
e'<-f'
g->a1
g<-a1
a1->b1
....
に対して
任意の英数字から初めて右向きの矢印をnこ進んだ英数字を一瞬で割り出す簡単な計算方法を教えろ
左向きの矢印のときも教えろ
ここで英数字には好きな整数の値を対応させろ

216デフォルトの名無しさん2019/02/15(金) 11:22:43.57ID:bh7l703i
訂正
d<-e'
追加で

217デフォルトの名無しさん2019/02/15(金) 11:45:59.15ID:446NzcaO
日本語で書けや

218デフォルトの名無しさん2019/02/15(金) 11:55:27.68ID:bh7l703i
自己解決しました
この問題には答えなくていいです
>>217
これからは英語で書くので許して下さい

219デフォルトの名無しさん2019/02/15(金) 12:34:22.87ID:fQG3bb7R
自己解決ってどういうこと?
宿題貼ってるの?

220デフォルトの名無しさん2019/02/15(金) 12:41:19.85ID:bh7l703i
俺はキチガイだから相手にしないほうが良い

221デフォルトの名無しさん2019/02/15(金) 12:43:47.27ID:JRF4Gyvi
わけのわからん問題が続くなあ・・・

222デフォルトの名無しさん2019/02/15(金) 17:27:20.42ID:DyMjpctN
>>211
> 回転もおkかは好きに定めていい

223デフォルトの名無しさん2019/02/16(土) 02:08:44.97ID:3MiMTZ5E
しかしこの問題は回転を考えないと、曲がったパーツは不可能だね。
かなり単純化される。

224デフォルトの名無しさん2019/02/16(土) 02:11:07.89ID:vjYPWj7f
なんかスレが新しくなってから湧いてきたPythonのクソみたいなコード連投してる日本語がめちゃくちゃのやつうざい

225デフォルトの名無しさん2019/02/16(土) 02:16:11.76ID:bRo2S9Sl
前スレから居るんですよそいつね

226デフォルトの名無しさん2019/02/16(土) 02:35:08.75ID:zutWNq0P
2行3列で回転無しなら以下の4つが答え

#

###

#
#

###
###

回転ありなら更に以下の2つも

##
#

#
##

227デフォルトの名無しさん2019/02/16(土) 07:00:03.49ID:wpb3vJTT
>>226
> ##
> #
>
> #
> ##
この二つは90度回転した同じものやが

228デフォルトの名無しさん2019/02/16(土) 09:56:41.50ID:3oducOde
煽りではなく本当に発達障害またはそれに準ずる知的ボーダーを疑うレベルで頭悪いな

229デフォルトの名無しさん2019/02/16(土) 10:48:56.77ID:3MiMTZ5E
>>228 煽りじゃん。 プログラムを出してくれた方が良い。

230デフォルトの名無しさん2019/02/16(土) 12:54:53.60ID:8ZVYBrON
お題:バブルソートを実装せよ

231デフォルトの名無しさん2019/02/16(土) 15:04:36.49ID:PD6v+6Vh
>>230 Perl5
use feature qw{current_sub say};

sub bblsort {
for (0..@_) {
sub {
if (@_ >= 2) {
__SUB__->(@_[1..$#_]);
($_[1], $_[0]) = ($_[0], $_[1])
if $_[0] > $_[1]
}
}->(@_[$_..$#_]);
}
}

use List::Util shuffle;
@a = shuffle 1..20;
say "1) @a";
bblsort @a;
say "2) @a";

実行結果
~ $ perl 13_230_bblsort.pl
1) 13 6 18 7 15 1 11 8 20 16 14 4 9 10 12 17 2 19 5 3
2) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20

232デフォルトの名無しさん2019/02/16(土) 16:42:44.41ID:hxDCwUVz
お題:数値Xを4つの方法で整数に丸めよ
(1) 0に向かう
(2) 0から遠ざかる
(3) 正の無限大に向かう
(4) 負の無限大に向かう


X = 0.5
=> 0 1 1 0

X = -1.1
=> -1 -2 -1 -2

X = 3
=> 3 3 3 3

233デフォルトの名無しさん2019/02/16(土) 16:47:26.55ID:akVlWGeE
ふたたび、円の内部の整数点を求めるやつ。個数ごとその最小半径を求める。
41個、47個とかが難し目だった気が。

234デフォルトの名無しさん2019/02/16(土) 17:07:10.46ID:wpb3vJTT
内部じゃなくて円周上のやろ

235デフォルトの名無しさん2019/02/16(土) 17:07:42.16ID:cltO7Ts6

236デフォルトの名無しさん2019/02/16(土) 17:27:32.65ID:PD6v+6Vh
>>232 組み込み使っていいんだよね? (面倒になるけど、使わなくても書けるけどサ…)
Perl5

use POSIX qw(floor ceil);
for (0.5, -1.1, 3) {
@a = ("$_ => ",
sprintf('%d', $_), #int($_),
($_ > 0 ? ceil($_) : ceil($_-1)),
ceil($_),
floor($_)
);
print "@a\n";
}


実行結果
~ $ perl 13_232_round.pl
0.5 => 0 1 1 0
-1.1 => -1 -2 -1 -2
3 => 3 3 3 3

237デフォルトの名無しさん2019/02/16(土) 17:33:21.11ID:PfkkbXxw
>>230 Ruby
def bs(ary)
  ary.tap do |a|
    (a.size**2).times do
      (a.size - 1).times do |i|
        a[i + 1], a[i] = a[i, 2] if a[i] > a[i + 1]
      end
    end
  end
end
p bs([3, 1, 4, 15, 92]) # => [1, 3, 4, 15, 92]

>>232
sgn = -> n {n <=> 0}
r4 = -> n {n.floor}
r3 = -> n {-r4[-n]}
r2 = -> n {sgn[n] * r3[n.abs]}
r1 = -> n {sgn[n] * r4[n.abs]}

[0.5, -1.1, 3].each{|i| puts 'x = %p => %p %p %p %p' % [i, r1[i], r2[i], r3[i], r4[i]]}
# =>
x = 0.5 => 0 1 1 0
x = -1.1 => -1 -2 -1 -2
x = 3 => 3 3 3 3

238デフォルトの名無しさん2019/02/16(土) 17:34:37.44ID:PD6v+6Vh
>>236 これだと
入力が0のとき
>(2) 0から遠ざかる
が-1になっちゃう。

($_ > 0 ? ceil($_) : ceil($_-1)),

↓を

($_ >= 0 ? ceil($_) : ceil($_-1)),

とすべきでしょうね。スマソ

239デフォルトの名無しさん2019/02/16(土) 18:34:59.76ID:akVlWGeE
>>234
円周上が正解

240デフォルトの名無しさん2019/02/16(土) 22:05:48.79ID:lcFO2eao
>>262 J
f =: (**<.@|),(**>.@|),<.,>.
f 0.5
0 1 1 0

f _1.1
_1 _2 _1 _2

f 3
3 3 3 3

241デフォルトの名無しさん2019/02/16(土) 22:20:47.39ID:yZTjSyit
>>262に期待。

242デフォルトの名無しさん2019/02/16(土) 22:38:05.19ID:lcFO2eao
>>240
間違えました
262ではなく>>232でした

243デフォルトの名無しさん2019/02/16(土) 23:30:26.24ID:ReDOqu2L

244 ◆QZaw55cn4c 2019/02/17(日) 00:20:40.59ID:TOi2tzGo
>>232 をやろうとおもって、IEEE754 の float/double を直接触る方法を探しているのですが、なにかいい方法はないでしょうか…

245デフォルトの名無しさん2019/02/17(日) 00:24:40.58ID:xZHcxwZO

246 ◆QZaw55cn4c 2019/02/17(日) 00:30:56.20ID:TOi2tzGo
>>245
thx a lot !!

247デフォルトの名無しさん2019/02/17(日) 01:04:30.52ID:iMRi3xg5
>>244
あった

248デフォルトの名無しさん2019/02/17(日) 08:30:18.08ID:SfPzlMrR
>>233
これ


「Nに対し平面上の円で、その円周上の整数点がちょうどN個となる円の最小半径を求めよ」

例)
x^2 + y^2 = 1の整数点は4つだが、最小半径ではない。
(x-0.5)^2 + (y-0.5)^2 = 0.5の方が小さい。

249デフォルトの名無しさん2019/02/17(日) 09:09:13.01ID:SfPzlMrR
>>248
網羅的は、きりがなく一つの予想をたてた。
一つ半径を求めたら、次のような操作で半径を縮めたものと、真の最小半径が一致する予想。

半径rの整数点がNだとして。 rを整数比で縮小して中心をずらす。

たとえば上の例だと、r=1で、r → 2/4 r で、
(2x -1)^2 + (2y -1)^2 = 2r
両辺4倍して中心ずらした式

250デフォルトの名無しさん2019/02/17(日) 14:03:58.61ID:SfPzlMrR
整数比かけるので有理数半径ならすべて作り出せるから当たり前か
無駄なく高速に半径縮められる手法が大事か

251デフォルトの名無しさん2019/02/17(日) 14:06:36.33ID:SfPzlMrR
あと半径は間違いで、半径でなく右辺、半径^2 だった

252デフォルトの名無しさん2019/02/17(日) 19:56:30.00ID:qArvPplr
お題
パンケーキソートを実装する

253デフォルトの名無しさん2019/02/18(月) 22:45:57.31ID:Gp2d+oGP
>>252 Perl5 (効率の良いアルゴリズムではないけれど、まずは…)

use List::Util shuffle;

@a = shuffle 1..20;
print "shuffled) @a\n";

sub flip {
($m, $n) = @_;
@a[0..$m] = reverse @a[0..$m];
@a[0..$n] = reverse @a[0..$n];
}

for $i (reverse 1..$#a) {
 $k = undef;
 for (0..$i) {
  $k = $_ if (!defined($k) or $a[$k] < $a[$_])
 }
 flip($k, $i) if $k < $i;
}

print "sorted ) @a\n";


実行例
~ $ perl 13_252_clumsy_pancake_sort.pl
shuffled) 18 6 2 13 16 1 12 15 10 4 17 20 9 7 19 14 5 11 3 8
sorted ) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20

254デフォルトの名無しさん2019/02/19(火) 22:19:54.18ID:sIqHxZ1N
; Common Lisp

(defun flip (seq n)
 (concatenate (type-of seq) (nreverse (subseq seq 0 (1+ n))) (subseq seq (1+ n))))

(defun pancake-sort (seq predicate)
 (loop for s = seq
   then (if j (flip (flip (flip (flip s (1- j)) (1- i)) i) j) s)
   for i from 1 to (1- (length seq))
   for j = (position (elt s i) s :end i :test predicate)
   finally (return s)))

255デフォルトの名無しさん2019/02/19(火) 22:25:14.24ID:flzwRht/
お題:1から8までのカードを混ぜ、2枚そこから引いた時1枚目*10+2枚目が素数になる確率を求める。
ただし、
1. 小数第3位で四捨五入した後に回答すること。
2. 数学的な証明は禁止。
3. 各カードは9-その数字の数だけ存在する。 (例:1ならば8枚存在する)
4. 各カードが出る確率はまだ引かれていないカードの枚数に比例する。

256デフォルトの名無しさん2019/02/20(水) 00:45:46.98ID:VV/V1Ls8
python
print(0.31)

257デフォルトの名無しさん2019/02/20(水) 00:55:56.83ID:SyQ4jkRO
>>255 Perl5
$R = 0.0;
@s = map{($_) x (9-$_)} 1..8; #say "@s";
$t = @s; #say $t;
for (qw{11 13 17 23 31 37 41 43 47 53 61 67 71 73 83}) {
 @o = split'';
 my %h;
 $h{$_}++ for @s;
 my $r = $h{$o[0]}-- / $t;
 $r *= $h{$o[1]}-- / ($t - 1);
 $R += $r;
}
printf "%3.2f\n", $R;

実行結果
~ $ perl 13_255.pl
0.31

258さまよえる蟻人間 ◆T6xkBnTXz7B0 2019/02/20(水) 00:58:27.33ID:5PEVWiZL
お題: URLで場所を指定された、インターネット上のテキストファイルをダウンロードするプログラム。

259デフォルトの名無しさん2019/02/20(水) 01:16:40.92ID:SyQ4jkRO
>>258 Perl5
require LWP::UserAgent;
$ua = LWP::UserAgent->new;
$ua->agent('Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; Win64; x64; Trident/6.0)');
use HTTP::Cookies;
$ua->cookie_jar(HTTP::Cookies->new(file => 'lwp-cookies.txt', autosave => 1));
$url = 'http://ftp.iij.ad.jp/pub/linux/centos/7.6.1810/isos/x86_64/0_README.txt';
$file = './0_README.txt';
$res = $ua->mirror($url, $file);
print $res->status_line, "\n";

実行例
~ $ perl 13_258.pl
200 OK


(※こういうのは、別に今急に考えたわけじゃなく、日常的に作って使っているのですぐ投稿できました)

260さまよえる蟻人間 ◆T6xkBnTXz7B0 2019/02/20(水) 01:37:18.13ID:jAMIqMc6
WSHでダウンロードできるヤツ、おる?

261デフォルトの名無しさん2019/02/20(水) 01:40:03.52ID:SyQ4jkRO
>>260
wget.exe か curl 使えば?

262デフォルトの名無しさん2019/02/20(水) 02:05:29.76ID:Te3YpcYw
>>260 download.js
var xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
xmlhttp.Open("GET", "http://ftp.iij.ad.jp/pub/linux/centos/7.6.1810/isos/x86_64/0_README.txt", false);
xmlhttp.Send();
var stream = new ActiveXObject("Adodb.Stream");
stream.Type = 1;
stream.Open();
stream.Write(xmlhttp.responseBody);
stream.SaveToFile("0_README.txt", 2);

263デフォルトの名無しさん2019/02/20(水) 02:28:54.15ID:PF1BNO4k
pythonista stash 反則?

$ wget http://ftp.iij.ad.jp/pub/linux/centos/7.6.1810/isos/x86_64/0_README.txt

$ ls -la *.txt
0_README.txt (2.4K) 2019-02-20 02:21:45

264デフォルトの名無しさん2019/02/20(水) 02:51:47.69ID:qYIek1dL
>>255
;; Common Lisp

(let ((prime (list 2)))
 (defun primep (n)
  (loop for i from (1+ (car prime)) upto n
      unless (find-if (lambda (j) (zerop (mod i j))) prime :from-end t)
      do (push i prime))
  (find n prime)))

(defun nearest (i j)
 (/ (floor (+ (* i (expt 10 j)) 0.5)) (expt 10 j)))

(loop with cards = (loop for i from 1 to 8 nconc (make-list (- 9 i) :initial-element i))
    and n = 0 and p = 0
    for one in cards
    do (loop for two in (remove one cards :count 1)
         do (incf n)
         if (primep (+ (* 10 one) two)) do (incf p))
    finally (format t "~,3F~%" (nearest (* (/ p n)) 3)))

265さまよえる蟻人間 ◆T6xkBnTXz7B0 2019/02/20(水) 03:32:48.09ID:jAMIqMc6
わーい、これでダウンロード制限された端末でDLできるぞ。やったー!

266デフォルトの名無しさん2019/02/20(水) 03:35:30.81ID:VV/V1Ls8
お題スレってそういう趣旨の場所だっけか?

267デフォルトの名無しさん2019/02/20(水) 03:43:59.14ID:J4bEIWoi
>>265
できるかなあ?どういう制限しているかにもよるぞ。

268デフォルトの名無しさん2019/02/20(水) 05:32:07.81ID:B2QSVSiS
PowerShell にも、curl, wget ある

get-alias (gal)

curl -> Invoke-WebRequest
wget -> Invoke-WebRequest

と言うことは、Ruby からも、そのコマンドを呼べる

2692682019/02/20(水) 09:30:07.43ID:B2QSVSiS
なんと、コマンドプロンプトで、
where curl と入力すると、
C:\Windows\System32\curl.exe

PowerShell の、curl, wget は、Invoke-WebRequest のエイリアスだけど、
curl.exe は、本物のcurl !

270デフォルトの名無しさん2019/02/20(水) 09:49:14.61ID:hK+DOQws
>>268>>269
死ね

271デフォルトの名無しさん2019/02/20(水) 09:52:59.12ID:PF1BNO4k
>>258 >>265 なんだ下心があったのか。

pythonista stash は以下のコマンドが使える。

help(StaSh) v0.7.1
alias, cat, cd, clear, cowsay, cp, crypt, curl, cut, dropbox_setup, du, easy_config, echo, edit, exit, fg, find, ftpserver, gci, gh, git, grep, head, httpserver,
jobs, kill, latte, ls, mail, man, mc, md5sum, mkdir, monkeylord, more, mount, mv, openin, pbcopy,
pbpaste, ping, Usage, pip, printenv, printhex, ptinstaller, pwd, py-tree, python, python3, quicklook, rm, rmdir, scp, selfupdate, sha1sum, sha256sum,
sort, source, sqlite, ssh, ssh-keygen, stashconf, tail, tar, telnet, totd, touch, umount, uniq, unzip, version,
wc, webviewer, wget, whatis, which, wol, xargs, zip

ftpserver や、httpserverは簡易的なサーバーになる。
ssh やscp 、tar zip などは使い道多そう。
webviewer てpython の下でブラウザが立ち上がってるみたいなんだがどんな使い道があるんだろう?

なお、標準python用のシェルは、xonsh と言うのがあるらしい。 xonsh では、標準的なshellコマンドと並行してpython スクリプトも実行できるから強力。
stash ではそれはできない。

2722682019/02/20(水) 10:31:11.68ID:B2QSVSiS
WSH はわからないけど、Ruby では、

require 'nokogiri'

html = `curl http://www.example.com/`
# curl は書き込めないので、全角に変換した

doc = Nokogiri::HTML( html )

elements = doc.css( "h1" )
puts elements.first.content #=> Example Domain

273デフォルトの名無しさん2019/02/20(水) 11:50:14.05ID:hK+DOQws
>>272
死ね

274デフォルトの名無しさん2019/02/20(水) 13:03:16.05ID:agArr1lp
>>269
なんかね。UNIX系OSで昔からよく使われてたコマンドを移植したようで、tarとか他にも色々あったと思った。

275デフォルトの名無しさん2019/02/20(水) 17:40:48.68ID:3A0CDvTh
>>263 今度は反則なしで。python

import requests as r

url = 'http://ftp.iij.ad.jp/pub/linux/centos/7.6.1810/isos/x86_64/0_README.txt'
g= r.get( url )

print('読んだサイズは',len(g.text) )

# 読んだサイズは 2495

276デフォルトの名無しさん2019/02/20(水) 17:58:34.75ID:t1mcuuOB

277デフォルトの名無しさん2019/02/20(水) 18:10:48.97ID:3A0CDvTh
>>276 ありがとう。 そんな言語も出てきてたんだ。 でも普及は難しいのかも。

278デフォルトの名無しさん2019/02/20(水) 23:51:29.53ID:MUUM+ThN

279デフォルトの名無しさん2019/02/21(木) 18:54:22.61ID:1axkeZoV
お題:リスト等を", "で結合して表示せよ。ただし最後は" and "で結合する。
https://ideone.com/pVuO7T

280デフォルトの名無しさん2019/02/21(木) 19:06:17.90ID:TUYpSwcQ
>>279 JavaScript
const arr = ['apple', 'banana', 'orange', 'mango'];
const last = ' and ' + arr.pop();
console.log(arr.join`, ` + last);
//=> apple, banana, orange and mango

281デフォルトの名無しさん2019/02/21(木) 19:17:09.75ID:eUc7EqKm
>>279 python

l = [ 1,2,3,4,5]

print( *l[0:-1] ,'and' , l[-1])

# 1 2 3 4 and 5

282デフォルトの名無しさん2019/02/21(木) 19:27:21.23ID:2zdYL4u2
>>279
Haskell

main = putStrLn.concat.concat $ [map addCanma (init lst),["and,"],[last lst]]

addCanma s = s ++ ","

lst = ["apple","banana","orange","mango"]



output:
apple,banana,orange,and,mango

283デフォルトの名無しさん2019/02/21(木) 19:31:58.30ID:lqQG1Hmj
題意は
list = ["red","green","black","white"]
print(", ".join(list[:-1]),"and",list[-1])
# red, green, black and white
だろ

284デフォルトの名無しさん2019/02/21(木) 19:43:56.00ID:YnrfI9YG
そこそこ優秀なのに肝心なところでいい加減だから試験に落ちるタイプだな

285デフォルトの名無しさん2019/02/21(木) 19:51:21.05ID:2zdYL4u2
>>283
あ、そうか。
不恰好だけどこれで一応対応。

(putStrLn.concat.concat) [init $ map addCanma $ init lst,[last $ init lst],[" and "],[last lst]]

スマートな解答も考えてみるよ。

286デフォルトの名無しさん2019/02/21(木) 20:16:12.26ID:eUc7EqKm
>>283 ごめん、俺もカンマが抜けてた。
数字の場合の模範解答をよろしく。

287デフォルトの名無しさん2019/02/21(木) 20:20:50.88ID:2zdYL4u2
スマートかは兎も角、一応マシな形に。
空リストや要素数1にも対応。

Haskell

main = putStrLn $ last2 lst

last2::[String] -> String
last2 [] = []
last2 [x] = x
last2 [x,y] = concat [x," and ", y]
last2 (x:xs) = x ++ "," ++ last2 xs

lst = map show [0..5]


output:
0,1,2,3,4 and 5

288デフォルトの名無しさん2019/02/21(木) 20:59:38.40ID:lqQG1Hmj
>>286
list = [str(x) for x in range(1,5)]
とか
map(lambda x : str(x), list)
でもおk

要素数が1個以下の場合はifで分離するだけなので略

289デフォルトの名無しさん2019/02/21(木) 21:09:47.73ID:y3+CYNZ6
>>279 Common Lisp
(format t "~{~@{~A~^~#,1^, ~}~^ and ~A~}~%" (list 1 2 3 4))
https://ideone.com/6DcwO9

290デフォルトの名無しさん2019/02/21(木) 21:21:18.07ID:lqQG1Hmj
intとstrが混在してる場合でも大丈夫で入力数が1以下ならそのまま返すワンライナー

python
print("".join(reversed(" ,".join(reversed([str(x) for x in list])).replace(",","dna ",1))))

JS+正規表現
console.log(list.join(", ").replace(/(.*),(.*?)+/,"$1 and $2"))

冷静に考えるとこの正規表現を使い回せばどの言語でもワンライナーなのでは

291さまよえる蟻人間 ◆T6xkBnTXz7B0 2019/02/21(木) 21:21:18.26ID:PQQkN+7n
ラティス、再び。

お題: >>99 の場合分けのラティス構造を使って、複数の入力文字列について、共通部分をまとめ、1つの文字列に凝縮せよ。

(例)
ああい
ああ
あう
→あ{{あ{い/}}/う}

292デフォルトの名無しさん2019/02/21(木) 21:30:40.21ID:lqQG1Hmj
よく考えたらreversedなんか使わんでも
print((" ,".join([str(x) for x in list][::-1]).replace(",","dna ",1))[::-1])
でいけるか。join削減できるし

293さまよえる蟻人間 ◆T6xkBnTXz7B0 2019/02/21(木) 21:32:52.15ID:3Jj6vI7v
出力文字列の長さは最短でなければならない。
場合分けの順序は問わないが、場合分けの項目について、ソートすることが望ましい。

294さまよえる蟻人間 ◆T6xkBnTXz7B0 2019/02/21(木) 21:37:53.05ID:3Jj6vI7v
一番外側の { } は省略可能。
共通部分がないときは、/で区切って出力せよ。

2952792019/02/21(木) 21:39:50.99ID:1axkeZoV

296さまよえる蟻人間 ◆T6xkBnTXz7B0 2019/02/21(木) 21:55:49.44ID:PQQkN+7n
このラティス構造っていうの、言語学ではよく使うらしいが、専門じゃないからよくわからない。

297デフォルトの名無しさん2019/02/21(木) 22:55:49.76ID:2zdYL4u2
>>279
>>292

Haskellでもワンライナー出来たけど、読みやすいとは思えない。(横長だし)
発想としては(要素数2以上なら)最後以外の要素(文字列)の頭に','追加して、全部結合して(大きな文字列にして)最後に頭の','を省く。

main = putStrLn.tail.concat $ if length lst < 2 then lst else [(concat.(map (\x -> ',':x)).init) lst," and ",last lst]

lst = map show [0..5]

個人的に >>287 の方が発想も読みやすさも好みの書き方。
(読み難くなるなら関数分ける派)

pythonのはワンライナーでも比較的読みやすくて、ちょっと羨ましい。

298デフォルトの名無しさん2019/02/21(木) 22:59:16.06ID:2zdYL4u2
>>297
弄ってるうちに要素一以下だとバグ出てた。

正しいコードはこっち。

putStrLn.concat $ if length lst < 2 then lst else [(tail.concat.(map (\x -> ',':x)).init) lst," and ",last lst]

299デフォルトの名無しさん2019/02/21(木) 23:36:37.11ID:un6uIa3F
>>282 Perl5

sub f {
 my $a = shift;
 @_ ? (@_ > 1 ? "$a, " : "$a and ").f(@_) : $a
}

use feature say;

say f(qw[red green black white]);
say f(qw[apple banana]);
say f(qw[one]);


実行結果
~ $ perl 13_279_and.pl
red, green, black and white
apple and banana
one

300デフォルトの名無しさん2019/02/22(金) 00:04:51.72ID:EatRhjER
>>279 Squeak/Pharo Smalltalk

(0 to: 3) asCommaStringAnd "=> '0, 1, 2 and 3' "

301デフォルトの名無しさん2019/02/22(金) 00:07:27.55ID:wSgiM5bY
>>299
アンカー間違えた >>279 宛だった…orz


>>279 もう一丁 Perl5

sub g {
 my $z = ' and '.pop @_ if @_ > 1;
 join(', ', @_).$z;
}

use feature say;
say g(qw[red green black white]);
say g(qw[apple banana]);
say g(qw[one]);

実行結果
~ $ perl 13_279_and_2.pl
red, green, black and white
apple and banana
one

302デフォルトの名無しさん2019/02/22(金) 00:28:04.99ID:9PVAJM4v
>>300
そういう関数が既にあるの?

303デフォルトの名無しさん2019/02/22(金) 00:31:28.15ID:wSgiM5bY
>>302
ググルとあるみたいよ。
組み込みMethodを山のように持っていそう

304デフォルトの名無しさん2019/02/22(金) 00:49:22.57ID:9PVAJM4v
ほえー

305デフォルトの名無しさん2019/02/22(金) 06:09:02.19ID:HhIJRo4K
>>279
Smalltalk (Pharo 7)

#('apple' 'banana' 'orange' 'mango') asCommaStringAnd
==> 'apple, banana, orange and mango'

#('apple' 'banana') asCommaStringAnd
==> 'apple and banana'

#('apple') asCommaStringAnd
==> 'apple'

306デフォルトの名無しさん2019/02/22(金) 06:36:03.41ID:S1fPIClY
>>279 python

def f(lst): return ('空だ' if not lst else
','.join([str(x) for x in lst[:-1]])
+ (' and ' if len(lst)>1 else'')
+ str(lst[-1])
)


print(f( [ 1,'二',3,4,'五'] )) # 1,二,3,4 and 五
print(f( [1,'二'] )) # 1 and 二
print(f( [1] )) # 1
print(f([])) # 空だ

3073052019/02/22(金) 07:07:04.28ID:HhIJRo4K
しまった既出だったorz

308デフォルトの名無しさん2019/02/22(金) 07:58:55.12ID:6TNKk8ap
>>279 Ruby

f = -> a {a[0..-2].join(', ').sub(/.\K\z/, ' and ') << a[-1].to_s}

(-1..3).each{|r| puts f[[*0..r]]} # =>

0
0 and 1
0, 1 and 2
0, 1, 2 and 3

309デフォルトの名無しさん2019/02/22(金) 08:05:10.35ID:6TNKk8ap
>>291
あ{{あ{い/}}/う} // 12文字
ああい/ああ/あう // 9文字
あ{あい/あ/う} // 9文字

310デフォルトの名無しさん2019/02/22(金) 08:11:07.14ID:EatRhjER
>>302
Smalltalkは1970年代頃にはすでにこんな感じで
プログラミングのお題スレ Part13 	YouTube動画>1本 ->画像>15枚
IDEからお絵かきツールまで処理系に組み込みだったので
生活に密着したメソッドが揃っています!

311デフォルトの名無しさん2019/02/22(金) 09:34:06.68ID:Ao+GBu+d
ラティス構造って要するに正規表現を生成すりゃーいいのか?

312デフォルトの名無しさん2019/02/22(金) 19:34:29.73ID:CY9He0wk

313デフォルトの名無しさん2019/02/22(金) 19:43:43.74ID:FMSx1nas
お題:21の階乗を計算して表示せよ。
https://ideone.com/gQAd37

314デフォルトの名無しさん2019/02/22(金) 20:16:33.34ID:9PVAJM4v
>>310
ほえー

315デフォルトの名無しさん2019/02/22(金) 21:26:47.09ID:py41/SAb
>>313 JavaScript
console.log(Array.from({length: 21}, (v, i) => i + 1).reduce((acc, v) => acc * v));

316デフォルトの名無しさん2019/02/22(金) 21:42:16.23ID:THqrb0iU
お題:
長方形のフィールドが与えられる。フィールド上では上下左右に移動することができる。
各マスの数字はそのマスに入るためのコストを表す。
SからGに向かうときの最小コストを求めよ。(SとGのコストは0とする)

S5111
1115G
=> 6

S1111
98642
G1111
=> 9

13457689768914512071934123457
G4578901258901212890361125312
37890423076834712378998725463
16890102569615902061456259893
34582934765923812893461515232
57896123896741378915691551697
89013897456123457162501835479
21389046013845610034623405686
8902346203948612341356362342S
=> ?

317デフォルトの名無しさん2019/02/22(金) 21:49:55.63ID:2ARSyvEs
>>279
>>289
Common Lispで~#[...~]を使ってみた
(format t "~{~S~#[~; and ~:;, ~]~}" '(apple banana orage mango))

318デフォルトの名無しさん2019/02/22(金) 22:00:24.05ID:py41/SAb
こういう文章題好き。
でも実力不足で解けない…
a*かな?

319デフォルトの名無しさん2019/02/22(金) 22:05:57.76ID:AX8XyL13
>>313 Perl5

use bignum (l=>GMP);

$n = 1;
$n *= $_ for 2..21;

print "$n\n";


実行例
~ $ perl 13_313.pl
51090942171709440000

320デフォルトの名無しさん2019/02/22(金) 22:26:00.12ID:eQxt3fSm
>>313 JavaScript
console.log((f=n=>n?n*f(n-1):1)(21))

321デフォルトの名無しさん2019/02/23(土) 00:16:14.24ID:KCAwaSn8

322デフォルトの名無しさん2019/02/23(土) 00:27:48.65ID:khwKgkQE
>>313 python
#階乗1
import math
print('階乗1',math.factorial(21))

#階乗2
def f(n): return f(n - 1)*n if n > 1 else n
print('階乗2',f(21))

#階乗3
print('階乗3',(lambda x:f(21))( globals().update({"f": lambda n: n*f(n - 1) if n > 2 else n })))

323デフォルトの名無しさん2019/02/23(土) 01:14:20.46ID:9pS68leH
>>279
Kotlin script
最後のカンマを正規表現の文字列置換で and にしただけ。

println(listOf("abc", "def", "xyz").joinToString(", ").replace(",([^,]*)$".toRegex(), " and$1"))

出力

abc, def and xyz

324デフォルトの名無しさん2019/02/23(土) 01:19:01.99ID:CTQXI+x5
lispって組み込みで素数かどうか判定するやつ提供されてるのか、、、面白い!

325デフォルトの名無しさん2019/02/23(土) 02:10:15.51ID:9pS68leH
>>313
bc

n = 2; for (i = 3; i <= 21; i++) n*=i; n

出力
51090942171709440000

326デフォルトの名無しさん2019/02/23(土) 03:31:27.03ID:nkO3lkCA
>>313 dc

~$ echo 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 ********************p | dc

51090942171709440000

327デフォルトの名無しさん2019/02/23(土) 03:32:49.90ID:R2s6jSV3
bcのってjsでもそのまま動くんだな。どっちもc由来文法だからか…
for(i=s=1;i<22;)s*=i++;s

328デフォルトの名無しさん2019/02/23(土) 04:30:09.37ID:R2s6jSV3
>>326
恥ずかしながらdcコマンド知らなかった…いいねこれ。
~$ echo "$(seq -s' ' 1 21)$(printf '* %.0s' {1..20})p" | dc
51090942171709440000

329デフォルトの名無しさん2019/02/23(土) 08:05:10.28ID:xK8/Ze+A
>>313 Maxima
print(21!);

330デフォルトの名無しさん2019/02/23(土) 08:20:33.48ID:znXlogg7
>>313
;; Common Lisp
(loop for i from 1 to 21 for r = i then (* r i) finally (print r))

331デフォルトの名無しさん2019/02/23(土) 08:45:55.53ID:DQY5g4De
>>316
これは、本格的だな

ダイクストラ・A* みたいな、順位キュー(priority queue)を使わないと、いけないかも

332デフォルトの名無しさん2019/02/23(土) 09:18:55.19ID:IBS/n4EE
>>313
Smalltalk (Pharo 7)
21 factorial
==> 51090942171709440000

333デフォルトの名無しさん2019/02/23(土) 12:01:13.29ID:+GfRG2y6

334デフォルトの名無しさん2019/02/23(土) 12:26:35.61ID:DQY5g4De
>>313
Ruby

( 1..21 ).inject( 1, :* )

335デフォルトの名無しさん2019/02/23(土) 12:44:52.28ID:W0y17tlk
python3
標準ライブラリ内の数学関数の例
import math
print(math.factorial(21))
そうじゃない例
from functools import reduce
print(reduce(lambda x,y:x*y,range(1,22)))

ちょっと高度化したお題
素数階乗n#を実装せよ
ただし素数階乗とは与えられた整数n以下のすべての素数の積である

1#=1
3#=4#=6
5#=30

336デフォルトの名無しさん2019/02/23(土) 13:22:30.58ID:R2s6jSV3
例がちょっと意味分からない
1#=1
1以下の素数の積なのに1?
3#=4#=6
何これ?
5#=30
これだけ分かる

337デフォルトの名無しさん2019/02/23(土) 13:25:18.18ID:R2s6jSV3
あ、二番目分かりました。
一行目だけ分からない

338デフォルトの名無しさん2019/02/23(土) 13:28:26.15ID:+GfRG2y6

339デフォルトの名無しさん2019/02/23(土) 13:34:54.53ID:vMXU7Bcc
>>337
掛けるもののがないときは1として扱うのが普通だよ
0!とかΠの項数が0の時とか

ただこの出題者はそのへん理解してないだろうから解く気がしない

340デフォルトの名無しさん2019/02/23(土) 13:40:09.27ID:R2s6jSV3
>>339
ありがとう。
数学と同じとは限らないんだね。
1も素数としてやってみます。

341デフォルトの名無しさん2019/02/23(土) 13:47:45.99ID:+eBVT+rm
>>340
1を素数と見做すんじゃなく空積の1

342デフォルトの名無しさん2019/02/23(土) 13:53:12.99ID:W0y17tlk
というか数学でも0!=1!=1と定義されているのが普通だと思うし
高校でも大学でもそうじゃない問題を見たことがないのだが

343デフォルトの名無しさん2019/02/23(土) 13:53:38.08ID:vMXU7Bcc
>>340
いや、むしろ数学の世界での慣習なんですけど…

344デフォルトの名無しさん2019/02/23(土) 14:28:11.89ID:DQY5g4De
単位元(初期値)だろ。
足し算は0、掛け算は1 が、単位元

Ruby で、
( 1..21 ).inject( 1, :* )

1 が初期値で、:* で掛け算メソッドを渡している

345デフォルトの名無しさん2019/02/23(土) 15:02:20.95ID:R2s6jSV3
>>342
> ただし素数階乗とは与えられた整数n以下のすべての素数の積である

と書いてあるので、

「与えられた整数n」が1
のとき、
「与えられた整数n以下のすべての素数の積」
は、
「1以下のすべての素数の積」
となり、
1以下に素数はないのになんで例で答がが1になってるんだろう、と思った次第です。
お騒がせしました。

346デフォルトの名無しさん2019/02/23(土) 15:15:16.07ID:R2s6jSV3
できた
JavaScript
const prodPrimes = n => {
const primes = [1];
for (let m = n; m > 1; m--) {
let prime = 0;
for (let i = 2; i <= m - 1; i++) {
if (m % i === 0) prime = i;
}
primes.push(prime || m);
}
return [...new Set(primes)].reduce((acc, p) => acc * p);
}
console.log(prodPrimes(1)); //=> 1
console.log(prodPrimes(3)); //=> 6
console.log(prodPrimes(4)); //=> 6
console.log(prodPrimes(5)); //=> 30

今夜はPythonで>>316に挑戦したい

347デフォルトの名無しさん2019/02/23(土) 15:45:56.58ID:xK8/Ze+A
>>335 J
f =: 3 : 0
*/ 1 , I. 1 p: i. >:y
)

f@> 1 3 4 5 21
1 6 6 30 9699690

348デフォルトの名無しさん2019/02/23(土) 15:50:44.94ID:5fn4St+r
Jどこで覚えればいいの?
Effective J的な読みやすい書籍ないの?

349デフォルトの名無しさん2019/02/23(土) 16:01:13.49ID:BD+5EZ0V
>>313 Common Lisp
(defun ! (n)
  (apply #'* (loop for i from 1 upto n collect i)))

CL-USER> (! 21)
51090942171709440000
CL-USER> (! 0)
1
CL-USER>

350デフォルトの名無しさん2019/02/23(土) 16:18:41.85ID:Z/STDkD0

351デフォルトの名無しさん2019/02/23(土) 17:50:18.29ID:oGmxRysL
>>321
これただのお絵描きやん
規制しろ!

352デフォルトの名無しさん2019/02/23(土) 18:00:12.84ID:5fn4St+r
でかいキノコやらしい…

353デフォルトの名無しさん2019/02/23(土) 18:14:04.27ID:2kPF298z
>>316 Perl5 Dijkstra法による最短経路探索 (priority queueを用いない実装)
https://ideone.com/XcsBQe

354デフォルトの名無しさん2019/02/23(土) 20:22:19.99ID:ejRNWGjN
>>316
python(pypy) https://ideone.com/DV1w4s

本線: キュー使用したダイクストラ (+ 経路復元)。

サンプル程度なら、ワーシャルフロイド(頂点^3)でも回る、と同方も追加。
さすがにpythonには少々きつく、pypyに逃げた。

355デフォルトの名無しさん2019/02/24(日) 00:49:59.19ID:ROsmA06r
>>354 pypy に逃げたという話は、その方がかなりスピードが早いからという事? どの位のスピード差になるんだろう?

356デフォルトの名無しさん2019/02/24(日) 01:37:12.40ID:jRfp9b62
>>313
Kotlin script

println("%.0f".format((2..21).map { it.toDouble() }.reduce { n1, n2 -> n1 * n2 }))

357デフォルトの名無しさん2019/02/24(日) 01:45:28.46ID:W3fm5ADB
>>355
何も変えずpython3で実行 https://ideone.com/IArwja

約6秒 vs 約0.2秒

まぁ、本当はpython3向けにもう少し治せそうだが

358さまよえる蟻人間 ◆T6xkBnTXz7B0 2019/02/24(日) 05:55:10.72ID:xnYazQgz
お題: 3分タイマーを作れ。3分間待って、音を鳴らすか、画面に「BEEP!」と表示せよ。ただし、CPU時間を無駄に消費してはならない。

359さまよえる蟻人間 ◆T6xkBnTXz7B0 2019/02/24(日) 06:09:09.10ID:xnYazQgz
お題: スリープソートを実装せよ。

360さまよえる蟻人間 ◆T6xkBnTXz7B0 2019/02/24(日) 06:27:08.15ID:xnYazQgz
お題: 玉入れ競争のシミュレーションを作れ。1チームに玉50個で園児3人。2チームある。園児それぞれが10秒に玉1個投げる。
一回投げると、3秒後に1/2の確率で玉が入る。イベントのたびに「チーム#1の園児#1が玉を投げました」「チーム#2の園児#1の玉が入りました」などと表示する。

361デフォルトの名無しさん2019/02/24(日) 07:40:28.45ID:lq3Vey6S
>>313
@Mathematica

ライブラリ版
Factorial[21]

非ライブラリ版
Range[21] // Apply[Times, #] &

362デフォルトの名無しさん2019/02/24(日) 08:11:35.91ID:UKaroUbg
>>335
Smalltalk (Pharo 7)
[:n | (Integer primesUpTo: n+1) inject: 1 into: [:p :x | p * x]] value: 5
==> 30

363デフォルトの名無しさん2019/02/24(日) 08:39:28.32ID:lq3Vey6S
>>335
@Mathematica
Range[5] // Select[#, PrimeQ] & // Apply[Times, #] &

364デフォルトの名無しさん2019/02/24(日) 08:59:23.56ID:k3GW1oFG
お題
与えられた文字列を縦に表示する

入力
hello

出力
h
e
l
l
o

365デフォルトの名無しさん2019/02/24(日) 09:18:40.92ID:FkqnBGPg
>>364
ruby -e "'hello'.split('').each do |c| puts c end"

366デフォルトの名無しさん2019/02/24(日) 09:39:23.28ID:UNsYm68I

367デフォルトの名無しさん2019/02/24(日) 10:41:19.01ID:gbE7FXAb
>>364 Perl5

~ $ echo -n hello | perl -naF -E 'say for @F'
h
e
l
l
o

368デフォルトの名無しさん2019/02/24(日) 10:45:19.09ID:gbE7FXAb
>>358 Perl5

sleep 3*60;
print "BEEP!\n";

369デフォルトの名無しさん2019/02/24(日) 10:51:12.60ID:5XYYe3Vz
>>346
Pythonじゃ緩すぎだろw
Brainfu*kとかJで挑戦したいと言わないと
世のマゾヒスト達からマサカリ投げられるぞw

370デフォルトの名無しさん2019/02/24(日) 11:01:40.94ID:gbE7FXAb
>>359 Perl5

use List::Util shuffle;
@a = shuffle 1..5;
print "shuffled) @a\n";

use threads;

use threads::shared;
my @b: shared;

sub f {
&nbsp;&nbsp;my $n = shift;
&nbsp;&nbsp;sleep $n;
&nbsp;&nbsp;push @b, $n;
}

push @thr, threads->create(\&f, $_) for @a;
$_->join() for @thr;

print "sorted ) @b\n";

実行結果
~ $ perl 13_359.pl
shuffled) 5 3 1 2 4
sorted ) 1 2 3 4 5

371デフォルトの名無しさん2019/02/24(日) 11:04:08.38ID:gbE7FXAb
>>370 しまった、&nbsp;がそのまま表示されている…orz 全角スペースに置換して修正
>>359 Perl5

use List::Util shuffle;
@a = shuffle 1..5;
print "shuffled) @a\n";

use threads;

use threads::shared;
my @b: shared;

sub f {
 my $n = shift;
 sleep $n;
 push @b, $n;
}

push @thr, threads->create(\&f, $_) for @a;
$_->join() for @thr;

print "sorted ) @b\n";

実行結果
~ $ perl 13_359.pl
shuffled) 5 3 1 2 4
sorted ) 1 2 3 4 5

372デフォルトの名無しさん2019/02/24(日) 14:09:41.21ID:UKaroUbg
Smalltalk (Pharo 7)
String cr join: 'hello'
==> 'h
e
l
l
o'

373デフォルトの名無しさん2019/02/24(日) 14:14:37.55ID:lq3Vey6S
>>364
@Mathematica

"hello" // Characters // Riffle[#, "¥n"] & // StringJoin

374デフォルトの名無しさん2019/02/24(日) 14:37:33.43ID:ke/CY5a3
>>351
いや、21 factorialをSmalltalk-76で実際に計算したものですよ!
動画にしたほうがよかったですか?^^;

375デフォルトの名無しさん2019/02/24(日) 15:44:30.88ID:R6DRM9b9
>>335 Squeak Smalltalk (このコードは Pharo では動かない)

| fn |
fn := [:n | (Integer primesUpTo: n + n isPrime asBit) inject: 1 into: #*].
#(1 3 4 5) collect: fn. "=> #(1 6 6 30) "

376デフォルトの名無しさん2019/02/24(日) 15:56:11.32ID:R6DRM9b9
>>364 Squeak Smalltalk (同じく Pharo とは互換性がないコードで)

'hello' joinSeparatedBy: Character cr.

"= 'h
e
l
l
o' "

377デフォルトの名無しさん2019/02/24(日) 16:12:06.37ID:ke/CY5a3
>>359 Pharo/Squeak Smalltalk

| sleepsort |
sleepsort := [:arr |
| queue |
queue := SharedQueue new.
arr do: [:x | [(x * 2) milliSeconds asDelay wait. queue nextPut: x] fork].
(1 to: arr size) inject: #() into: [:acc :idx | acc, {queue next}]
].

sleepsort value: #(2 1 5 10 7 8 3 6 4 9)

"=> #(1 2 3 4 5 6 7 8 9 10) "

378デフォルトの名無しさん2019/02/24(日) 17:18:42.39ID:+6ZRRI/z
>>358 puthonista ( iPhone )

# iPhoneのシステムサウンドを使ってアラームを出す。
import sound,time

alarm = '/System/Library/Audio/UISounds/alarm.caf'
time.sleep(3*60)
id = sound.play_effect(alarm)

379デフォルトの名無しさん2019/02/24(日) 17:40:55.70ID:+6ZRRI/z
>>378 pythonista の間違い。

380デフォルトの名無しさん2019/02/24(日) 19:37:23.57ID:Wf3q+Rvy
>>359 Bash

#!/usr/bin/bash

N=5

IFS=$'\n'
a=(`seq $N | shuf | sed -e 's/\([0-9]\+\)/(sleep \1; echo \1 >> result)/'`)
IFS="$'\n'$'\t' "

[ -f ./result ] && rm ./result
for s in "${a[@]}"; do
 echo "$s"
 sh -c "${s}" &
done

wait
cat ./result


~ $ sh 13_359.sh
(sleep 2; echo 2 >> result)
(sleep 5; echo 5 >> result)
(sleep 4; echo 4 >> result)
(sleep 1; echo 1 >> result)
(sleep 3; echo 3 >> result)
1
2
3
4
5

381デフォルトの名無しさん2019/02/25(月) 02:16:17.34ID:VuzBCyor
>>364
Kotlin script

while (readLine()?.map { it }?.joinToString("\n")?.let { println(it); it } != null);

382デフォルトの名無しさん2019/02/25(月) 02:42:58.27ID:VuzBCyor
>>358
sh

sleep 180 ; echo 'BEEP!'

383デフォルトの名無しさん2019/02/25(月) 02:47:11.29ID:yxDnlxm5
>>364
ruby -e "'hello'.each_char do |c| puts(c) end"

384さまよえる蟻人間 ◆T6xkBnTXz7B0 2019/02/25(月) 02:47:19.11ID:qxzw13Bf
お題: スリープと複数のスレッドを使って素数を10個求めよ。1つのスレッドは素数倍数のループを意味する。

385さまよえる蟻人間 ◆T6xkBnTXz7B0 2019/02/25(月) 03:51:24.00ID:qxzw13Bf
>>384
ヒント: 一秒ごとにリセットするカウンターを使う。

386デフォルトの名無しさん2019/02/25(月) 09:19:02.25ID:KMrhrKmq
意味がわからん

387デフォルトの名無しさん2019/02/25(月) 10:35:33.17ID:OZaxYFd4
模範解答があるんでしょ
だからヒントを作れる
なら最初から正解を出せと

388デフォルトの名無しさん2019/02/25(月) 10:52:58.23ID:mBiroDnU
このコテうぜえから書き込み禁止にしろ

389デフォルトの名無しさん2019/02/25(月) 11:25:48.34ID:4jlXoier
スリープタイマに番号付けてON/OFF出来ればエラトステネスの篩で素数が出来る。

390デフォルトの名無しさん2019/02/25(月) 17:25:13.53ID:KMrhrKmq
わかんないからちょっとやってみて

391デフォルトの名無しさん2019/02/25(月) 18:50:50.58ID:IURODyYm
>>364 J
smoutput@>'hello'

392デフォルトの名無しさん2019/02/25(月) 19:00:24.37ID:mboQc3Dn
>>364 JavaScript
[...'hello'].forEach(c=>console.log(c))
または
for(let c of 'hello')console.log(c)
または
console.log([...'hello'].join`\n`)

393デフォルトの名無しさん2019/02/26(火) 01:01:25.98ID:ZoqutRDZ
>>364 Ruby
puts "Hello".split("")

394デフォルトの名無しさん2019/02/26(火) 02:14:00.16ID:Jyzj3K2Z
お題:OS名を出力する

395デフォルトの名無しさん2019/02/26(火) 02:51:12.85ID:lsok3PaS
>>394
Linux等、UNIX系OSの場合コマンドラインから以下を入力するだけで GNU/Linux 等と出てくるが、
どうしてもプログラムにしたいのならシェルスクリプトの中でこれだけ実行するようにしておけばよい。

uname -o

396デフォルトの名無しさん2019/02/26(火) 02:53:03.78ID:lsok3PaS
>>394
Windows のコマンドプロンプトの場合はこれ。ただしバージョンも一緒に出てくる。

ver

これもどうしてもプログラムにしたいならバッチファイルでこれだけ実行するようにしておけばよい。

397デフォルトの名無しさん2019/02/26(火) 07:52:39.56ID:xb9W0X9p
pythonista

import os,sys

print(os.uname() )
# posix.uname_result(sysname='Darwin', nodename='iPhoneXsMAX', release='18.2.0', version='Darwin Kernel Version 18.2.0: Wed Dec 19 20:28:53 PST 2018; root:xnu-4903.242.2~1/RELEASE_ARM64_T8020', machine='iPhone11,6')

print(os.uname()[0],os.uname()[4],sys.platform )
# Darwin iPhone11,6 ios

from distutils.util import get_platform

print(get_platform())
# darwin-18.2.0-iPhone11,6

398デフォルトの名無しさん2019/02/26(火) 08:17:26.80ID:N21l9DY8
>>394 J
osname =: 3 : 0
a =. 9 !: 12 y
if. a = 5 do. 'unix'
else. a = 6 do. 'windows'
else. do. 'other'
end.
)

399デフォルトの名無しさん2019/02/26(火) 10:23:47.93ID:E0EMtjG2
>>394
Perl5

print "$^O\n";

400デフォルトの名無しさん2019/02/26(火) 15:46:59.25ID:N21l9DY8
>>364 Lua
io.write((io.read("*a"):gsub(".","%0\n")))

401デフォルトの名無しさん2019/02/26(火) 15:54:05.05ID:gjK+vdjr
お題: 任意のn-オミノを全種類出力するプログラム

402デフォルトの名無しさん2019/02/26(火) 15:55:57.75ID:IBhh82RD
>>364
標準出力から与えられる場合
import sys
for x in sys.stdin.read() : print(x)

>>394と混合
import os
for x in os.getenv("OS"): print(x)

403デフォルトの名無しさん2019/02/26(火) 18:05:30.42ID:KX5s2hIr
>>384 Squeak/Pharo Smalltalk

| tick start primes sema sieveMaker processes ans |
tick := 1 second.
start := DateAndTime now.
primes := SharedQueue new.
sema := Semaphore new.
sieveMaker := [:x | [[(tick * x) asDelay wait. sema signal] repeat]].
processes := SharedQueue new.
tick asDelay wait.
processes nextPut: [
[ tick asDelay wait.
sema isSignaled ifFalse: [
| prime sieve |
prime := primes nextPut: (DateAndTime now - start / tick) asInteger.
sieve := sieveMaker value: prime.
processes nextPut: sieve fork
].
sema initSignals
] repeat
] fork.

ans := (1 to: 10) collect: [:idx | primes next].
1 to: processes size do: [:idx | processes next terminate].
ans "=> #(2 3 5 7 11 13 17 19 23 29) "

404デフォルトの名無しさん2019/02/26(火) 20:30:26.61ID:cNXsTeTJ
お題: (Aが真 または Bが真) ならば Cが真である。 であるをプログラムしなさい。

405デフォルトの名無しさん2019/02/26(火) 23:29:53.47ID:Tg4W+a2u
お題: 円の最大重複数を求めよ

例題 以下画像の場合、最大重複数は4です。
プログラミングのお題スレ Part13 	YouTube動画>1本 ->画像>15枚
円の重複数え方は、2つの円が重なっていたら、重なっている数は2とします。
また、円の重複判定の際、2つの円が円周上の1点のみで重なる場合、それらの円は重なっていないとします。
(理由は重複している面積は0だから。)


以下、本題。
画像のようなNo.0からNo.99までの100個の円があります。
これの円の最大重複数を整数で答えなさい。
プログラミングのお題スレ Part13 	YouTube動画>1本 ->画像>15枚

入力データ:
https://drive.google.com/open?id=1kl8bS3GOr8Ot2OMMACdCG0SJMpEKxLO3

入力データはx座標 y座標 r(半径)の順で記述されたリストで、すべて実数です。
与えられる入力データは
-800.0 ≦ x ≦ 800.0
-800.0 ≦ y ≦ 800.0
100.0 ≦ r ≦ 400.0
の条件を満たします。


画像は自作、多分正しい。

406デフォルトの名無しさん2019/02/27(水) 11:44:25.97ID:wHsSBDML
お題: 自分自身のコードのコメントと非コメントを入れ替えたコードを出力するプログラムの
コードが自分自身のコメントの非コメントを入れ替えたプログラムのコードに
なっているプログラム

407デフォルトの名無しさん2019/02/27(水) 12:50:19.00ID:haTnnqie
S式かRPNで書いてくれややこしい

408デフォルトの名無しさん2019/02/27(水) 16:44:46.91ID:1o6M4rID
>>406
サンプルプリーズ

409デフォルトの名無しさん2019/02/27(水) 19:23:18.85ID:1o0vhyUy
お題
整数N(N>=6)を相異なる3つの整数(0<a<b<c)の和で表すことを考える。
数列(a,b,c)として考えられるもののうち、辞書式順序で最小のものと最大のものを求めよ

N=6
=> (1,2,3)/(1,2,3)

N=100
=> (1,2,97)/(32,33,35)

410デフォルトの名無しさん2019/02/27(水) 19:25:22.96ID:sZAuINQ9
お題
英今文字からなる文字列が与えられる。
各文字の大文字、小文字の組み合わせをすべて求める。
"ab"の場合
ab
aB
Ab
AB

411デフォルトの名無しさん2019/02/27(水) 19:42:57.27ID:haTnnqie
エーコン文字って何

412デフォルトの名無しさん2019/02/27(水) 19:49:50.41ID:fYEBa3GD
>>409
これって要するにcombinationのfirstとlastじゃねえの
next_combination()の一番最初と最後だよ

413デフォルトの名無しさん2019/02/27(水) 20:08:19.81ID:Tij8CMAh

414デフォルトの名無しさん2019/02/27(水) 21:30:26.97ID:WT+xSYik
>>410 JavaScript
const acorn = s => {
for (let i=0; i < 2**s.length; i++) {
console.log([...s]
.reduce((acc, c, j) => acc+String.fromCharCode(c.charCodeAt() - 32 * i.toString(2).padStart(s.length, 0)[j]), '')
);
}
}
acorn('ab'); // の実行結果:
ab
aB
Ab
AB
acorn('ufo'); // の実行結果:
ufo
ufO
uFo
uFO
Ufo
UfO
UFo
UFO

415デフォルトの名無しさん2019/02/28(木) 04:32:37.78ID:oRFlldUh

416デフォルトの名無しさん2019/02/28(木) 06:17:40.15ID:9oEuhY5c
>>410 Ruby
s = "ufo"
a = []
s.each_char do |c| a.push([c, c.upcase]) end
b = a[0]
a[1..-1].each do |e| b = b.product(e) end
b.each do |e| puts(e.join) end

417デフォルトの名無しさん2019/02/28(木) 08:43:33.13ID:qFD89Rtd
>>410 Squeak Smalltalk(#perform: を二変数ブロックにすればPharoでも動く)

| fn |
fn := [:str |
| ans |
ans := OrderedCollection new.
#(asLowercase asUppercase) asDigitsToPower: str size do: [:comb |
ans add: (str with: comb collect: #perform:)
].
ans asArray
].

fn value: 'ab'. "=> #('ab' 'aB' 'Ab' 'AB') "
fn value: 'ufo'. "=> #('ufo' 'ufO' 'uFo' 'uFO' 'Ufo' 'UfO' 'UFo' 'UFO') "

418デフォルトの名無しさん2019/02/28(木) 09:14:29.16ID:vBJFBkkc
uppercaseメソッドのことスッカリ忘れてた>>414
const acorn = s => {
for (let i=0; i < 2 ** s.length; i++) {
console.log([...s]
.reduce((acc, c, j) => acc + (+i.toString(2).padStart(s.length, 0)[j] ? c.toUpperCase() : c), '')
);
}
}

419デフォルトの名無しさん2019/02/28(木) 10:31:36.11ID:PtOlEBM/
>>410 Ruby
def f(s)
a=s.chars.map{|c|[c,c.upcase]}
a.shift.product(*a).map(&:join)
end
p f("abc")

["abc", "abC", "aBc", "aBC", "Abc", "AbC", "ABc", "ABC"]

420デフォルトの名無しさん2019/02/28(木) 10:34:43.50ID:7nNuTdUM
簡単な問題にはものすごい勢いでこたえるのに、難しい問題には見てみぬふりをするのなwwww
難しい問題にはわかりませんだろ

421デフォルトの名無しさん2019/02/28(木) 13:46:39.00ID:oAFMMcaR
>>420
わからないとかやる気が起きないお題に対してわざわざわからないだのなんだのとみんなで書いてたらそういった書き込みでこのスレはすぐに一杯になるだろう。
そんなの無駄で邪魔だから一々書かんでスルーしてくれた方が良い。

422デフォルトの名無しさん2019/02/28(木) 14:39:02.28ID:7nNuTdUM
>>421
別の問題を答えるときに一緒にわかりませんと書けば1行消費するだけで済むだろ?
それも嫌なのか?

423デフォルトの名無しさん2019/02/28(木) 14:50:46.53ID:wVeu6yBT
>>422
で、もちろんお前自身はそれを実践しているんだよね?
全答しているなら別にいいんだけどさwww

424デフォルトの名無しさん2019/02/28(木) 15:02:45.97ID:7nNuTdUM
>>423
自分の都合のいい問題にしか答えないのはわがままとしかいいようがない

425デフォルトの名無しさん2019/02/28(木) 15:25:18.89ID:oAFMMcaR
>>422
たまたまわからない問題が連続したらわかりませんしか書けないだろうが。

426デフォルトの名無しさん2019/02/28(木) 15:26:43.33ID:oAFMMcaR
>>424
全ての問題に答える義務は誰にもない。

427デフォルトの名無しさん2019/02/28(木) 15:35:33.99ID:7nNuTdUM
>>426
自分に都合の悪いことは無かったことにするのは良くない
現実と向き合って自分の非を認めるべき

428デフォルトの名無しさん2019/02/28(木) 16:05:54.17ID:K7dGf2QC
>>427 まだ誰も回答していない問題があるが、君はわかりませんと言っていないね。 まだ考え中かな?

429デフォルトの名無しさん2019/02/28(木) 16:22:56.91ID:7nNuTdUM
>>1-1000
ほとんどの問題が難しくてわかりませんでした
これで満足か?wwww

430デフォルトの名無しさん2019/02/28(木) 17:35:56.73ID:swPpvqd8
小手先問題は得意

431デフォルトの名無しさん2019/02/28(木) 17:48:58.57ID:+01UgAVr
>>420
そんなの当たり前じゃん

432デフォルトの名無しさん2019/02/28(木) 17:51:09.02ID:+01UgAVr
出題する側のセンスも問われる

433デフォルトの名無しさん2019/02/28(木) 18:46:34.61ID:oAFMMcaR
>>427
便所の落書きに時たま書かれる問題にうんこしながら答えを書くか書かないかで都合が良くなったり悪くなったりする者は居ない。

434デフォルトの名無しさん2019/02/28(木) 18:49:07.23ID:KtyAfxmO
しかし最近は便所の落書きは亡くなったに等しいな。
それにもかかわらず2chには便所の落書きが多い。
ここはまだましだけどな。

435デフォルトの名無しさん2019/02/28(木) 19:23:16.75ID:7nNuTdUM
公園の便所とかもちゃんと調べていってるのか?

436デフォルトの名無しさん2019/02/28(木) 19:52:08.39ID:KtyAfxmO
うちの近くの公園にはまずないな。
十人くらいしか遊べない公園も、数千人も遊べる公園も同じ。

437デフォルトの名無しさん2019/02/28(木) 20:27:06.93ID:oAFMMcaR
ああいうのもブロークンウィンドウズ理論通りに汚くなればなるほど余計に汚くなって尚且つその地区の犯罪率も上昇しちゃうんだろうな。

438デフォルトの名無しさん2019/02/28(木) 20:28:03.31ID:fDwT3kht
ID:7nNuTdUM が便所の落書きしかしてないのは分かる

439デフォルトの名無しさん2019/02/28(木) 20:59:59.90ID:KtyAfxmO
>>437 もちろんどんな公園にもバカな書き込みをする奴はいるだろう。 でも管理された公園では、次の日には修復されてるから書かれてたことにすら気づかなくて、誰も描かなくなる。

10年に1度くらいアホが便器を壊すなんて馬鹿なことをする事件もあるが、バカはどこにでもいるから仕方ない。

440デフォルトの名無しさん2019/02/28(木) 21:01:11.76ID:6vlCNc4e
もうちょっと気の利いた比喩がほしいね。

441デフォルトの名無しさん2019/02/28(木) 21:58:37.50ID:dSln4xk/
お題
四角形の羅列を、'#'と'.'を使った表現から罫線を使った表現に変換せよ

(例)等幅フォントで見てください
#

┌┬┐
├┼┤
└┴┘

#..###.####.
..#.....##.#
#.#....#.#.#
....#.#...#.
┌┬┐   ┌┬┬┬┬┬┐ ┌┬┬┬┬┬┬┬┐  
├┼┤   ├┼┼┼┼┼┤ ├┼┼┼┼┼┼┼┤  
└┴┘ ┌┬┼┴┴┴┴┴┘ └┴┼┼┼┼┼┴┼┬┐
    ├┼┤         ├┼┼┼┤ ├┼┤
┌┬┐ ├┼┤       ┌┬┼┴┼┼┤ ├┼┤
├┼┤ ├┼┤       ├┼┤ ├┼┤ ├┼┤
└┴┘ └┴┘ ┌┬┐ ┌┬┼┴┘ └┴┼┬┼┴┘
        ├┼┤ ├┼┤     ├┼┤  
        └┴┘ └┴┘     └┴┘  

442デフォルトの名無しさん2019/02/28(木) 22:09:31.89ID:DbAr3TBt
なにこれ?組み立てたらガンダムになるの?

443デフォルトの名無しさん2019/02/28(木) 22:33:12.22ID:lyW2+AsV
>>410 ruby
https://ideone.com/lGQ1lX
f = -> s {[''].product(*s.chars.map {|c| [c, c.upcase]}).map(&:join)}
p %W(#{} a ab).map {|s| [s, f.(s)]}

[["", [""]], ["a", ["a", "A"]], ["ab", ["ab", "aB", "Ab", "AB"]]]

444デフォルトの名無しさん2019/03/01(金) 11:41:54.16ID:RkKCNcIA
>>411 下らんお題出すなよ。

445デフォルトの名無しさん2019/03/01(金) 14:53:48.06ID:ber2ILYj
>>444
それお題じゃない

446デフォルトの名無しさん2019/03/01(金) 16:58:28.80ID:KMRxw/mf
>>444 >>441 の間違い

447デフォルトの名無しさん2019/03/01(金) 17:54:01.28ID:nsJzseJ0
読み手の環境を変えさせるようなお題は不適切。

448デフォルトの名無しさん2019/03/01(金) 18:00:52.30ID:nsJzseJ0
というか >>441 の問題が意味不明。 スクリーンショットで示してみなよ。 俺はやらんだろうけど。

449デフォルトの名無しさん2019/03/01(金) 18:05:43.92ID:nsJzseJ0
>>441 なんかプログラムの練習の前に、日本語のおさらいをした方が良い人間が見受けられるな。

プログラムはチームワークだから、他人に仕様が正確に伝えられなければその時点でそのプロジェクトは失敗。
理解しやすい言葉で混乱が起きない様に示すのが当たり前では?
それができない人はプログラムで問題を出しなさいよ。

450デフォルトの名無しさん2019/03/01(金) 18:35:43.56ID:ber2ILYj
え?>>441はわかるよ。俺がエスパーなだけ?w

451デフォルトの名無しさん2019/03/01(金) 18:38:47.53ID:nQNJhNQv
俺もわかるけどわかりにくいと思った

452デフォルトの名無しさん2019/03/01(金) 19:02:55.70ID:KgoMIpD3
なぜ#1つで4つの4角形になるんた?
#を図形として見た場合一致しないと思うんだが

453デフォルトの名無しさん2019/03/01(金) 19:26:25.34ID:ber2ILYj
記号を罫線ので作った四角にしろってことでこの場合は#だったってだけでは?
なんだったら「田」から変換するようにすれば雰囲気がマッチして良いかも知れんな。気分の問題だが。

454デフォルトの名無しさん2019/03/01(金) 19:55:55.91ID:HvpZFnzz

455デフォルトの名無しさん2019/03/02(土) 01:29:28.31ID:og4HVKiE
>>441 でたらめだろ。 #が田形3マスになるのは良いとして、ドットが何で3マスになったり、1マスになってるんだよ。

#..###.####.
..#.....##.#
#.#....#.#.#
....#.#...#.
123456789いろはにほ123456789へと
┌┬┐   ┌┬┬┬┬┬┐ ┌┬┬┬┬┬┬┬┐  
├┼┤   ├┼┼┼┼┼┤ ├┼┼┼┼┼┼┼┤  
└┴┘ ┌┬┼┴┴┴┴┴┘ └┴┼┼┼┼┼┴┼┬┐
    ├┼┤         ├┼┼┼┤ ├┼┤
┌┬┐ ├┼┤       ┌┬┼┴┼┼┤ ├┼┤
├┼┤ ├┼┤       ├┼┤ ├┼┤ ├┼┤
└┴┘ └┴┘ ┌┬┐ ┌┬┼┴┘ └┴┼┬┼┴┘
        ├┼┤ ├┼┤     ├┼┤  
        └┴┘ └┴┘     └┴┘  

456デフォルトの名無しさん2019/03/02(土) 01:35:36.81ID:og4HVKiE
>>455 ごめん、罫線だから、0.5ずれてたのか。 しかしわかりにくい問題だな。 
もしかして自分の仕事を人に押し付けようとしていないか? 

457デフォルトの名無しさん2019/03/02(土) 03:13:42.38ID:xuPe2CJ9

458デフォルトの名無しさん2019/03/02(土) 11:02:58.51ID:H6jPx1zC
専用ブラウザじゃ等副フォントなんて選べないのがあるのを知らないのか?
BB2Cでは、英字は等幅が選べても、漢字にはフォント設定すらない。

Jane Doe View も MSゴシックを選択しても等幅にならない。
読み手の設定を変えさせる問題なんて2chにはふさわしくない。

459デフォルトの名無しさん2019/03/02(土) 11:17:11.62ID:xuPe2CJ9
俺は等幅で見てくれってあったら、設定を変えるんじゃなくてメモ帳にコピペして見るけどなー

460デフォルトの名無しさん2019/03/02(土) 11:41:44.38ID:og4HVKiE
>>459 そうやって見たけど面倒くさい。 やるならどこかのサイトに張り付けるか画像で出題すべきだろ。

461デフォルトの名無しさん2019/03/02(土) 11:42:35.75ID:jZcAiOx4
おれなら出題を諦めるなw

462デフォルトの名無しさん2019/03/02(土) 11:43:11.78ID:chZTsz9F
問題とかずに問題への文句ばかり垂れるってお前らにしては珍しいな
問題とけよクズども

463デフォルトの名無しさん2019/03/02(土) 11:55:57.51ID:xuPe2CJ9
>>462
お…おれはやってるよっ

464デフォルトの名無しさん2019/03/02(土) 11:55:57.58ID:jZcAiOx4
>>462
ぐ、ぐむーっ

465デフォルトの名無しさん2019/03/02(土) 11:56:34.18ID:xuPe2CJ9
>>463-464
この間0.07秒である

466デフォルトの名無しさん2019/03/02(土) 12:11:05.29ID:JYk2NVzi
この広い日本のどこかに同じ時に同じレスに反応してしまった二人がいる。
プログラミングの世界は奥が深いな……

467デフォルトの名無しさん2019/03/02(土) 13:30:29.30ID:og4HVKiE
>>466 良いお題を解いたね。

468デフォルトの名無しさん2019/03/02(土) 16:02:22.23ID:xke/YE7F
>>453
なるほどそういうことか

469デフォルトの名無しさん2019/03/02(土) 16:22:52.10ID:ZN4ZPl7z
>>457
なるほど

>>411 Common Lisp (>>457の移植)
https://ideone.com/OTuTMy

すごいなあ、こんなの全然思いつけない
文字を文字のままどうにかしようとしてぐちゃぐちゃになったのが>>454でした

470デフォルトの名無しさん2019/03/02(土) 16:25:46.70ID:ZN4ZPl7z
>>469
アンカミス
>>411>>441

471デフォルトの名無しさん2019/03/02(土) 16:49:20.52ID:R507/Kbo
全く面白くない。

472デフォルトの名無しさん2019/03/02(土) 20:23:12.84ID:bDAZjPpu
>>471
自分の好みじゃないと面白くないなんて小学生か。
黙ってスルーするか、自分が好みの問題だして盛り上げたらどうだ?

473デフォルトの名無しさん2019/03/03(日) 08:56:00.68ID:NMVimqZR
お題:2つの円が重なった時、重なった部分の面積を求めなさい。

474デフォルトの名無しさん2019/03/03(日) 13:28:27.28ID:TjAANgsg
含まれている場合も考えなきゃならんな…

475デフォルトの名無しさん2019/03/03(日) 17:19:17.78ID:e91Lt8pq
>>473
わかりません。

476さまよえる蟻人間 ◆T6xkBnTXz7B0 2019/03/03(日) 17:21:20.86ID:KlFuUPR7
距離と半径くらい指定しろよ。

477デフォルトの名無しさん2019/03/03(日) 17:48:01.52ID:EHdvkNdx
>>475
分からない人は答えなくていいし黙って見ていればいいよ

478デフォルトの名無しさん2019/03/03(日) 18:41:09.09ID:TjAANgsg
>>476
任意に対応すべきだろJK

479デフォルトの名無しさん2019/03/03(日) 18:55:07.69ID:TjAANgsg
>>476
http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1263968897

このサイトは具体的な座標と半径について手計算で解いた例だけど、
座標と半径を一般化して連立二次方程式を解いて交点を求め、
三角形と円弧の面積の差を求めれば重なり合う2円弧の面積が算出できる。
小さい円の中心が大きい円の内側にある場合は、
三角形と円弧の面積の差の求め方を逆にする。
小さい円が大きい円の完全に内側にある場合は、小さい円の面積とする。

x,y座標で式を立てるより、曲座標で表して三角関数使うほうが楽かもしれない。

これをプログラム化すれば良い、筈【だと思う。

以上。

480デフォルトの名無しさん2019/03/03(日) 19:21:30.98ID:yjYtaUkW
2つの中心を通る線をX軸としてX軸と交わる点の端っこを原点して円の交点と半径で
円一個ずつ積分して面積を出して合わせるしかないだろ。

481デフォルトの名無しさん2019/03/03(日) 19:28:30.68ID:r5nrErEk
半径と中心間の距離から円の交点間の距離(=弦)がわかるから
正弦定理とarcsinで中心角を求めればあとはただの掛け算と引き算だろ

482デフォルトの名無しさん2019/03/03(日) 19:33:55.32ID:TjAANgsg
>>481
二次方程式解かないで済みそうだな

483デフォルトの名無しさん2019/03/03(日) 20:19:21.58ID:ot+8d2KD
それが一番シンプルそうだな

484デフォルトの名無しさん2019/03/03(日) 20:23:33.79ID:8CruhG40
プログラム的には円同士の位置関係で場合分けして、あとは計算一発だから二次方程式をいやがる必要もなくない?

485デフォルトの名無しさん2019/03/03(日) 21:06:33.77ID:XGcp5yLx

486デフォルトの名無しさん2019/03/03(日) 22:28:24.90ID:XGcp5yLx
>>485
条件分岐が間違っていたので修正。おそらくあってると思う
https://ideone.com/DjZqEY
余弦定理を使う方法しか思いつかなかったから、それでやった

487デフォルトの名無しさん2019/03/04(月) 01:00:55.59ID:q2TdavLp

488デフォルトの名無しさん2019/03/04(月) 07:57:27.52ID:7HyVHUwF
お題:不等間隔で与えられる関数表から1次とか2次で補間をしなさい。

489デフォルトの名無しさん2019/03/04(月) 11:04:59.42ID:9wLIIjqc
お題: 2つの任意の英数字からなる芸術的なアスキーアートを出力しろ

490デフォルトの名無しさん2019/03/04(月) 11:07:25.78ID:9wLIIjqc
お題: アスキーアートで芸術的な直線を出力しろ

491デフォルトの名無しさん2019/03/04(月) 12:15:59.00ID:9wLIIjqc
お題: アスキーアートで芸術的な木のアスキーアートを出力しろ

492デフォルトの名無しさん2019/03/04(月) 13:00:20.39ID:enTqHBl5
お題: このバカをどうにかしろ

493デフォルトの名無しさん2019/03/04(月) 13:06:53.32ID:mOK2oiAk

494デフォルトの名無しさん2019/03/04(月) 18:59:01.31ID:R4eMfGlu
お題 全角空白区切のCSV

カレントディレクトリにあるCSVファイルを読み込み、指定されたカラム名のデータの合計を求める。
1レコード目にはカラム名がある。
区切り記号は全角空白とする。 データの数字は全てASCII数字だとする。

CSVファイル内のデータ例

カラム1 カラム2 カラム3 カラム4
1,0 2.0 3.0 4.0
2.1 3.1 4.1 5.1
------データ例終わり

出題 カラム3 の合計を求めよ。
解答例 カラム3 = 7.1

495さまよえる蟻人間 ◆T6xkBnTXz7B0 2019/03/04(月) 19:01:33.11ID:wk4fvbO+
カンマとピリオド間違えたら死ぬぞ。気を付けれ。

496デフォルトの名無しさん2019/03/04(月) 19:03:32.42ID:rdjSvZ2C
>>494 間違い

データに 1,0 という間違いがあるけど問題ないだろ。
ついでに、この状態でカラム1の様にデータフォーマットが違う場合には正しくデータエラーを報告せよ。

497さまよえる蟻人間 ◆T6xkBnTXz7B0 2019/03/04(月) 19:10:24.71ID:wk4fvbO+
日本やアメリカでは、ピリオドは文の終わりや小数点として使う。

カンマは文章途中の区切りや複数の項目の区切りに使う。

498デフォルトの名無しさん2019/03/04(月) 19:12:27.62ID:rdjSvZ2C
>>497 問題に関係ないことを言うなよ。

499デフォルトの名無しさん2019/03/04(月) 19:12:28.56ID:TpCWsYE8
>>494
awk。-F オプションで指定しているのが全角スペースね。OSやシェルの違いによってはシングルクオーテーションではなくダブルクォーテーションにする必要がある。入力はファイル名指定するか標準入力から読ませる。

awk -F' ' 'BEGIN{getline}{n+=$3}END{print n}'

500デフォルトの名無しさん2019/03/04(月) 19:15:20.56ID:TpCWsYE8
awkはデータフォーマットがおかしくても適当に0ってことにしちゃったりしてエラーにならんのでデータ異常まで調べたいなら他の言語使った方が良いだろうな。

501デフォルトの名無しさん2019/03/04(月) 19:16:48.51ID:rdjSvZ2C
>>499 カラム名を指定してよ。カラム名は指定された名前であり固定ではない。

502デフォルトの名無しさん2019/03/04(月) 19:22:30.38ID:TpCWsYE8
>>501
あー。じゃあ後で他の言語で作るか。

503デフォルトの名無しさん2019/03/04(月) 19:42:58.86ID:0eAiVVhP
お題:端末の横幅が与えられるので(*´ω`*)を端末の中央に表示せよ

504デフォルトの名無しさん2019/03/04(月) 20:14:28.23ID:/O719wMt
このバカどうにかしろ
あとチンポジ代わりに直せ

505デフォルトの名無しさん2019/03/04(月) 21:14:51.56ID:x+RRe849
>>503 Ruby
w = 120
printf("%s%s\n", " " * ((w - 10) / 2), "(*´ω`*)")

506デフォルトの名無しさん2019/03/05(火) 01:17:51.32ID:irQmeRjm
茨木 保健
貴老沢 風花
鬼塚 海鈴
鬼埜 可恋
儀賀沢 一愛
嫌沢 宮子
己問 彩姫
寺沢 七彩
寿川 瑞紀
樹木山 美咲
宗田 純
女ケ沢 美優
女ケ澤 飛鳥
女鹿沢 祐奈

507デフォルトの名無しさん2019/03/05(火) 03:28:01.02ID:CZi591h7
>>494
Ruby で

require 'csv'

# 全角空白区切りで、ヘッダー有り
options = { :headers => true, :col_sep => " " }

# CSV ファイルを、1行ずつ処理する
puts CSV.foreach( "input.csv", options )
.map{ |row| row[ 2 ].to_f }.inject( :+ )

508デフォルトの名無しさん2019/03/05(火) 07:59:44.57ID:0SMIqw+w
>>507 カラム名サーチが入っていないみたいだけど。
例えば ”カラム3” と言うカラム名が指定されたとして書いてみて。3列目と言うことじゃないからね。

カラム4 カラム2 カラム1 カラム3
かも知れない。

509デフォルトの名無しさん2019/03/05(火) 08:10:31.80ID:utDz1VTj
変な流れが続いていたから、バカっぽいお題をいくつか出した後に一見まともそうなお題のふりして宿題をやってもらおうという腹かと勘ぐってしまう。

510デフォルトの名無しさん2019/03/05(火) 09:08:51.84ID:BKNc7BtY
>>509
お前の思いちゃんと伝わったよ
問題解けクズ

511デフォルトの名無しさん2019/03/05(火) 09:12:40.32ID:DIrFqE8l
>>510
宿題は自分でやれカス

512デフォルトの名無しさん2019/03/05(火) 09:42:11.28ID:BKNc7BtY
>>511
お前の宿題だが

513デフォルトの名無しさん2019/03/05(火) 09:45:18.09ID:DIrFqE8l
死ね

514デフォルトの名無しさん2019/03/05(火) 11:33:12.77ID:7U5lBe0C
だから言語制限なしで通すとやっぱネタギレじゃん

515デフォルトの名無しさん2019/03/05(火) 12:09:12.75ID:KQ31R4yU
お題1: テトリスタイリング問題を解決しろ
ここでテトリスタイリング問とは任意の図形のアスキーアートを入力すると
全てのテトリスのブロックに隣接するブロックの種類が異なるようにタイリングしたアスキーアートを出力する
問題である

お題2: テトリスタイリングNブロックス問題を解決しろ
ここでこの問題は上の問題でブロックの種類の数Nを最小にする問題である

例:
入力:
****
****
****

出力:
1002
1002
1122

516デフォルトの名無しさん2019/03/05(火) 12:21:13.18ID:WJ/srpVX
>>515
これじゃダメなのか?

1011
1001
1101

517デフォルトの名無しさん2019/03/05(火) 12:23:52.27ID:KQ31R4yU
>>516
それでもええで

518デフォルトの名無しさん2019/03/05(火) 23:56:55.78ID:0SMIqw+w
>>515 ボクちゃんわかんない。
何で縦の列は1とか同じ種類が許されてるの? なんか上から下へとか言う動きを前提にしてるの?

519デフォルトの名無しさん2019/03/06(水) 01:19:54.96ID:tTGpH/KM
>>518
プログラミングのお題スレ Part13 	YouTube動画>1本 ->画像>15枚
片面テトロミノ(画像参照)を回転させて指定の形に詰め込め
ただし、同じテトロミノを隣接させてはいけない。 ってことじゃろ

515の出力例でいうと、
0は画像の水色、1は黄色、2は紫色の奴ってこと

520デフォルトの名無しさん2019/03/06(水) 08:04:05.66ID:bBth0ZZS
>>515 その出力例だと、タイルの種類は3種類じゃないの?
1と2を同じだとみなせば、同じ種類と隣接するからダメだろ?

>>516 だと完全に2種類だが。

521デフォルトの名無しさん2019/03/06(水) 10:13:54.30ID:Z0o65K/P

522デフォルトの名無しさん2019/03/06(水) 11:44:29.70ID:cM1JcwP7
>>521
だからこそ出題例>>515は3種類のブロックを使ってるんだろ? 
2種類で出来ていないから問2に対しては不正解では?

523デフォルトの名無しさん2019/03/06(水) 11:58:00.89ID:OdnfdSEH
>>522
例がお題2とお題1両方の答えになっているなんてことはどこにも書いてないだろ
例を見ればだれでもどのお題の答えかわかるだろ

524デフォルトの名無しさん2019/03/06(水) 12:34:51.62ID:cM1JcwP7
>>523 誰でも解ると言うのは言い過ぎ。 何が正しいのかを示すのが例なんだし。
なんにせよお題の出し方が独断すぎるよ。
テトリスタイリングなんて知らない人にとっては説明不足だし
>>519 の説明があって初めて平面上の回転図形は同じとみなし、裏表の回転は許さないと解るけど。
それでも519のブロックは4個の組み合わせのブロックしかないが、どうして4個固定なのか? 最大辺の個数を単位とするのか?

この場合は5個固定?
***
***
***
***
***

525デフォルトの名無しさん2019/03/06(水) 12:44:07.40ID:OdnfdSEH
>>524
釣りだろ?
本当にわからないのなら病院に行くレベルw

5265162019/03/06(水) 12:54:30.31ID:lTLUMkgQ
>>523
分からなかった

527デフォルトの名無しさん2019/03/06(水) 12:57:33.38ID:FCOQEIBI
わかっても今のところ解く気は起きない

528デフォルトの名無しさん2019/03/06(水) 12:58:29.33ID:Z0o65K/P
>>522
あなた、前に書き込んでた中卒の人?

529デフォルトの名無しさん2019/03/06(水) 13:01:54.00ID:uLgh04dF
>>199>>441が理解できなかったってやつと同一人物なのは分かる

530デフォルトの名無しさん2019/03/06(水) 13:08:31.07ID:URj2ByGk
>>524
>どうして4個固定なのか? 

テトリスってゲームがあってそれに出てくるブロックが>>519

>>515
>全てのテトリスのブロック

https://ja.wikipedia.org/wiki/%E3%83%86%E3%83%88%E3%83%AA%E3%82%B9
テトリス
>4つの正方形を組み合わせて作られた、片面型テトロミノ状のブロックピース
>(以下の7種、本作ではこれらを「テトリミノ」(Tetrimino)と呼ぶ)
>がフィールド上方からランダムに1種類ずつ落下してくる。

531デフォルトの名無しさん2019/03/06(水) 13:09:30.85ID:f/NWPYTA
>>441は分からんかった
問題を考えさせてほしい
問題文を考えさせるんじゃなく

532デフォルトの名無しさん2019/03/06(水) 13:50:33.24ID:cM1JcwP7
>>530 片面テトリミノの基本は4個だけどこれを使う前提なら、3x5とか4の倍数の面積にならない図形は解けないよね。
聞いてるのは3x5はどうするのと言う話。

533デフォルトの名無しさん2019/03/06(水) 14:02:02.94ID:URj2ByGk
>>532
「解けない」でいいんだろ

534デフォルトの名無しさん2019/03/06(水) 16:31:44.46ID:OdnfdSEH
>>532
この問題は君の思ってる小学校の算数とは違うんだよ

535デフォルトの名無しさん2019/03/06(水) 18:11:04.36ID:+4ROOaYr
問題の難しさと、問題の曖昧さは関係ないけどな。
難しい問題の条件が曖昧だと鼻から解く気になれない。

536デフォルトの名無しさん2019/03/06(水) 18:18:58.86ID:OdnfdSEH
考えればわかることまでいちいち書かないのは常識
それを曖昧とは言わない

537デフォルトの名無しさん2019/03/06(水) 19:39:35.98ID:RlXQ9XDp
数学者は常識人

538デフォルトの名無しさん2019/03/06(水) 19:40:44.95ID:L0cGL7i+
当たり前のことでもいちいち全部書くのがこの業界の常識だが

539デフォルトの名無しさん2019/03/06(水) 19:57:47.15ID:2Etc0l5z
仕様書をやりとりしてみれば如何に他人に解らせることが難しいか理解できると思うけどな。 多分出題者は余り経験していないんだろう。

仕様をいい加減で進めても後で痛い目を見るのは自分。
(最初は完全でないのは当然、打ち合わせで抜けを詰めていけば良い話)

540デフォルトの名無しさん2019/03/06(水) 20:41:28.07ID:OdnfdSEH
>>538
テトリスがなにかなんて自分でググって調べればいいことだろ
そんなことまで面倒みれない

541デフォルトの名無しさん2019/03/06(水) 20:51:34.66ID:Xwbjxxrc
お題の面白さに共感しなければ趣味だから解かない。

542デフォルトの名無しさん2019/03/06(水) 21:21:50.81ID:FCOQEIBI
そういや安かったのでPS4用のテトリスを何気なく買って連日やってたら慣れてきちゃってレベル15の40ライン消しが楽にできるようになってしまったなあ。
今さらテトリスうまくなってどうすんだ俺w

543デフォルトの名無しさん2019/03/07(木) 03:21:20.86ID:QS9GxyX4
>>494
Kotlin
https://paiza.io/projects/w5ywqyfGfQpwllH68rmt5A

入力はカラム名の行が最初にあり、次の行からはデータが続き「# カラム名」の行で終わり、
そこで指定したカラム名の列の合計値が出力される。

エラーはデータが数値として解釈できない文字列、項目数がカラム名の数と一致しない行、
同一カラム名があった場合に出る。一度エラーになると # の行まで読み飛ばされる。

544デフォルトの名無しさん2019/03/07(木) 17:22:14.11ID:bbRk4M8e
お題
R言語にandmaginsとうう関数がある。
m行n列の行列を渡すと行ごとの合計と列ごとの合計を追加して
(m+1)行(n+1)列の行列を返す。
同様の関数をつくる。

1 2 3
4 5 6

1 2 3 6
4 5 6 15
5 7 9 21
となる

545デフォルトの名無しさん2019/03/07(木) 19:35:31.07ID:gyMjU+f2

546デフォルトの名無しさん2019/03/07(木) 23:35:37.41ID:bSfNx8gZ
>>544 Squeak/Pharo Smalltalk

| fn |
fn := [:arr | arr, {arr sum} collect: [:row | row, {row sum}]].
fn value: #(
(1 2 3)
(4 5 6)
).

"=> #(
(1 2 3 6)
(4 5 6 15)
(5 7 9 21)
) "

547デフォルトの名無しさん2019/03/08(金) 00:35:43.62ID:N66/0TP0
大文字小文字だけが異なる、ファイル名を見つける

入力
aB.txt
Ab.txt
xx
cd
cD
CD

出力
aB.txt : Ab.txt
cd : cD : CD

548デフォルトの名無しさん2019/03/08(金) 04:41:32.92ID:JrzgN4oN
#!/bin/sh
infile="aB.txt Ab.txt xx cd cD CD"
for f in ${infile}; do
echo $f $(echo $f | tr [:lower:] [:upper:])
done | awk '
{ save[$2] = save[$2] " : " $1 }
END {
for (i in save) print save[i]
}' | sed 's/^ : //' | sort | awk 'NF > 1 {print}'

549デフォルトの名無しさん2019/03/08(金) 09:23:36.88ID:iTwHpxzE
>>547 Squeak Smalltalk

| fn |
fn := [:arr |
| groups |
groups := arr groupBy: #asLowercase having: [:group | group size > 1].
groups values collect: #asArray
].
fn value: #('aB.txt' 'Ab.txt' 'xx' 'cd' 'cD' 'CD').

"=> #(('cd' 'cD' 'CD') ('aB.txt' 'Ab.txt')) "

550デフォルトの名無しさん2019/03/08(金) 09:47:13.60ID:pv8HlopZ
>>547
それはWindowsとかでは試せないのでは?ディレクトリが違うならできるだろうけど。
(まあWindowsでもWSLでUbuntuとか動かせばできるが)

5515472019/03/08(金) 11:48:57.26ID:N66/0TP0
同一フォルダ内での、大文字小文字だけが異なるファイル名は、Windows では作れないけど、
Linux では作れてしまうので、それをチェックする目的です

Linuxでも、こういうファイル名は作らない方がよい

552デフォルトの名無しさん2019/03/08(金) 16:35:28.24ID:VhFMuL/G
>>551
死ね

553デフォルトの名無しさん2019/03/08(金) 17:12:36.80ID:qP6cz7Aj
時々死ねと言うやついるけど同じやつなのか? いい加減で大人になれ。

554デフォルトの名無しさん2019/03/08(金) 18:19:49.57ID:aY8HpC9F
イ`

555デフォルトの名無しさん2019/03/08(金) 18:42:00.27ID:eAQ60MzF
お題: 1=2を証明しろ
証明出来ないは無しで

556デフォルトの名無しさん2019/03/08(金) 18:49:56.10ID:qP6cz7Aj
>>555 それは言語によるんじゃないの? 論理的にはあり得ない。
一般的には、0がFalse でそれ以外がTrueと言うだけでは?

557さまよえる蟻人間 ◆T6xkBnTXz7B0 2019/03/08(金) 18:58:42.07ID:8R2ZaOuQ
整数のオーバーフロー使えば楽に証明できるけど、それはもはや基礎数学の整数じゃないし。

558デフォルトの名無しさん2019/03/08(金) 19:14:26.55ID:2owB+W9f

559デフォルトの名無しさん2019/03/08(金) 19:17:05.52ID:ru9qZk5w
お題:
N人の人物がある部屋に出入りしています。
i番目の人は時刻a[i]に入室し、時刻b[i]に退室します。(1 <= a[i] < b[i])

すべての人は入退室時に以下の通り行動します。
・入室時に、照明がOFFならば照明をONにする。
・退室時に、室内に自分以外に誰もいなければ照明をOFFにする。

最初は照明がOFFになっていて室内には誰もいません。
複数の人物が同時に入退室することはないものとします。

照明がONになっている時間の合計を求めなさい。

a={1,3,5}
b={2,4,6}
=> 3

a={1,2}
b={5,6}
=> 5

a={100,1,2}
b={105,3,4}
=> 8

560デフォルトの名無しさん2019/03/08(金) 20:42:26.76ID:q/o0JPH8
>>364
brainf*ck
>++++++++++<+[,.>.<]

561デフォルトの名無しさん2019/03/08(金) 20:42:27.70ID:AweN/YnK
★ぁりがdヾ(。・ω・。)ノぁりがd★

562デフォルトの名無しさん2019/03/08(金) 20:54:42.10ID:2owB+W9f

563デフォルトの名無しさん2019/03/08(金) 21:22:26.01ID:QMcItLTV

564デフォルトの名無しさん2019/03/08(金) 21:55:03.73ID:2owB+W9f

565デフォルトの名無しさん2019/03/09(土) 08:53:56.42ID:irV15TzB
>>410 J
f =: 3 : 0
 > , { ;/(,. toupper) y
)

5665622019/03/09(土) 09:29:27.51ID:8CAUa/TL
>>559 ruby
すこーしすっきり
f = ->a, b {a.zip(b).map {|c| (c.first...c.last).to_a}.inject(:|).size}

f = ->a, b {a.zip(b).map {|c, d| [*c...d]}.inject(:|).size}

5675472019/03/09(土) 10:58:09.02ID:GVs3bbIF
>>564
たった2行とは、素晴らしい!
JavaScript(JS)とか、関数型プログラミングだね

f(&:upcase), f(&:chomp)
関数型でも、こういうように呼ぶ関数名が明確にわかる点では、Ruby はJS をしのぐ!

漏れが以下で作ったけど、手続き型の処理で、10行以上も掛かったw
情けない

Ruby 初心者スレッド Part 65
http://2chb.net/r/tech/1545421414/234

568デフォルトの名無しさん2019/03/09(土) 12:51:20.88ID:C6v7oEvs
クソみてーな恣意的な記号使いはperl譲りだな

569デフォルトの名無しさん2019/03/09(土) 13:17:28.26ID:capoU8RA
アンダースコア_はprologの時点であるんじゃね
それに記号なら恣意的だろ

570デフォルトの名無しさん2019/03/09(土) 19:25:50.03ID:hBO8FWAE
>>544
Haskell

main = mapM_ print $ newxss ++ [zipWith (+) (newxss!!0) (newxss!!1)]

xss = [[1,2,3],[4,5,6]]

newxss = map (\xs -> xs ++ [sum xs]) xss

571デフォルトの名無しさん2019/03/09(土) 19:49:27.50ID:R3sqYFdd
お題:文字列と数値nが与えられるのでn番目の文字とそれ以外の文字を上下にスライドさせて表示する

入力
abc 2

出力
*b*
a*c

572デフォルトの名無しさん2019/03/09(土) 19:57:53.65ID:C6v7oEvs
お題か出力のどっちかが間違っている
日本語勉強した方がいい

573デフォルトの名無しさん2019/03/09(土) 19:58:57.39ID:hBO8FWAE
>>544,570

任意の数の行列だったか。。。
修正

main = mapM_ print $ newxss ++ [lastxs]

xss = [[1,2,3],[4,5,6],[7,8,9]]

newxss = map (\xs -> xs ++ [sum xs]) xss

lastxs = map sum $ retsu newxss

retsu ([]:xs) = []
retsu xss = map head xss:retsu (map tail xss)

574デフォルトの名無しさん2019/03/09(土) 20:10:49.99ID:0OOZ8KrR
>>557
オーバーフローは数学ですらないだろ。こっちは数学。


宇宙を支えていたのは、驚異のたし算だった
私がこのたし算を知ったのは20歳のころでした。その衝撃は、私の運命を変えるまでの威力を持っていました。
私の大学は2年生で所属学科を決めるシステムになっており、私はアインシュタインに憧れて物理学科に進もうとしていました。
その私が出会ったのがラマヌジャン(1887-1920)です。彼が描いた2つの絵を見た瞬間、私の中で何かが変わりました。
プログラミングのお題スレ Part13 	YouTube動画>1本 ->画像>15枚
http://jbpress.ismedia.jp/articles/-/46939

575さまよえる蟻人間 ◆T6xkBnTXz7B0 2019/03/09(土) 20:18:26.71ID:XY+I2Bbh
>>574
応用数学ではオーバーフローも数学の一種。

576デフォルトの名無しさん2019/03/09(土) 20:25:11.72ID:hBO8FWAE
>>364

Haskell

main = mapM_ (\c -> putStrLn $ c:[]) "hello"

577デフォルトの名無しさん2019/03/09(土) 20:38:18.94ID:1xJckQ5D
>>544
kotlin
https://paiza.io/projects/cL6xIQA--yDFZ1pjndvzAw

Double型でやったら出力に小数点以下が付加されたが値として間違ってるわけではないのでそのままにする。

578デフォルトの名無しさん2019/03/10(日) 01:41:18.58ID:5A3UW8N7
>>544 Python

import numpy as np
# 何行何列でも良い
ar =[
[1,2,3,4],
[4,5,6,7],
[7,8,9,10]
]

#縦に足して行を追加
r=np.vstack((ar,np.sum(ar,axis=0)))

#横に足して列を追加
ans=np.hstack((r,np.sum(r,axis=1).reshape((-1,1))))
print('ans=\n',ans)
'''
ans=
[[ 1 2 3 4 10]
[ 4 5 6 7 22]
[ 7 8 9 10 34]
[12 15 18 21 66]]
'''

579デフォルトの名無しさん2019/03/10(日) 03:08:27.84ID:LqrBe0vy
>>571 ruby
s = "abc"
n = 2
t = "*" * s.length
t[n - 1] = s[n - 1]
u = s.clone
u[n - 1] = "*"
puts(t, u)

580デフォルトの名無しさん2019/03/10(日) 11:57:40.70ID:e6SI07pl
>>571 J
f =: 4 : 0
|: ((,. -.) (<:x) = i. # y ) {"1 '*' ,. y
)

2 f 'abc'
*b*
a*c

581デフォルトの名無しさん2019/03/10(日) 13:31:21.17ID:vqbsu7fW
>>571

Haskell

main = do
putStrLn $ seclet "abc" (==) 2
putStrLn $ seclet "abc" (/=) 2

seclet lst func num = seclet' lst func 1 num
where
seclet' [] _ _ _ = []
seclet' (x:xs) f n a | f n a = x: seclet' xs f (n + 1) a
seclet' (_:xs) f n a = '*': seclet' xs f (n + 1) a

582デフォルトの名無しさん2019/03/10(日) 13:56:33.99ID:vqbsu7fW
>>571
>>581

引数の順序入れ替えてmapM_ 使って、main部分を一行にまとめた。

main = mapM_ (putStrLn.seclet "abc" 2) [(==),(/=)]

seclet lst num func = seclet' lst 1 num func
where
seclet' [] _ _ _ = []
seclet' (x:xs) n a f | f n a = x: seclet' xs (n + 1) a f
seclet' (_:xs) n a f = '*': seclet' xs (n + 1) a f

583デフォルトの名無しさん2019/03/10(日) 17:19:36.82ID:lsf+n+kn
>>571 Perl5

($s, $n)= qw{abc 2};
@s = split'',$s;
@t = qw{*} x @s;
$n--;
($s[$n], $t[$n]) = ($t[$n], $s[$n]);
print @t, "\n", @s, "\n";

実行結果
~ $ perl 13_571.pl
*b*
a*c

584デフォルトの名無しさん2019/03/10(日) 17:47:53.28ID:lsf+n+kn
>>544 Perl5

@a = ([1, 2, 3,],
    [4, 5, 6]);
use List::Util sum;
push @$_, sum(@$_) for @a;
for $i (0..$#{$a[0]}) {
 push @b, sum(map{$a[$_][$i]} 0..$#a)
}
print "@$_\n" for @a;
print "@b\n";


実行結果
~ $ perl 13_544.pl
1 2 3 6
4 5 6 15
5 7 9 21

585デフォルトの名無しさん2019/03/10(日) 20:48:09.83ID:z5UigTCL

586デフォルトの名無しさん2019/03/10(日) 21:12:33.92ID:ObNpfzdX
ここっておっさんが多いイメージ

587デフォルトの名無しさん2019/03/10(日) 21:16:39.36ID:KcIurEvX

588デフォルトの名無しさん2019/03/10(日) 21:20:18.73ID:z5UigTCL
>>571 ruby
https://ideone.com/6NM2Z2

>>567
String#lines ←これの存在知らなかった
勉強になりました

589デフォルトの名無しさん2019/03/10(日) 21:46:22.59ID:KcIurEvX

590デフォルトの名無しさん2019/03/10(日) 21:59:51.08ID:5renFNS0

5915672019/03/10(日) 22:01:14.30ID:bEzyp4mc
>>588
余談だが、Ruby のString#lines の所を見たら、chomp: true で改行も削除できる!
Rubyは、色々と便利なものを作っている

p ary = <<"EOT".lines( chomp: true ) # 配列
a
b
EOT

#=> ["a", "b"]

592デフォルトの名無しさん2019/03/10(日) 22:14:16.51ID:SJp/1k7U

593デフォルトの名無しさん2019/03/10(日) 22:19:23.44ID:KcIurEvX

594デフォルトの名無しさん2019/03/10(日) 22:19:48.10ID:KcIurEvX
ごめん間違えた
>>571です

595デフォルトの名無しさん2019/03/10(日) 23:51:29.55ID:THpHptm5

596デフォルトの名無しさん2019/03/11(月) 00:57:47.40ID:HrDBQthw
>>571 Squeak/Pharo Smalltalk。nを複数指定可で

| fn |
fn := [:str :ns |
| ans |
ans := (String new: str size withAll: $*), String cr, str.
ns do: [:n | ans swap: n with: n + str size + 1].
ans
].

fn value: 'abc' value: #(2). "=>
'*b*
a*c' "

fn value: 'abcdef' value: #(2 3 5). "=>
'*bc*e*
a**d*f' "

597デフォルトの名無しさん2019/03/11(月) 01:39:23.53ID:+Nlo5Elt

598デフォルトの名無しさん2019/03/11(月) 02:41:21.51ID:+Nlo5Elt

599デフォルトの名無しさん2019/03/11(月) 07:59:46.54ID:hFtMxxmn
>>547 Perl5
https://ideone.com/Mbj5Hz


push @{$h{lc $_}}, $_ for <STDIN>;
print "@{$_}" for grep{@$_ > 1} values %h;

600デフォルトの名無しさん2019/03/11(月) 09:18:51.69ID:D2PSGRy3
>>571 Python

def split3(s,p=1) :
 r0= s[:p]+'*'+s[p+1:]
 r1= '*'*p + s[p] + '*'*(len(s)-(p+1))
 return r0+'\n'+r1

print(split3('abcd',2))
print(split3('abc',0))

'''結果
ab*d
**c*
*bc
a**
'''

601デフォルトの名無しさん2019/03/11(月) 10:48:42.57ID:u4Ymakq9
お題: 下の例のような入力から例の出力のアスキーアートを出力する。それ以外は自由
例:
入力: >>>>>vvvvv<<<<^^^^
出力:
>>>>>
^****v
^****v
^****v
^****v
<<<<v

602デフォルトの名無しさん2019/03/11(月) 11:00:20.46ID:JmszPBJl
これって一歩目はなんでもいいよね

603デフォルトの名無しさん2019/03/11(月) 11:35:10.21ID:AGCERQh7
>>571 Io
f := method(s,n,
"*" repeated(s size)atPut(n - 1, s at(n - 1)) println
s asMutable atPut(n - 1, 42)println
)
f("abc",2)
実行結果
*b*
a*c

604デフォルトの名無しさん2019/03/11(月) 11:45:13.16ID:+cahZmCl
>>601
それ3番目と4番目は必ず1番目と2番目の長さ-1になってるの?

605デフォルトの名無しさん2019/03/11(月) 11:48:56.08ID:u4Ymakq9
>>602
>>604
そういうめんどくさい質問がこないように、
それ以外は自由と付け加えてある

606デフォルトの名無しさん2019/03/11(月) 13:45:52.04ID:+cahZmCl
>>605
仕様をきっちり決めないと解釈の違いから沢山の違った回答が出てくる可能性があるのだが、それで良いと。

607デフォルトの名無しさん2019/03/11(月) 15:42:22.28ID:7+lrfCi1
>>604
そもそも4方向にいくらかずつ進んで四角形で終わりという形とは限らないのでは?
ランダムに方向や距離を生成して既に通った道も上書きするような入力を許容すると考えたっていいはず。

608デフォルトの名無しさん2019/03/11(月) 16:07:33.07ID:5vEtkzIB
>>605 何でこれ以外の形は許さんと言えないんだ?
自由にどうぞなんて問題じゃ無いだろ。

609デフォルトの名無しさん2019/03/11(月) 16:18:14.19ID:ZVqwh3rP
>>606,608
こいつらホント掃き溜めのゴミだな

610デフォルトの名無しさん2019/03/11(月) 16:19:55.06ID:+cahZmCl

611デフォルトの名無しさん2019/03/11(月) 16:25:40.59ID:+cahZmCl
>>607
なるほど。しかしそれならばその事を書いておいて欲しかったな。

>>609
何を作れば良いのかよくわからないから質問しているだけなのだが。それが君にとって何か不都合なのか?

612デフォルトの名無しさん2019/03/11(月) 16:58:12.79ID:PGatxMde
>>601
出力おかしくねぇ?最初と最後の行は5列だけど
間の行ぜんぶ6列になってるぞ?

出力:
>>>>>
^****v
^****v
^****v
^****v
<<<<v

こうじゃね?
>>>>>
^***v
^***v
^***v
^***v
<<<<v

613デフォルトの名無しさん2019/03/11(月) 17:14:58.23ID:+cahZmCl
ま、いいや。よくわかんない問題は放っておこう。

614デフォルトの名無しさん2019/03/11(月) 19:21:39.70ID:PGatxMde
>>601 javascript
長くなっちった
https://ideone.com/vzncKq

入力: <<<<^^^^>>>>>vv<<<<<<<<<<<vvv>>>^^^^^^^>>>>>>>>>>vvvvvv
出力:
***^>>>>>>>>>>
***^*********v
***^**^>>>>>*v
***^**^****v*v
<<<^<<<<<<<v*v
v**^**^******v
v**^**<<<<***v
v>>>**********

615デフォルトの名無しさん2019/03/11(月) 19:36:33.05ID:/Vx80pKW
お題
m×nマスのチェス盤を考える。
1つのナイトが最も左上のマスにあり、そこから任意の回数動かすことができる。
ナイトが訪れることのできるマスの個数を求めよ。

m=1, n=1
=> 1

m=3, n=3
=> 8 (真ん中のマスを訪れることができない)

m=4, n=4
=> 16

616デフォルトの名無しさん2019/03/11(月) 19:36:35.88ID:DXpwYxNa
>>614 説明がないと何をどうやってるのかわけわからん。
先ずは入力と出力をどう解釈して作ったのか?
形にも一貫性があるとは思えないけど。

しかしこんなのがどんどん出てきたら、煩わしいだけ。

617デフォルトの名無しさん2019/03/11(月) 20:02:17.74ID:JmszPBJl
いや、その通りに歩くんだろ

618デフォルトの名無しさん2019/03/11(月) 20:07:58.88ID:5vEtkzIB
出題通り以外の回答はやめてほしいな。
それ以外の回答をする場合は、解説文も日本語で書いてくれよ。

不慣れなプログラムもあることだろうし、長いプログラムなんて見る気にもならないし、プログラムを見ればわかるというのは無し。

619デフォルトの名無しさん2019/03/11(月) 21:26:59.93ID:ALw/TkKR
>>618
ソースの中身まではちゃんと確認してないけど、ちゃんと出題通りにできてると思う。
出題の"入力例"通りではないが、複雑な入力パターンに対して正しく動いてそうと思える実行例だと思うぞ。

620デフォルトの名無しさん2019/03/11(月) 21:31:45.37ID:1OBeL2+Y
>>601 Common Lisp, >>614の移植
https://ideone.com/B76Dki

621デフォルトの名無しさん2019/03/11(月) 22:12:51.52ID:+V1dboU8
>>>v<^^>>
の場合
*^>>
>^>
*<v

622デフォルトの名無しさん2019/03/11(月) 22:40:32.65ID:6pdTomDX
>>571 octave 複数列指定可能版
https://ideone.com/UqKcNb

h = @(m, n) cell2mat(arrayfun(@(c, i) {['*'; c] [c; '*']}(1 + (i == n)), m, 1:numel(m)));

h = @(m, n) cell2mat(arrayfun(@(c, i) {['*'; c] [c; '*']}(1 + any(i == n)), m, 1:numel(m)));

623デフォルトの名無しさん2019/03/11(月) 23:02:42.18ID:GdRfR4uu
以下の整形式の.ini ファイルから、すべての値を取得して、
「セクション名 : キー名 : 値」で表示する

[sec1]
key1=val1

[sec2]
key2=val2

624デフォルトの名無しさん2019/03/11(月) 23:51:36.77ID:/Vx80pKW

625デフォルトの名無しさん2019/03/12(火) 00:26:56.22ID:XpXqAgCh
>>623 Perl5

while (<DATA>) {
 $s = $1 if /\[(\w+)\]/;
 print "$s:$k:$v\n"
  if ($k, $v) = /(\w+)=(\w+)/;
}
__DATA__
[sec1]
key1=val1

[sec2]
key2=val2



実行結果
~ $ perl 13_623.pl
sec1:key1:val1
sec2:key2:val2

626デフォルトの名無しさん2019/03/12(火) 00:37:42.27ID:XpXqAgCh
>>625 も少し簡潔に書けるんだった…

while (<DATA>) {
 $s = $1 if /\[(\w+)\]/;
 print "$s:$1:$2\n" if /(\w+)=(\w+)/;
}
__DATA__
[sec1]
key1=val1

[sec2]
key2=val2

627デフォルトの名無しさん2019/03/12(火) 01:38:34.08ID:nghHbW0D
>>623 javascript(es2018 named capture groups)
`
[sec1]
key1=val1

[sec2]
key2=val2
`.replace(/\[(?<section>.+)\]\n(?<key>.+)=(?<value>.+)\n/g, '$<section>:$<key>:$<value>').trim();
結果:
sec1:key1:val1
sec2:key2:val2

628デフォルトの名無しさん2019/03/12(火) 05:56:44.85ID:KPetEW8/
>>547

Haskell

import Data.Char

main = (mapM_ print.filename) ["a","aB.txt","Ab.txt","xx","aBc.txt","cd","cD","CD","ab.txt","z"]

filename [] = []
filename (xs:xss)| length a > 1 = a:filename b
where
a = func (==)
b = func (/=)
func f = filter (f (map toUpper xs).map toUpper) (xs:xss)
filename (_:xss) = filename xss

629デフォルトの名無しさん2019/03/12(火) 17:03:25.03ID:+VdOvnK/
>>615

0 <= m,n <=10億 と仮定して

int64_t cal(int m, int n){
  if( m>n ) swap(m, n);
  if( m<=1 ) return m;
  if( m==2 ) return (n + 1) / 2;
  if( n==3 && m==3) return 8;
  return (int64_t)n * m;
}

630デフォルトの名無しさん2019/03/12(火) 18:21:10.69ID:MLSq27aG
>>623 Io
f := method(s,
s split("\n\n")map(splitNoEmpties("[","]","\n",=")join(":"))
)

631デフォルトの名無しさん2019/03/12(火) 18:30:10.82ID:M/w6PjEF
>>619
出題通りなのかどうかがわからんのだが。どう解釈したら出題通りとなるのか?

632デフォルトの名無しさん2019/03/12(火) 19:26:28.38ID:mUEXbKn8
お題
数列a[i]を考える。
a[0] = p
a[i+1] = q * a[i] + r

[入力]
p q r n
(p,q,r,nは整数)
(0≦p,q,r≦99)
(0≦n≦10^10)

[出力]
a[n] mod 13 を求めよ

1 2 0 8
=> 9 (2^8 mod 13)

1 0 99 0
=> 1

1 2 3 2
=> 0 (a[0]=1, a[1]=2*1+3=5, a[2]=2*5+3=13)

1 3 5 10000000000
=> ?

633デフォルトの名無しさん2019/03/12(火) 20:52:19.49ID:2hm/Dong
つまらん

634デフォルトの名無しさん2019/03/12(火) 21:03:21.90ID:KPetEW8/
>>619

>>547に対して、ナチュラルソートされて無くても(普通のソートでも正しい答えが得られるとは限らない)正しい答えを出せるとか、出題者の意図を踏まえながら、意図を超えた範囲もカバーするのはいいんじゃ無いか?
意図を無視するのは論外だが。

635デフォルトの名無しさん2019/03/12(火) 21:07:56.58ID:KPetEW8/
>>632
マシンパワーがあれば式を入れればいいだけってのはね。。。
解くのに頭使う。解いてみたら案外簡単(アルゴリズムが浮かぶのがキモ)。あえて難しくて最適化の道がある。とかが望ましい。

いあ、無茶振りだろうから、どれか2つ満たせればおkだが。

636デフォルトの名無しさん2019/03/12(火) 21:12:06.00ID:KPetEW8/
例えば[[1,2,3],[4,5,6],[7,8,9]]みたいな任意のn*nなリスト(または配列)を非破壊的に作れ。とか。

637デフォルトの名無しさん2019/03/12(火) 21:43:25.40ID:rf03pH6k
>>636
一般的なミューテートするカウンタも使っちゃダメってことかな?

6386232019/03/12(火) 22:49:08.83ID:oX4bYoPv
>>623
お題を修正

[ ] = の3つは、特別な記号です。
それらを含まない行は、無視して

[sec1]
key1=val1

[sec2]
key2=val2
x=y

>>627
セクション名・キー名・値は、特定の文字列ではありません!
特別な記号以外の、任意の文字列です

639デフォルトの名無しさん2019/03/12(火) 23:03:23.82ID:oX4bYoPv
お題

現行規格のISBN (ISBN-13) のcheck digit は、JANコードと同じく、
「モジュラス10 ウェイト3・1(モジュラス10 ウェイト3)」という計算法にて算出される

一番右側の? の所のcheck digitを除いて、数字以外は無視して、
一番左側の桁から順に、1、3、1、3…を掛けて、それらの和を取る。
和を10で割って出た余りを、10から引く。
ただし、10で割って出た余りの下1桁が0の場合は、check digitを0とする

ISBN 978-4-10-109205-?

9×1 + 7×3 + 8×1 + 4×3 + 1×1 + 0×3 + 1×1 + 0×3 + 9×1 + 2×3 + 0×1 + 5×3
= 9 + 21 + 8 + 12 + 1 + 0 + 1 + 0 + 9 + 6 + 0 + 15 = 82
82 ÷ 10 = 8 あまり 2
10 - 2 = 8

幾つかのISBN-13 で、計算してみて!

640デフォルトの名無しさん2019/03/12(火) 23:07:31.93ID:+VdOvnK/
>>632
 https://ideone.com/Y4N5oM  c++

 小さい数値は力技(bf2)で確認してみたが……

641デフォルトの名無しさん2019/03/12(火) 23:27:43.44ID:LDiZRGdZ
>>601 Common Lisp
>>620のリファクタリング
ついでに * を空白に、開始地点を A、終了地点を Z にしてみた
https://ideone.com/zMHal6

Python
https://pastebin.com/NAGHLtcu
実行結果 https://webmshare.com/Ma3gZ

642デフォルトの名無しさん2019/03/12(火) 23:42:34.93ID:2FAQzMGK
>>632 C
https://ideone.com/m3vejt

エクセルとかで実際に数列を計算してみると、長さ12(剰余の数-1)以下の周期になるっぽいのでそれで求められる。
普通に計算するとq * a[i] + r はどんどん大きくなるけど、
毎回 (q * a[i] + r) mod 13としても、計算に影響はないようなので、オーバーフローもせずに計算できる。
だたし、数学的に正しいか保証しかねるが。

643デフォルトの名無しさん2019/03/13(水) 00:12:22.73ID:rGhbMCbu
>>640
12 0 11 1
=> 11
というコーナーケースが…

644デフォルトの名無しさん2019/03/13(水) 00:29:04.16ID:Eq+ygVqk
>>643

確かに、
コメントアウト(bf2)するときに誤ってしまったようだ、
("if(n==0)" だったのだが、いらないなぁ)
どっちにしろ、0や1のテストは、やってない

645デフォルトの名無しさん2019/03/13(水) 00:51:17.73ID:vPzmbHWs
>>637
だめ。
そこが関数型言語と手続き型言語の考え方の大きな違いだし。
皮肉にも?それ作った時、入門書の関数より考え方の違いが分かった。

646デフォルトの名無しさん2019/03/13(水) 00:54:41.38ID:bUFEpZHr
>>638
> セクション名・キー名・値は、特定の文字列ではありません!
> 特別な記号以外の、任意の文字列です

えぇ…

入力:
[あああ]
いいい=ううう

[えええ]
おおお=かかか

出力:
あああ:いいい:ううう
えええ:おおお:かかか

少なくとも任意の文字列には対応してるじゃん。不当指摘だ!

647デフォルトの名無しさん2019/03/13(水) 01:18:15.16ID:FktqEJYT
>>645 javascript
const seqSqArr = n => Array.from({length: n}).map((v, i) => Array.from({length: n}, (v, j) => n * i + j + 1));
console.log(seqSqArr(3));
//=> [[1,2,3],[4,5,6],[7,8,9]]
console.log(seqSqArr(7));
//=> [[1,2,3,4,5,6,7],[8,9,10,11,12,13,14],[15,16,17,18,19,20,21],[22,23,24,25,26,27,28],[29,30,31,32,33,34,35],[36,37,38,39,40,41,42],[43,44,45,46,47,48,49]]

6486232019/03/13(水) 02:39:20.04ID:ZImJqTUY
>>646
スマン。漏れの間違い!

key, val などの特定の文字列を置換しているのかと、勘違いしていた

649デフォルトの名無しさん2019/03/13(水) 05:11:02.02ID:36vLAC/n
>>639 J
f =: 3 : 0
10 | 10 - 10 | +/ (12 $ 1 3) * "."0 }: y -. '-'
)
f '978-4-10-109205-8'
8

f '978-4873115870'
0

650デフォルトの名無しさん2019/03/13(水) 06:35:32.94ID:vPzmbHWs
>>636,637,645,647

Haskell

main = ps 3 >> putStrLn "" >> ps 7
where ps = print.seqSqList

seqSqList n = (take n.iterate (map (+ n))) [1..n]

out:
[[1,2,3],[4,5,6],[7,8,9]]

[[1,2,3,4,5,6,7],[8,9,10,11,12,13,14],[15,16,17,18,19,20,21],[22,23,24,25,26,27,28],[29,30,31,32,33,34,35],[36,37,38,39,40,41,42],[43,44,45,46,47,48,49]]

651デフォルトの名無しさん2019/03/13(水) 20:01:04.25ID:loIc2/nm

652デフォルトの名無しさん2019/03/13(水) 22:22:09.99ID:H95Q/dPG
こうかな?
;; Common Lisp

(defun seq-sq-list (n)
      (labels ((sub (i r)
           (if (zerop i)
             r
             (sub (1- i) (if (zerop (mod i n))
                     (cons (list i) r)
                     (cons (cons i (car r)) (cdr r)))))))
       (sub (* n n) nil)))

653さまよえる蟻人間 ◆T6xkBnTXz7B0 2019/03/13(水) 23:29:50.59ID:KwyST1w4
お題: ピリオド区切りの二つのバージョン番号を比較し、大小関係を判定した結果を-1, 0, 1のいずれとして返せ。

0.1.2 > 0.0: 1
1.2.3 < 1.3: -1
0.0.0 == 0.0: 0

654デフォルトの名無しさん2019/03/14(木) 00:08:08.19ID:TPG8S2ma
>>653
手抜きHaskell

main = mapM_ pc $ [("0.1.2", "0.0"), ("1.2.3", "1.3"), ("0.0.0", "0.0")]
where pc = print.uncurry mycompare

mycompare "0.0.0" "0.0" = 0
mycompare "0.0" "0.0.0" = 0
mycompare xs ys |xs `compare` ys == EQ = 0
|xs `compare` ys == GT = 1
|xs `compare` ys == LT = -1

655デフォルトの名無しさん2019/03/14(木) 01:08:57.36ID:vRIsxo2e
>>601 Perl5

$s = '>>>>>vvvvv<<<<^^^^';
($i, $y) = (0, 0);
for (split'',$s) {
 $i++ if />/;
 $i-- if /</;
 $j++ if /v/;
 $j-- if /\^/;
 push @t, [$i, $j, $_];
}
use List::Util qw{min max};
($i, $j) = (min(map{$$_[0]} @t), min(map{$$_[1]} @t));
$$_[0] -= $i, $$_[1] -= $j for @t;
($i, $j) = (max(map{$$_[0]} @t), max(map{$$_[1]} @t));
push @m, [('*')x($i + 1)] for 0..$j;
$m[$$_[1]][$$_[0]] = $$_[2] for @t;
use feature say;
say @$_ for @m;


実行結果
~ $ perl 13_601.pl
>>>>>
^***v
^***v
^***v
^***v
<<<<v

656デフォルトの名無しさん2019/03/14(木) 01:16:23.50ID:vRIsxo2e
>>638 Perl5

$r = qr/[^][=]/;
while (<DATA>) {
 chomp;
 $s = $1 if /\[($r+)\]/;
 print "$s:$1:$2\n" if /($r+)=($r+)/;
}
__DATA__
[sec1]
key1=val1

[sec2]
key2=val2


実行結果
~ $ perl 13_638.pl
sec1:key1:val1
sec2:key2:val2

657デフォルトの名無しさん2019/03/14(木) 06:43:00.64ID:3EvgP48J
>>653
0.0.1 > 0.0 でいいのか?

658さまよえる蟻人間 ◆T6xkBnTXz7B0 2019/03/14(木) 07:26:20.10ID:1+g2CCuw
>>657
ない桁はゼロと見なす。

659デフォルトの名無しさん2019/03/14(木) 10:42:18.54ID:YiVNNcx0
>>653 javascript
const vComp = (a, b) => {
const [semA, semB] = [a, b].map(v => {
const {major, minor = 0, patch = 0} = /(?<major>\d+)(\.(?<minor>\d+)(\.(?<patch>\d+))?)?/.exec(v).groups;
return {major, minor, patch};
});
const majorComp = semA.major - semB.major;
if (majorComp) return Math.sign(majorComp);
const minorComp = semA.minor - semB.minor;
if (minorComp) return Math.sign(minorComp);
const patchComp = semA.patch - semB.patch;
return Math.sign(patchComp);
};
console.log(vComp('0.1.2', '0.0'));
console.log(vComp('1.2.3', '1.3'));
console.log(vComp('0.0.0', '0.0'));
結果:
1
-1
0

(おまけ)ソート:
console.log(['0.1.2', '0.0', '1.2.3', '1.3', '0.0.0', '0.0'].sort(vComp));
結果:
["0.0", "0.0.0", "0.0", "0.1.2", "1.2.3", "1.3"]

660さまよえる蟻人間 ◆T6xkBnTXz7B0 2019/03/14(木) 10:59:38.01ID:PwP2txgq
>>653
大小関係の定義をまじめに考えましょう。
>>659
JavaScriptならsplit使えるはず。桁数の制限は要らない。

661デフォルトの名無しさん2019/03/14(木) 11:23:19.67ID:YiVNNcx0
ごめん勝手にsemverかと思い込んでた

662さまよえる蟻人間 ◆T6xkBnTXz7B0 2019/03/14(木) 11:35:04.68ID:1+g2CCuw
LaTeXのバージョンシステムはちょっと特殊で、円周率に近付くようになってる。この場合は文字列として比較しないといけない。
一般的なバージョンシステムはドットで区切られた整数を先頭から順に互いに比較して大小関係を定義する。
まれにアルファとかベータとか「限定版」とか訳のわからない文字列が付くことがあるが、これは常識がなければ大小関係を機械的に判定するのは難しい。

663さまよえる蟻人間 ◆T6xkBnTXz7B0 2019/03/14(木) 11:47:43.06ID:1+g2CCuw
一番確実なバージョン大小判定方法は、リリースごとに年月日とバージョン情報を記録しておくことだ。

664デフォルトの名無しさん2019/03/14(木) 13:52:35.97ID:uKED8jms

665デフォルトの名無しさん2019/03/14(木) 15:56:35.04ID:TPG8S2ma
>>547

Haskell
内包表記の方が何をやってるか分かり易いと気付いて書き換えた。

import Data.Char

main = (mapM_ print.filename) ["aB.txt","Ab.txt","xx","cd","cD","CD","ab.txt"]

filename [] = []
filename (xs:xss)| length a > 1 = a:filename b
where
a = func (==)
b = func (/=)
func f = [xs' | xs' <- (xs:xss), map toLower xs `f` map toLower xs']
filename (_:xss) = filename xss

666デフォルトの名無しさん2019/03/14(木) 18:00:35.68ID:38t26SL0
お題: 何も出力しないプログラム自身のコードをソートするとhello worldを出力するプログラムを作れ

667デフォルトの名無しさん2019/03/14(木) 18:07:12.84ID:YPV07ntD
>>653 # Python

def cmp(v0,v1):
 if v0==v1: return 0
 else: return 1 if (v0 > v1) else -1

print(cmp('1.2.3','1.2') , cmp('1.2.3','1.1.1') ,
cmp('1.1', '1.1') ,
cmp('1.2.3','1.3')
)

# 1 1 0 -1

668さまよえる蟻人間 ◆T6xkBnTXz7B0 2019/03/14(木) 18:11:49.83ID:1+g2CCuw
>>667
バージョン番号の各整数の数字は2個以上になることがある。'10.0'と'9.1'を比較せよ。

669デフォルトの名無しさん2019/03/14(木) 18:14:06.49ID:YPV07ntD
>>667
print( cmp('1.1.0', '1.1') )

# 1

670デフォルトの名無しさん2019/03/14(木) 18:32:38.72ID:YPV07ntD
>>667 訂正 Python

def cmp(v0,v1):
 v0 = list( map(int , v0.split('.') ) )
 v1 = list( map(int , v1.split('.') ) )
 if v0==v1: return 0
 else: return 1 if (v0 > v1) else -1

print(cmp('1.2.3','1.2') , cmp('1.2.3','1.1.1') ,
cmp('1.1.0', '1.1') ,
cmp('10.0','9.1') ,
cmp('1.1', '1.1') ,
cmp('1.2.3','1.3') ,
cmp('1.1', '1.1.0') ,
)

# 1 1 1 1 0 -1 -1

671さまよえる蟻人間 ◆T6xkBnTXz7B0 2019/03/14(木) 18:44:00.25ID:1+g2CCuw
>>670
残念だが不正解。比較できる桁がなければゼロと見なす、すなわち、2.0.0は2に等しいと見なす決まりがある。

672デフォルトの名無しさん2019/03/14(木) 18:50:17.55ID:dvZ8z+Z0

673デフォルトの名無しさん2019/03/14(木) 18:58:38.18ID:dvZ8z+Z0
お題:フィボナッチ数列を最初の10個表示せよ

ruby
https://ideone.com/ewyP50

perl6
https://ideone.com/O3tVZj

674さまよえる蟻人間 ◆T6xkBnTXz7B0 2019/03/14(木) 18:59:00.09ID:1+g2CCuw
ソフトウェア開発におけるバージョン管理は、製造メーカーにおける型番管理と同じくらい重要である。
検査逃れのために型番や履歴をごまかしたり、型番管理がなっていないメーカーはメーカー失格である。
インターネット全盛の現在では、型番はウェブ検索しやすいものでなければ、国際競争に負けてしまう。

675デフォルトの名無しさん2019/03/14(木) 18:59:16.90ID:38t26SL0
お題: 3つの数の最小値を1回の分岐で決めろ!

676デフォルトの名無しさん2019/03/14(木) 19:55:29.27ID:YiVNNcx0
>>660 javascript
const vComp = (a, b) => {
const verA = a.split`.`;
const verB = b.split`.`;
const shorter = verA.length - verB.length < 0 ? verA : verB;
const cmps = shorter.map((v, i) => Math.sign(verA[i] - verB[i]));
return cmps.reduce((acc, v, i) => Math.sign(acc + v * 2 ** (shorter.length - i)), 0);
};
console.log(vComp('0.1.2', '0.0'));
console.log(vComp('1.2.3', '1.3'));
console.log(vComp('0.0.0', '0.0'));
結果:
1
-1
0

(おまけ)ソート:
console.log(['0.1.2', '0.0', '1.2.3', '1.3', '0.0.0', '0.0'].sort(vComp));
結果:
["0.0", "0.0.0", "0.0", "0.1.2", "1.2.3", "1.3"]

677デフォルトの名無しさん2019/03/14(木) 19:59:51.70ID:YiVNNcx0
あっ間違えた
家帰ってから直す

678デフォルトの名無しさん2019/03/14(木) 20:14:25.92ID:vvVzV1YI
>>671 どこにそんな決まりがあるの?

普通 ver.1 が出て、その後ver.1.0 が出れば、ver.1.0 の方が新しいのは明らかだろ。
総称として、ver.1という場合もあるが、その場合はver.1.9も含まれる。

679デフォルトの名無しさん2019/03/14(木) 20:14:59.41ID:ko69m/9G
見つけた

RPM::VersionSort - RPM version sorting algorithm, in perl XS - metacpan.org
https://metacpan.org/pod/RPM::VersionSort

680デフォルトの名無しさん2019/03/14(木) 20:16:24.45ID:vvVzV1YI
とにかくバージョン番号が異なれば別のバージョンとみなすのが普通だろ。
同じと思う方がおかしい。

681デフォルトの名無しさん2019/03/14(木) 20:16:49.16ID:0tbf1s3D
お題:“木”という漢字を使って以下のようなフラクタル図形を描け

n=0


n=1
-木
木木

n=2
---木
--木木
-木--木
木木木木

n=3
-------木
------木木
-----木--木
----木木木木
---木------木
--木木----木木
-木--木--木--木
木木木木木木木木

※ハイフンはスペースだと思ってください

682さまよえる蟻人間 ◆T6xkBnTXz7B0 2019/03/14(木) 20:26:23.57ID:1+g2CCuw
>>678
Win32の固定幅のバージョン情報では4つの整数をドットで区切ったものを使用する。VerInstallFile関数はバージョン番号を比較する。0.0と0.0.0.0が違うバージョンだとアウトだ。

683デフォルトの名無しさん2019/03/14(木) 20:45:22.76ID:vvVzV1YI
>>682 そんなローカルールなんて知るかよ。 もしそういう意図なら問題を訂正しろよ。 いちいち誰かのいちゃもんに付き合ってる暇はない。

684デフォルトの名無しさん2019/03/14(木) 20:52:19.11ID:YiVNNcx0
>>660 の修正
const vComp = (a, b) => {
let verA = a.split `.`;
let verB = b.split `.`;
const len = Math.max(verA.length, verB.length);
verA = [...verA, ...'0'.repeat(len - verA.length)];
verB = [...verB, ...'0'.repeat(len - verB.length)];
const cmps = verA.map((v, i) => Math.sign(verA[i] - verB[i]));
return Math.sign(cmps.reduce((acc, v, i) => acc + v * 2 ** (len - i)), 0);
};

console.log(vComp('0.1.2', '0.0'));
console.log(vComp('1.2.3', '1.3'));
console.log(vComp('0.0.0', '0.0'));
console.log(['0.1.2', '0.0', '1.2.3', '1.3', '0.0.0', '0.0'].sort(vComp));
//いいかげん結果省略

685デフォルトの名無しさん2019/03/14(木) 22:10:39.99ID:8oAE3RnG
>>683
例に0.0.0と0.0が等しいって書いてあるんだが

686デフォルトの名無しさん2019/03/14(木) 23:16:14.88ID:3EvgP48J
>>683
> いちいち誰かのいちゃもんに付き合ってる暇はない。
ならスルーしろよ
お前の頓珍漢な解釈なんて要らんし

687デフォルトの名無しさん2019/03/14(木) 23:41:35.78ID:nI5lwjDU
>>653 Squeak Smalltalk

| fn |
fn := [:strs | (strs collect: [:str | (str subStrings: '.') polynomialEval: 1/1e4]) reduce: #<=>].
fn value: #('0.1.2' '0.0'). "=> 1 "
fn value: #('1.2.3' '1.3'). "=> -1 "
fn value: #('0.0.0' '0.0'). "=> 0 "

688デフォルトの名無しさん2019/03/15(金) 00:00:24.31ID:27sSd34q
>>653 Perl5

use feature current_sub;
@is = (['0.1.2', '0.0'], ['1.2.3', '1.3'], ['0.0.0', '0.0']);
for (@is) {
 ($l, $r) = @$_;
 @l = split'\.', $l;
 @r = split'\.', $r;
 $z = sub {
  my $a = shift @l;
  my $b = shift @r;
  if (defined $a or defined $b) {
   $a //= 0;
   $b //= 0;
   $a <=> $b or __SUB__->()
  } else {
   0
  }
 }->();
 %d = (-1 => ' <', 0 => '==', 1 => '> ');
 print "$l $d{$z} $r : $z\n";
}

実行結果
~ $ perl 13_653.pl
0.1.2 > 0.0 : 1
1.2.3 < 1.3 : -1
0.0.0 == 0.0 : 0

689デフォルトの名無しさん2019/03/15(金) 00:10:49.43ID:27sSd34q
>>673 Perl5

@f = (0, 1);
push @f, $f[-2] + $f[-1] while @f < 10;
print "@f\n";

実行結果
~ $ perl 13_673_fib10.pl
0 1 1 2 3 5 8 13 21 34


Prel6、いいな…

690 ◆QZaw55cn4c 2019/03/15(金) 00:29:52.08ID:LCz/5Veu
>>675
>1回の分岐で決めろ!
https://ideone.com/15k0PN
は題意を満たしていますか?

691デフォルトの名無しさん2019/03/15(金) 00:45:04.99ID:GUP5tEyB
2回分岐してるように見えるが

692デフォルトの名無しさん2019/03/15(金) 00:50:01.20ID:ltf0XXfV
>>666 I
行単位で昇順にソートする場合

exit
"hello world" println

文字単位のソートの場合は難しそう。

693デフォルトの名無しさん2019/03/15(金) 00:52:36.60ID:J+j6Qj2a
>>675 Java
https://ideone.com/dAlKtw
0回じゃお題満たしてないからだめです?

694デフォルトの名無しさん2019/03/15(金) 01:15:34.20ID:T0clmjRI
>>673 Squeak Smalltalk

| fibGen |
fibGen := [:a :b | Generator on: [:g | [g yield: a. b := a + b. a := b - a] repeat]].
(fibGen value: 0 value: 1) next: 10.

"=> an OrderedCollection(0 1 1 2 3 5 8 13 21 34) "

695デフォルトの名無しさん2019/03/15(金) 01:34:55.02ID:4EriVrie
>>681 Squeak Smalltalk

| sp fn |
sp := $-. "sp := Character space."
fn := [:n |
| tree |
tree := [:lines :count |
(lines collectWithIndex: [:line :idx |
line, (String new: idx - 1 * 2 withAll: sp), line
]), lines
].
(((1 to: n) inject: #('木') into: tree) collectWithIndex: [:line :idx |
(String new: idx - 1 withAll: sp), line
]) reversed asStringWithCr
].

fn value: 0. "=>
'木' "

fn value: 1. "=>
'-木
木木' "

fn value: 2. "=>
'---木
--木木
-木--木
木木木木' "

696デフォルトの名無しさん2019/03/15(金) 01:51:53.98ID:Fj/79Ht+
>>673 javascript
const take = n => function*(iterable) {
const iterator = iterable[Symbol.iterator]();
for (let i = 0; i < n; i++) {
const {value, done} = iterator.next();
if (done) break;
yield value;
}
};
const fibo = function*() {
const memo = [0n, 1n];
const fib = n => n in memo ? memo[n] : memo[n] = fib(n - 2) + fib(n - 1);
for(let i = 0; ; i++) yield fib(i);
}();

console.log([...take(10)(fibo)]);
結果:
[0n, 1n, 1n, 2n, 3n, 5n, 8n, 13n, 21n, 34n]

697デフォルトの名無しさん2019/03/15(金) 08:40:18.32ID:VdqhZ9XO

698デフォルトの名無しさん2019/03/15(金) 10:29:40.47ID:4uXCwYPV
>>696
よく考えたら配列で出力する必要もなかった
console.log(...take(10)(fibo));
結果:
0 1 1 2 3 5 8 13 21 34

699デフォルトの名無しさん2019/03/15(金) 10:50:31.62ID:ltf0XXfV
>>666 Lua

a=ture
a=a or print("hello world")

700デフォルトの名無しさん2019/03/15(金) 10:54:07.06ID:EVqxIhVf
>>673

Haskell

main = (print.take 10) fibs
where fibs = 0:1:zipWith (+) fibs (tail fibs)

701デフォルトの名無しさん2019/03/15(金) 11:30:37.72ID:gesJPCRi
>>670 訂正 Python

def ver (v):
 s = list( map(int , v.split('.') ) )
 for _ in s:
  if s[-1] == 0 :s.pop(-1)
 return s

def cmp(v0,v1):
 v0 = ver(v0)
 v1 = ver(v1)
 if v0==v1: return 0
 else: return 1 if (v0 > v1) else -1

print(cmp('1.2.3','1.2') , cmp('1.2.3','1.1.1') ,
cmp('10.0','9.1') ,
cmp('1.1', '1.1') ,
cmp('1.2.0.0','1.2.0') ,
cmp('1.2.3','1.3')
)

# 1 1 1 0 0 -1

702デフォルトの名無しさん2019/03/15(金) 12:06:15.98ID:phFelL6J
>>666
「ソートすると」ではなく「ソートしてからその出力を実行またはコンパイルして実行すると」なのでは?

703デフォルトの名無しさん2019/03/15(金) 13:00:31.13ID:1zMWa3GW
>>702
せやで

704デフォルトの名無しさん2019/03/15(金) 13:38:24.99ID:CRw2aIHX
そーっとしておこう

705デフォルトの名無しさん2019/03/15(金) 15:16:52.97ID:1zMWa3GW
お題: プログラムのコードの文字を縦読みしたコードが実行可能なコード

706デフォルトの名無しさん2019/03/15(金) 17:37:30.24ID:g4S7Lu9n
お題
2桁16進数化したものをつなげた形でIPアドレスが与えられる。(例:192.168.0.1 -> C0A80001)
与えられたIPアドレスからホスト名を逆引きせよ。


08080808 -> google-public-dns-a.google.com
9da6e21a -> www.cnn.com

707デフォルトの名無しさん2019/03/15(金) 18:51:48.50ID:phFelL6J

7086732019/03/15(金) 19:08:00.81ID:3zDqFokC

709デフォルトの名無しさん2019/03/15(金) 19:13:09.78ID:4uXCwYPV
>>706 node
const reverse = hexIP => require('dns').reverse(hexIP
.split(/^(..)(..)(..)(..)$/g)
.map(xx => parseInt(xx, 16) || '')
.join('.').replace(/^\.|\.$/g, ''),
(err, hostnames) => {
console.log(hostnames);
});
console.log(reverse('08080808')); //=> [ 'google-public-dns-a.google.com' ]
console.log(reverse('9da6e21a')); //=> [ 'www.cnn.com' ]

710デフォルトの名無しさん2019/03/16(土) 01:04:28.66ID:moiau3OK
>>688 もっと簡潔に書けるんだった…

>>653 Perl5

use feature current_sub;
@is = (['0.1.2', '0.0'], ['1.2.3', '1.3'], ['0.0.0', '0.0']);
for (@is) {
 ($l, $r) = @$_;
 @l = split'\.', $l;
 @r = split'\.', $r;
 $z = sub {
  my $a = shift @l;
  my $b = shift @r;
  (defined $a or defined $b) ? ($a <=> $b or __SUB__->()) : 0
 }->();
 %d = qw{-1 < 0 == 1 >};
 print "$l $d{$z} $r : $z\n";
}

実行結果
~ $ perl 13_653.pl
0.1.2 > 0.0 : 1
1.2.3 < 1.3 : -1
0.0.0 == 0.0 : 0

711デフォルトの名無しさん2019/03/16(土) 02:33:36.77ID:ksQagb59

712デフォルトの名無しさん2019/03/16(土) 06:51:03.68ID:x9tnPyz1
>>666

Haskell
空文字は出力しないと動かないから許して。(動く場合はmain =でパターンマッチして出力文埋め込むだけだけど)
ソートした自身の書き込み先、実行先は自身じゃ無いといけないとは書いてない。

import System.Process

main = putStr "" >> readFile "runmyself.hs" >>= \f -> writeFile "runmyself2.hs" ((replace.unlines.qsort.lines) f) >> callCommand "runghc runmyself2.hs"

replace [] = []
replace (p:u:t:s:t2:r:x:y:z:xs) | (p:u:t:s:t2:r:x:y:z:[]) == "putStr \"\"" = "putStrLn \"Hello World\"" ++ replace xs
replace (a1:a2:a3:a4:a5:a6:a7:a8:a9:a10:a11:a12:a13:a14:a15:a16:a17:a18:a19:a20:a21:a22:a23:a24:a25:a26:a27:a28:a29:a30:a31:a32:a33:a34:a35:a36:a37:xs) |
(a1:a2:a3:a4:a5:a6:a7:a8:a9:a10:a11:a12:a13:a14:a15:a16:a17:a18:a19:a20:a21:a22:a23:a24:a25:a26:a27:a28:a29:a30:a31:a32:a33:a34:a35:a36:a37:[]) == ">> callCommand \"runghc runmyself2.hs\"" = "" ++ replace xs
replace (x:xs) = x:replace xs

qsort [] = []
qsort (x:xs) = qsort [s| s <- xs, s <= x] ++ [x] ++ qsort [l| l <- xs, l > x]

713デフォルトの名無しさん2019/03/16(土) 14:50:17.74ID:0dLFyPZP
>>681 Perl5

use feature say;
$n = 0;
@t = ('木');
say "n=$n\n$t[0]";
for $n (1..2) {
 $l = '-' x 2**($n-1);
 @u = map{$l . $_ . $l} @t;
 @w = map{$t[$_].$t[$_]} 0..$#t;
 @t = (@u, @w);
 say "n=$n";
 say for @t;
}

実行例
~ $ perl 13_681.pl
n=0

n=1
-木-
木木
n=2
---木---
--木木--
-木--木-
木木木木

注) 正直者には、-はスペースに見えます。

714デフォルトの名無しさん2019/03/16(土) 16:51:50.43ID:EVMD7h0V
お題: プログラム言語をなにも知らない人にもプログラムの意味が理解できるコメント無しのhello worldを出力するコプログラム

715デフォルトの名無しさん2019/03/16(土) 17:11:38.87ID:0dLFyPZP
わかりません><

716デフォルトの名無しさん2019/03/16(土) 17:16:48.87ID:EVMD7h0V
お題: 文字列に丁度いい具合にグリッチを入れて超かっこいい文字列を作るプログラム

717さまよえる蟻人間 ◆T6xkBnTXz7B0 2019/03/16(土) 17:18:04.51ID:PQISp+Pa
グリッチは広辞苑には載っていません。説明して下さい。

718デフォルトの名無しさん2019/03/16(土) 17:21:14.90ID:EVMD7h0V
>>717
いやです

719デフォルトの名無しさん2019/03/16(土) 17:36:13.64ID:0dLFyPZP

720デフォルトの名無しさん2019/03/16(土) 20:05:38.53ID:INaBYg0f
グリッチってアレでしょ?
あの、整いました!ってやつ。
最近みないな。
https://glitch.com

7217072019/03/17(日) 01:26:35.49ID:5dC2feuc
>>706
Kotlin
https://paiza.io/projects/PHrLKrBMqZYA6AC9bUWDcg

何故か 9da6e21a の方はホスト名になってくれず IP アドレスの文字列になる。

7227072019/03/17(日) 02:33:00.06ID:5dC2feuc
>>706
C
https://paiza.io/projects/ZW4sJq_ea_wQQxe_vOlGjQ

gethostbyname() や gethostbyaddr() ではなく getnameinfo() 使ってみました。

723デフォルトの名無しさん2019/03/17(日) 06:18:59.33ID:k04EM+xl
2桁までの足し算の筆算を表示せよ。

例:
29
+15
----
14
3
----
44

29
+ 5
----
14
2
----
34

724デフォルトの名無しさん2019/03/17(日) 06:20:05.97ID:5dC2feuc

725デフォルトの名無しさん2019/03/17(日) 07:23:54.75ID:1ggb6IGK
お題
実数a,b (0<a<b)が与えられたとき、平面座標(a,b),(0,0),(a,-b)の3点を通る円の半径を求める。

726デフォルトの名無しさん2019/03/17(日) 07:27:24.80ID:vfP8HMqf
余弦定理と正弦定理1回ずつ使うだけだな

727デフォルトの名無しさん2019/03/17(日) 07:31:01.10ID:OwOB9RAr
数学で解けてもコードに落とせない人っているよね

728デフォルトの名無しさん2019/03/17(日) 08:41:45.83ID:k04EM+xl
>>727
居るけど、そういう人って機械自体が苦手な人。
機械と数学に強くてコードに落とせない人には会ったことがない。

機械には強いけど数学苦手だからコードに落とせないって人は(自分含め)沢山いるが。

729デフォルトの名無しさん2019/03/17(日) 12:19:22.82ID:gm8A83sV
自転車修理屋さんが機械に強いけどコードなんて、かけなさそう

730デフォルトの名無しさん2019/03/17(日) 12:38:59.54ID:TUY5K+QC
>>723 Perl5

for (<DATA>) {
 ($l, $o, $r) = split;
 @l = $l =~ /(\d?)(\d)/;
 @r = $r =~ /(\d?)(\d)/;
 $a1 = $l[0] + $r[0];
 $a0 = $l[1] + $r[1];
 @a1 = $a1 =~ /(\d?)(\d)/;
 @a0 = $a0 =~ /(\d?)(\d)/;
 $a = 10*$a1 + $a0;
 $" = '';
 print <<"EOF";
@l
$o@r
---
@a1
@a0
---
$a

EOF
}
__DATA__
29 + 15
29 + 5

731デフォルトの名無しさん2019/03/17(日) 12:40:50.32ID:TUY5K+QC
>>730 の実行結果

~ $ perl 13_723.pl
29
+15
---
3
14
---
44

29
+5
---
2
14
---
34

せっかくのスペース調整が詰まっちゃって残念なのでアンカーでポップアップして見てね
>>731

732デフォルトの名無しさん2019/03/17(日) 12:41:06.87ID:PfKDQB+U

733デフォルトの名無しさん2019/03/17(日) 13:19:09.72ID:k04EM+xl
>>723
掛け算に対応したり、1桁どうしの計算用フォーマット作ったりしてたら規模がでかくなった(・ω・`)

1
* 2
-----
2

10
* 0
-----
0

Haskell

https://ideone.com/SCzGKq

734デフォルトの名無しさん2019/03/17(日) 13:39:28.89ID:yIqzgq0g

735デフォルトの名無しさん2019/03/17(日) 18:42:43.38ID:7j/Zhhp5
>>723 ネタ回答: WolframAlpha API / node
// index.js
const {get} = require('http');
const appid = '<<YOUR WolframAlpha APP ID>>';
process.stdin.on('data', data => {
get(`http://api.wolframalpha.com/v2/query?appid=${appid}&input=${encodeURIComponent(data.toString().trim())}&podstate=Result__Step-by-step+solution&format=image&output=json`, res => {
res.setEncoding('utf8');
let body = '';
res.on('data', chunk => {body += chunk;});
res.on('end', () => {
get(JSON.parse(body).queryresult.pods.filter(({title}) => title === 'Results')[0].subpods.filter(({title}) => title === 'Possible intermediate steps')[0].img.src, res => {
res.on('data', data => {process.stdout.write(data)});
});
});
});
});
$ echo 29+15 | node . > ./test1.gif
プログラミングのお題スレ Part13 	YouTube動画>1本 ->画像>15枚
$ echo 29+5 | node . > ./test2.gif
プログラミングのお題スレ Part13 	YouTube動画>1本 ->画像>15枚
$ echo 29*15 | node . > ./test3.gif
プログラミングのお題スレ Part13 	YouTube動画>1本 ->画像>15枚

試しに一桁×一桁やってみたらなんだか微妙な計算過程に…
$ echo 5*5 | node . > ./test.gif
プログラミングのお題スレ Part13 	YouTube動画>1本 ->画像>15枚

あと割り算はAPIからでは計算過程のURL取れなかった

736デフォルトの名無しさん2019/03/17(日) 19:54:31.54ID:k04EM+xl
>>735
こうやって足し算の筆算とは言え、人間の思考過程をプログラムで再現してみると小学生から結構複雑な処理してるんだなと思う。
もっと人間の処理に近づけるなら文字列として認識して、1桁目を数字に変換して〜みたいになるんだろうけど。

737デフォルトの名無しさん2019/03/17(日) 22:48:25.97ID:t+AGMGYK
>>494
(CSVはコンマ区切りの値だよ)

738デフォルトの名無しさん2019/03/17(日) 23:32:46.95ID:wEirTeMQ
>>737
カンマを逆から読むとマンコですよ

739デフォルトの名無しさん2019/03/17(日) 23:33:11.60ID:wEirTeMQ
致命的なミスを犯しました

740デフォルトの名無しさん2019/03/17(日) 23:35:38.92ID:QL30OvU4
許さないからな

741デフォルトの名無しさん2019/03/18(月) 00:38:16.94ID:9+FFV4Nx
>>494 >>496 Perl5
use feature say;
@data = <DATA>;
chomp @data;
@tags = split' ', shift @data;
%idx = map{$_ => $n++} @tags;
@sum = 0 x $n;
for (@data) {
 @fs = split' ';
 for (0..$n-1) {
  $v = $fs[$_];
  if ($v =~ /^(\d+\.\d*|\d*\.\d+|\d+)$/) {
   $sum[$_] += $v;
  } else {
   warn "変なデータが紛れ込んでいます_ノ乙(、ン、)_`$v'\n";
  }
 }
}
for (@tags) {
 say "$_ の合計 = ", $sum[$idx{$_}];
}
__DATA__
カラム1 カラム2 カラム3 カラム4
1,0 2.0 3.0 4.0
2.1 3.1 4.1 5.1

~ $ perl 13_494.pl
変なデータが紛れ込んでいます_ノ乙(、ン、)_`1,0'
カラム1 の合計 = 2.1
カラム2 の合計 = 5.1
カラム3 の合計 = 7.1
カラム4 の合計 = 9.1

742デフォルトの名無しさん2019/03/18(月) 01:13:14.07ID:4b49AUHf
>>738
マンコ・カパックは、インカ神話によるクスコ王国の初代国王である。

743デフォルトの名無しさん2019/03/21(木) 03:20:09.08ID:ZuEvTwkR

744デフォルトの名無しさん2019/03/21(木) 05:20:06.50ID:ZuEvTwkR
>>675
Kotlin
https://paiza.io/projects/SlCrKgxVJRghtvESdUMR_A

リストの中の最小値をループして探し出しように作っただけなんだけど、こんなんで良いのか?
(MutableListなのでsort()しちゃうという手抜きワザもあったがそれだと表面上分岐が一つもない状態になるので止めた)。

745デフォルトの名無しさん2019/03/21(木) 11:30:55.91ID:4Lv8Ku6J
>>494 Squeak Smalltalk。コンマを分割と見なしそれぞれについての和を出力させてみた

| fn |
fn := [:columnName |
FileStream oldFileNamed: 'data.txt' do: [:file |
| index sum |
index := (file nextLine subStrings: ' ') indexOf: columnName.
sum := 0.
[file atEnd] whileFalse: [
| next |
next := ((file nextLine subStrings: ' ') at: index) subStrings: ','.
sum := sum + (next size = 1 ifTrue: [next anyOne] ifFalse: [next])].
sum
]
].

fn value: 'カラム3'. "=> 7.1 "
fn value: 'カラム1'. "=> #(3.1 2.1) "

746デフォルトの名無しさん2019/03/21(木) 13:37:55.15ID:p+hkSRzH
お題
長方形の盤で左上から上下左右に一マスずつ移動して全てのマスを
辿る。
移動の順番を表した数字を向きと終点を表す文字(↑↓←→★、
上下左右終、UDLRG、^V<>Gなど)に変換する。

入力
1 4 5 6
2 3 8 7
15 14 9 10
16 13 12 11

出力
↓→→↓
→↑↓←
↓←→↓
★↑←←

747デフォルトの名無しさん2019/03/21(木) 14:37:03.32ID:Krn8F3T2
>>746 Perl5
@a = map{[split]} <DATA>;
for $y (0..$#a) {
 $h{$a[$y][$_]} = [$y,$_,''] for 0..$#a;
}
@s = keys %h;
%r = qw{-1,0 ↑ 1,0 ↓ 0,-1 ← 0,1 →};
for $i (1..@s) {
 if ($i == @s) {
  $d = '★'
 } else {
  $y = $h{$i+1}->[0] - $h{$i}->[0];
  $x = $h{$i+1}->[1] - $h{$i}->[1];
  $d = $r{"$y,$x"}
 }
 $h{$i}->[2] = $d;
}
($y, $x, $d) = @$_, $a[$y][$x] = $d for values %h;
use feature say;
say "@$_" for @a;
__DATA__
1 4 5 6
2 3 8 7
15 14 9 10
16 13 12 11

実行結果
~ $ perl 13_746.pl
↓ → → ↓
→ ↑ ↓ ←
↓ ← → ↓
★ ↑ ← ←

748デフォルトの名無しさん2019/03/21(木) 22:33:42.92ID:4Lv8Ku6J
>>723 Squeak Smalltalk

| fn |
fn := [:int1 :int2 |
| strings width digits interms ans max line |
strings := {int1. int2} collect: #asString.
width := (strings detectMax: #size) size.
digits := strings collect: [:str |
(str forceTo: width paddingStartWith: $0) reversed asArray collect: #asString].
interms := (digits reduce: #+) collectWithIndex: [:interm :idx |
interm, (String new: idx-1 withAll: Character space)].
ans := interms polynomialEval: '10'.
strings atLast: 1 put: '+ ', strings last.
max := ((strings, {ans}) collect: #size) max.
line := String new: max withAll: $-.
(strings, {line}, interms, {line. ans} collect: [:str |
(str forceTo: max paddingStartWith: Character space) withoutTrailingBlanks
]) asStringWithCr
].

fn value: 987 value: 65. "=>
' 987
+ 65
----
12
14
9
----
1052' "

749デフォルトの名無しさん2019/03/22(金) 05:04:29.93ID:NMDgNTgg

750デフォルトの名無しさん2019/03/22(金) 12:12:43.26ID:bmKj2SZK
>>746 Squeak Smalltalk

| fn |

fn := [:str |
| map range sign goal position next atEnd |
map := str lines collect: [:line | line subStrings collect: #asInteger].
range := 1@1 extent: map first size @ map size.
sign := (0 asPoint fourNeighbors with: #(→ ↓ ← ↑) collect: #->) as: Dictionary.
goal := #★.
position := 1@1. next := 2. atEnd := false.
[atEnd] whileFalse: [
| found |
found := position fourNeighbors detect: [:neighPos |
(range containsPoint: neighPos) and: [((map at: neighPos y) at: neighPos x) = next]
] ifNone: [atEnd := true. Float nan].
(map at: position y) at: position x put: (sign at: found - position ifAbsent: goal).
position := found. next := next + 1.
].
(map collect: #join) asStringWithCr
].

fn value: '1 4 5 6
2 3 8 7
15 14 9 10
16 13 12 11'

"=>
'↓→→↓
→↑↓←
↓←→↓
★↑←←' "

751デフォルトの名無しさん2019/03/22(金) 20:50:59.33ID:KB/r9SyN

752デフォルトの名無しさん2019/03/22(金) 21:14:53.89ID:97922Y7I
まだ見にくいなあ。線を繋いで矢印を入れることはできないかな。

753デフォルトの名無しさん2019/03/22(金) 21:41:47.96ID:nZ/OoXFx
罫線
│┌─┐
└┘┌┘
┌┐└┐
★└─┘

直線部に矢印
│┌→┐
└┘┌┘
┌┐└┐
★└←┘

こんな感じ?

754デフォルトの名無しさん2019/03/22(金) 21:43:03.63ID:nZ/OoXFx
スタート部も矢印に出来るやん…

↓┌→┐
└┘┌┘
┌┐└┐
★└←┘

7557472019/03/22(金) 23:30:54.68ID:DMg7GUli
code、プリーズ

756デフォルトの名無しさん2019/03/23(土) 01:24:21.91ID:Bvojjkpo
>>754
Kotlin
https://paiza.io/projects/jjP3AHDkfJ4t_Lfsd3wmlA

>>749 を改造して作った。

757デフォルトの名無しさん2019/03/23(土) 01:27:24.77ID:Bvojjkpo
罫線や矢印が半角で★が全角で表示されてしまうとずれるな。
ま、しょうがないか。

758デフォルトの名無しさん2019/03/23(土) 02:35:34.66ID:FcxASXew

759デフォルトの名無しさん2019/03/23(土) 05:47:57.62ID:ZlGSstH0
>>754 Squeak Smalltalk

| fn |
fn := [:str |
| map range signs sign goal position from next atEnd |
map := str lines collect: [:line | line subStrings collect: #asInteger].
range := 1@1 extent: map first size @ map size.
goal := #★. signs := #(┌ ┌ ← → └ └ ┐ ┐ ↑ ↓ ┘ ┘) readStream.
sign := Dictionary new.
0 asPoint fourNeighbors combinations: 2 atATimeDo: [:combi |
sign at: combi copy put: signs next; at: combi reversed put: signs next].
position := 1@1. from := nil. next := 2. atEnd := false.
[atEnd] whileFalse: [
| found delta |
found := position fourNeighbors detect: [:neighPos |
(range containsPoint: neighPos) and: [((map at: neighPos y) at: neighPos x) = next]
] ifNone: [atEnd := true. Float nan].
delta := found - position.
(map at: position y) at: position x put: (sign at: {from ifNil: [delta negated]. delta} ifAbsent: goal).
position := found. from := delta negated. next := next + 1].
(map collect: #join) asStringWithCr
].

fn value: '1 4 5 6
2 3 8 7
15 14 9 10
16 13 12 11' .
"=>
'↓┌→┐
└┘┌┘
┌┐└┐
★└←┘' "

760デフォルトの名無しさん2019/03/23(土) 06:18:42.67ID:ZlGSstH0
>>759 758の入力例を拝借

fn value: '1 2 3 4 5
16 17 18 19 6
15 24 25 20 7
14 23 22 21 8
13 12 11 10 9'.

"=>
'→→→→┐
┌→→┐↓
↑┌★↓↓
↑└←┘↓
└←←←┘' "

fn value: '1 4 5 8 9 12
2 3 6 7 10 11'.

"=>
'↓┌┐┌┐★
└┘└┘└┘' "

fn value: '1 4 5 6
2 3 8 7
16 14 9 10
15 13 12 11' .

"=> 繋げられるところまでで終点にする。
'↓┌→┐
└┘┌┘
16★└┐
15└←┘' "

761デフォルトの名無しさん2019/03/23(土) 22:17:53.61ID:4V4ijAbJ
S : Start
E : End
X : 行けない所

で、表す方がよいかも

762デフォルトの名無しさん2019/03/23(土) 23:35:50.10ID:4ExQ31KE
縦読み

763デフォルトの名無しさん2019/03/23(土) 23:49:28.93ID:5/UQAxw+
>>761
セックス!

764デフォルトの名無しさん2019/03/24(日) 01:17:54.50ID:TWBa+gHA
>>746 C
https://ideone.com/dQ2NRt
行けないところがある場合■で表示した

765デフォルトの名無しさん2019/03/24(日) 13:31:32.22ID:Vlgf6sT0
お題 :次のようなジョブパラメータで表されるジョブ(製造工程)があります。全て完成するための最小時間とマシンスケジュールを求めてください。貧乏なので同じ番号のマシンは一台しかありません。{A, B}とあれば;Aマシン番号、B:所要時間

int job_param[JOBNUM][STP][2] = {
{{3, 10}, {4, 10}, {2, 12}, {0, 18}, {1, 4}},
{{1, 11}, {2, 6}, {3, 2}, {4, 8}, {0, 15}},
{{2, 10}, {4, 16}, {3, 2}, {1, 8}, {0, 14}},
{{2, 15}, {1, 12}, {0, 16}, {3, 6}, {4, 17}},
{{4, 14}, {0, 2}, {1, 15}, {2, 6}, {3, 10}}};

766デフォルトの名無しさん2019/03/24(日) 13:50:50.08ID:ynFGlX0q
>>765
順序に対する制限とかは?
それとなんで5つに分かれているのか?
全部一塊で25個のマシン番号と所要時間のペアがある状態だと順序の関係で何かまずいのか?

767デフォルトの名無しさん2019/03/24(日) 13:56:04.93ID:xOvhcY6B
>>766
5つのタスクでそれぞれ5つの工程があるってことだろう

768デフォルトの名無しさん2019/03/24(日) 14:40:55.72ID:ynFGlX0q
>>767
その辺の制限やルールが書かれていないからどうやれば良いのかが分からない、ということ。

順序も何もかも(マシン番号と所要時間も)入れ替えて構わないなら0〜4のマシン全体に所要時間を平均的に
詰め込むだけになると思うが、わざわざジョブとか分けてるんだからどうやらそうではなさそうだよな。
どうやら順序や入れ替えには制限があるように見える。しかしその制限が書かれていない。

769デフォルトの名無しさん2019/03/24(日) 17:03:38.93ID:Ou399CfX
>>765
>>766
>>767
ジョブショップスケジューリング問題です。この問題はジョブや機械が増加すると調べなければならない組み合わせが爆発的に増加してしまうため、現実的な時間で最適解を求めることが難しいとされています(NP困難として知られています)。
マシンを配列順に使用することで1つの製品ができます。

私の実験では10分ぐらい待っても95で終わりませんでした。

770デフォルトの名無しさん2019/03/24(日) 17:35:40.10ID:Ou399CfX
>>769
途中結果
Solution 4
COST_TIME: 95
0 : ( 3, 0, 10), ( 4, 15, 25), ( 2, 27, 39), ( 0, 46, 64), ( 1, 65, 69)
1 : ( 1, 0, 11), ( 2, 40, 46), ( 3, 54, 56), ( 4, 57, 65), ( 0, 80, 95)
2 : ( 2, 16, 26), ( 4, 27, 43), ( 3, 44, 46), ( 1, 47, 55), ( 0, 65, 79)
3 : ( 2, 0, 15), ( 1, 16, 28), ( 0, 29, 45), ( 3, 47, 53), ( 4, 66, 83)
4 : ( 4, 0, 14), ( 0, 15, 17), ( 1, 29, 44), ( 2, 47, 53), ( 3, 57, 67)

MACHIN Schedule
0 : (46, 64), (80, 95), (65, 79), (29, 45), (15, 17)
1 : (65, 69), ( 0, 11), (47, 55), (16, 28), (29, 44)
2 : (27, 39), (40, 46), (16, 26), ( 0, 15), (47, 53)
3 : ( 0, 10), (54, 56), (44, 46), (47, 53), (57, 67)
4 : (15, 25), (57, 65), (27, 43), (66, 83), ( 0, 14)

771デフォルトの名無しさん2019/03/24(日) 20:02:05.47ID:TWBa+gHA
>>770
プログラミングのお題スレ Part13 	YouTube動画>1本 ->画像>15枚
手動で調べたら90時間(単位は適当)まで縮んだ。最小時間か知らんが。
こういうのガントチャートっていうんだな

772デフォルトの名無しさん2019/03/24(日) 22:58:01.17ID:3fqiTHWE
ちなみに、

>>746
の問題で、行列の周りに、番兵を作って、処理した人はいる?

漏れは、いつもこの手の問題では、番兵で周りを囲む

773デフォルトの名無しさん2019/03/25(月) 12:18:06.31ID:7aW5s/71
……プログラミングやっててガントチャートしらないヤツもいるのか
勉強になった

774デフォルトの名無しさん2019/03/25(月) 12:23:06.98ID:T0osdeZX
名前知らなかっただけでは?

775デフォルトの名無しさん2019/03/25(月) 12:26:24.36ID:VWPF1Bqz
ロシア国防省「東アジアの地震の多い某国は数十年にわたり、地震を偽装した地下核実験を繰り返している」
http://2chb.net/r/liveplus/1550888671/l50
自衛隊の中に熊本人工地震を発生させた連中がいることは震源地が自衛隊駐屯地地下であることから自明。
http://open.mixi.jp/user/38378433/diary/1953066799
そればかりか、いま熊本の地下から出ている放射線量が「謎の赤丸急上昇中」だというのだ。
https://quasimoto2.exblog.jp/22729487/
今、自民党政権が、原発再稼働を進めている本当の理由は、核武装計画だけである。
経済的にとっくに破綻した原子力発電など、最初から眼中にないのだ。
東海アマブログentry-688.html

776デフォルトの名無しさん2019/03/25(月) 14:02:28.57ID:FL0Sj0Av
いちいちガントチャートなんて銘打たんしな
進捗管理するときには普通に使うもんだ

777デフォルトの名無しさん2019/03/25(月) 14:57:20.21ID:T0osdeZX
みんな名前知らないけど気づいたら作ってるようなものじゃないか?

778デフォルトの名無しさん2019/03/25(月) 21:13:29.59ID:wbp6GG9F
ナップザック問題の一種じゃないの?

779デフォルトの名無しさん2019/03/26(火) 00:12:39.41ID:xyG5xdoY
お題1: 整数値に対して K, M, G 等の単位を付けて人間に読みやすく文字列に変換して出力する。(ls -lh の時の容量の出力と同じで良い)。2^10 = K, 2^20 = M, 2^30 = G とする。
 小数点以下を何桁にするかはご自由に。但しあまりあり過ぎると人間には分かり辛いので1桁か2桁が望ましい。

お題2: お題1の逆変換。但し欠落した下位桁があったとしても考慮しなくて良い。

お題3: お題1, お題2 の10^3 = K, 10^6 = M, 10^9 = G 版。

回答のプログラムはまとめた形でも良い。例えばお題1を処理する関数のオプションとして0を与えると2^10単位、1を与えると10^3単位にするなど。
また、K, M, G よりも上の単位ができても良い。

780デフォルトの名無しさん2019/03/26(火) 03:32:10.56ID:xI3rzKRA
いまどき容量系の接頭辞はKi, Mi, Gi使えや

781デフォルトの名無しさん2019/03/26(火) 03:42:21.20ID:xyG5xdoY
>>780
そうしたければそうしてもいいよ。

782デフォルトの名無しさん2019/03/26(火) 13:05:28.20ID:8ujFPLE9
お題1と3まとめてswitch-case文って
筋悪いですかねえ

あるいはお題1とお題2をまとめて、enum型でINVERSEとか作るとか、あるいは TRUE / FALSE で分岐とか

783デフォルトの名無しさん2019/03/26(火) 19:22:41.61ID:NbUyZWCM
誰でも頭が良くなる、プログラムが書けるようになる方法が発見される 95286
https://you-can-program.hatenablog.jp

784デフォルトの名無しさん2019/03/27(水) 00:34:27.07ID:KJlt8YQv
>>779 c
https://ideone.com/N64nDG
・十分に小さい値のときしか動かない
・大きい値を与えたときの挙動もケアされない

785デフォルトの名無しさん2019/03/27(水) 23:48:37.99ID:oM4knkxt
>>779
Kotlin
https://paiza.io/projects/BisWbp363VArN7FaHYwmoA

Long 型使って正の整数しか考慮してないので63bitまで。

786さまよえる蟻人間 ◆T6xkBnTXz7B0 2019/03/28(木) 00:18:20.27ID:JS1PpMcc
Windows付属のshlwapi.dllにStrFormatByteSizeという関数があるようだね。

787デフォルトの名無しさん2019/03/28(木) 17:17:39.60ID:vvqhH31/
>>765
乱数使ったプログラム書いてみたけど動かした瞬間90まで行くけど
そこから何分待っても動かなさそう

788デフォルトの名無しさん2019/03/30(土) 20:23:23.36ID:ghZBhzgh
お題
表示画面におさまる最大の正三角形を描画する

789デフォルトの名無しさん2019/03/30(土) 23:07:23.94ID:DyxzEuK/
つまらん次

790デフォルトの名無しさん2019/03/31(日) 08:20:57.83ID:JrOSOdLx
>>788
最大の定義ぐらい書けよ…

791デフォルトの名無しさん2019/03/31(日) 13:16:21.13ID:m8dr8/PB
>>790
「たとえば表示画面が640x400なら、一辺が400の正三角形を描画する」ことではないのか
貴殿が想定する「最大の定義」とやらを示してもらえんかの?

792デフォルトの名無しさん2019/03/31(日) 13:25:41.80ID:+5DxT57L
ん?
その場合、一辺は400*2/sqrt(3)になるんじゃない?

793デフォルトの名無しさん2019/03/31(日) 13:28:01.88ID:EfWeZY5f
>>791
高さ400の正三角形だと一辺461.88じゃね?

794デフォルトの名無しさん2019/03/31(日) 15:30:18.52ID:uX30LzG9
怒涛のツッコミw

795デフォルトの名無しさん2019/03/31(日) 19:30:51.59ID:KJRyWF55
コンソール画面なら、画面の横幅と縦幅を取得しなきゃならんから言語によってはめんどくさいだろうな
標準でcurses使える言語ってなにがあるかな

796デフォルトの名無しさん2019/03/31(日) 20:25:37.50ID:P4y0w1jO
表示画面が球体だったら…

797デフォルトの名無しさん2019/04/01(月) 00:15:16.48ID:ucc1UNjR
リーマン幾何の多様体上で計算しとけ

なお、サラリーマンのリーンマン じゃないからな。

798デフォルトの名無しさん2019/04/01(月) 01:51:36.50ID://wZRuJn
でしゃばんな

799デフォルトの名無しさん2019/04/01(月) 03:15:46.62ID:Mx+j7LaB
Windows環境だとdirectx叩くことになるのかな

VT100とかXとかは全く知らないけど DisplayWidth とか DisplayHeight とか使うのか
あるいは何らかのクラスのメンバー関数を呼ぶのか

800デフォルトの名無しさん2019/04/01(月) 03:16:52.56ID:Mx+j7LaB
>>795
pdcursesがあるじゃないか(あらゆる環境で使えるとは言ってない

801デフォルトの名無しさん2019/04/15(月) 22:24:58.61ID:pFhU6MbP
エスケープシーケンスで座標指定とか文字色変更って、今はできないんだっけ?

802デフォルトの名無しさん2019/04/15(月) 23:06:48.83ID:1nT5zSFt
エスケープシーケンス powershell
で、ググってみ

803デフォルトの名無しさん2019/04/16(火) 09:06:19.32ID:wCqxjGzR
>>801
文字を出す端末による。

WindowsだったとしてもWSLでUbuntu動かした時のbashの端末では使えてるので多分設定次第なんだろうな。
逆に言うと設定によっては意図した通りに動かない。

804デフォルトの名無しさん2019/04/16(火) 16:33:57.42ID:wCqxjGzR
お題
アミダくじの作成、表示、及び余力があれば実行

・縦線の本数と横線の最大本数は入力できるようにする。

・左右の縦線への横線だけでなく飛び越えて他の縦線へ移動する横線もオプションで作れるようにする。

・表示方法は罫線キャラクタを使っても良いがGUI等他の方法でも良い。

・実行時はアニメーションでも良いし、いきなり結果が出るだけでも良い。

・面倒なら作成して表示するだけで実行しなくても良い。

805デフォルトの名無しさん2019/04/16(火) 16:45:06.33ID:GDkTCt4E
N88-BASIC(86)で出来そうな気がするが

806デフォルトの名無しさん2019/04/16(火) 17:51:22.60ID:wCqxjGzR
・PC-8001で動作すること。

いや、動かんでもいい。

807デフォルトの名無しさん2019/04/16(火) 18:37:53.31ID:GDkTCt4E
PRINT CHR$(12)

808デフォルトの名無しさん2019/04/16(火) 18:38:10.10ID:GDkTCt4E
CONSOLE 80,25,0,1
だっけ

809デフォルトの名無しさん2019/04/16(火) 18:40:11.47ID:GDkTCt4E
10 WIDTH 80,25
からか…

810デフォルトの名無しさん2019/04/16(火) 18:46:35.84ID:GDkTCt4E
DEFINTA-Z:PRINT"HOW MANY COLUMNS":INPUTA:A0=160/A

811デフォルトの名無しさん2019/04/18(木) 19:26:49.12ID:pJc8eu0c
お題:要素数が同じふたつの数値配列を受け取り、要素ごとに足した配列を返す。
中級:同様に、三つの配列を受け取る。
上級:同様に、三つの配列を受け取り、掛けて割ったもの返す。

ocaml
https://ideone.com/GyC6yJ

octave
https://ideone.com/NwYyqs

812デフォルトの名無しさん2019/04/18(木) 21:28:55.51ID:47ewAOC/
簡単過ぎる、次

813デフォルトの名無しさん2019/04/18(木) 23:26:27.73ID:izaVyiw1
>>811 Squeak/Pharo Smalltalk

#(1 2 3) + #(4 5 6). "=> #(5 7 9) "
#((1 2 3) (4 5 6) (7 8 9)) sum. "=> #(12 15 18) "
#(1 2 3) * #(4 5 6) / #(7 8 9). "=> {(4/7) . (5/4) . 2} "

814デフォルトの名無しさん2019/04/19(金) 00:02:01.58ID:ODUYGH1G
お題そのものは簡単でも、マイナー言語での解き方を見るのは面白いね

815デフォルトの名無しさん2019/04/19(金) 00:09:49.99ID:fWzUUJvd
自演乙

816デフォルトの名無しさん2019/04/19(金) 07:15:46.60ID:TxABBsFf
>>811
main = do
print $ zipWith (+) [1,2,3] [4,5,6]
print $ zipWith3 (\a b c -> a + b + c) [1,2,3] [4,5,6] [7,8,9]
print $ zipWith3 (\a b c -> a * b / c) [1,2,3] [4,5,6] [7,8,9]

Out:
[5,7,9]
[12,15,18]
[0.571428571428571,1.25,2.0]

817デフォルトの名無しさん2019/04/19(金) 08:40:44.50ID:TxABBsFf
>>813
Haskellでは%記号が分数を表すので、Data.Ratioをインポートして

import Data.Ratio

main = do
print $ zipWith (+) [1,2,3] [4,5,6]
print $ zipWith3 (\a b c -> a + b + c) [1,2,3] [4,5,6] [7,8,9]
print $ zipWith3 (\a b c -> a * b % c) [1,2,3] [4,5,6] [7,8,9]

Out:
[5,7,9]
[12,15,18]
[4 % 7,5 % 4,2 % 1]

818デフォルトの名無しさん2019/04/20(土) 12:21:00.80ID:R45IcBKG
お題:円の中心の座標と、円の半径の2乗が与えられる。
この円の円周上にある格子点の数を求めよ。

(X座標 Y座標 半径の2乗)
9/22 5/22 138125/242 => 7
7/38 5/38 785817263725/722 => 77
17/38 13/38 13603053979519731025/722 => 777
9/38 6/38 23959256988683736880737131790625/1444 => ?
12/38 7/38 23959256988683736880737131790625/1444 => ?
15/38 14/38 23959256988683736880737131790625/1444 => ?

819デフォルトの名無しさん2019/04/20(土) 18:57:22.37ID:4zW2+iPl
また数学か・・・

820デフォルトの名無しさん2019/04/20(土) 19:51:50.54ID:JrfgKJuX
しょっちゅう出てくるけどこれ宿題か?

821デフォルトの名無しさん2019/04/20(土) 23:55:49.29ID:R45IcBKG
宿題じゃないんやけどなー
12/38 7/38 23959256988683736880737131790625/1444 => ? の答えと円周上の格子点一覧…俺が間違えてなければ
https://pastebin.com/pnGbWPfM

822デフォルトの名無しさん2019/04/21(日) 00:12:56.57ID:E83GoNC+
コードを出せコードを!

823デフォルトの名無しさん2019/04/21(日) 01:28:16.84ID:TAIIcaTj
プログラムでの解き方が思い付かないわ
円の方程式に整数代入して満たすかみればいいのか?

824デフォルトの名無しさん2019/04/21(日) 02:14:46.56ID:H/Se0iAi
解法を考えるのも回答能力のうちだからね
今の時代、参照・検索も当然 可だけれど

825デフォルトの名無しさん2019/04/21(日) 06:09:56.50ID:/+hkU7cH
>>817
割り算が%とか、そのモジュール書いた奴、頭腐ってんじゃないの?

826デフォルトの名無しさん2019/04/21(日) 13:14:42.53ID:ay9waDdy
>>825

>>816 見てないの?
Haskellでは少数を返す割り算は「/」、整数を返す割り算は「`div`」と返す型で使い分ける。
「%」が返すのは分数型(Rational)

827デフォルトの名無しさん2019/04/21(日) 14:45:56.49ID:/+hkU7cH
やっぱ頭腐ってるな。

828デフォルトの名無しさん2019/04/24(水) 20:43:26.25ID:NALZs80Z
お題: 日本語の文章の句読点を , や . に置き換える。
ただし、, や . の直後には半角のスペースを置き、さらに改行の手前や文末のスペースは削除すること。

例:
In < これは、日本語の文章です。ふひひ。
Out > これは, 日本語の文章です. ふひひ.

829デフォルトの名無しさん2019/04/24(水) 20:50:03.68ID:WcGowxU3
しょうもな

830デフォルトの名無しさん2019/04/24(水) 20:51:59.82ID:Y8OSWYHv
文末のスペースが消えてないやん
どっちやねん

831デフォルトの名無しさん2019/04/24(水) 20:52:14.50ID:NALZs80Z
お題: 簡易なテーブルを綺麗に整形する
余力があればカラムの左揃え、右揃えをオプションで選択できるようにする(出力は中央揃え)

入力:
a|aaaaa|bb
ccc|ddd|ee

出力:

**a***|*aaaaa*|***bb*
------+-------+------
*ccc**|**ddd**|***ee*

832デフォルトの名無しさん2019/04/24(水) 20:54:35.53ID:NALZs80Z
>>831
×(出力は中央揃え)
〇(例は中央揃え)

833デフォルトの名無しさん2019/04/24(水) 21:01:38.43ID:Y8OSWYHv
bとeが中央じゃなくね

834デフォルトの名無しさん2019/04/24(水) 21:05:36.09ID:NALZs80Z
>>833
例に使ったスクリプトがバグってた

835デフォルトの名無しさん2019/04/24(水) 22:36:14.15ID:lwqMqFKi
左のaとcもおかしい

836デフォルトの名無しさん2019/04/24(水) 23:50:33.64ID:NSCbK96M
各列の文字数は一致する必要があるのか

837デフォルトの名無しさん2019/04/25(木) 04:26:28.66ID:D6NtakiX
>>831
入出力のエンコードは?
ASCII以外はあるのか?

838デフォルトの名無しさん2019/04/25(木) 05:01:51.18ID:XVamjpPA
>>837
ASCIIのみで

839デフォルトの名無しさん2019/04/25(木) 07:44:22.82ID:XVamjpPA
>>834
いやバグってなかったわ
>>831
が正常
| の前後に*が一つ入るから
| の前後の*は入れても入れなくてもいいけど入れたほうが綺麗になるかもしれん

840デフォルトの名無しさん2019/04/25(木) 10:34:23.81ID:J1W60oTI
「綺麗」とか言うお気持ちワードが入るとダメだな

841デフォルトの名無しさん2019/04/25(木) 10:41:43.51ID:aGd2Nt87
「楽しいプログラミング」w
「美しく書ける」ww

842デフォルトの名無しさん2019/04/25(木) 12:39:16.14ID:J1W60oTI
何がキレイなのか定義出来ず言うことが主観でコロコロ変わる、マジで今の日本のサイコパス上司そのものだ
「オレの心情をさっしろ」みたいな屑がいいそうなこと
頭が悪いから定義が出来ないし自分の言ってることが支離滅裂になってる
曖昧な用語(綺麗)で押し通そうとする
コレ全部サイコパスの特徴

843デフォルトの名無しさん2019/04/25(木) 13:02:10.38ID:pYdb89HV
美を定義できる人間がいるなら会いたいものだ

844デフォルトの名無しさん2019/04/25(木) 13:47:48.74ID:BUlwZIC7
>>843
プラトンのスュンポスィオーンって本で定義されてたぞ

845デフォルトの名無しさん2019/04/25(木) 16:18:28.13ID:ThHN2jz5
美しいコードなんて求められてない。小学生でも知ってる。
https://tr.twipple.jp/ps/3f/af4715.html

846デフォルトの名無しさん2019/04/25(木) 18:30:28.28ID:/IwwINNy
美しい半角カナ

847デフォルトの名無しさん2019/04/25(木) 18:35:37.23ID:/IwwINNy
>>845
変数に日本語が使えないとか書いてあるな。
Javaとか普通に使えるんだがな。

848 ◆QZaw55cn4c 2019/04/25(木) 20:27:10.98ID:6xUIrXDu
>>844
倉橋由美子のが面白かったと思っています

849デフォルトの名無しさん2019/04/25(木) 22:32:18.97ID:siWhi4pR
>>847
そんなに日本語使いたいならなでしこでも書いとけ

850デフォルトの名無しさん2019/04/25(木) 22:33:30.90ID:X6smEgNz
>>847 そんな大昔の話をするなよ。 今はPython3 なんだから日本語も使えるよ。

なな = 7
print(なな)
# 7

851デフォルトの名無しさん2019/04/25(木) 23:27:23.78ID:jZ4+eHeJ
今時C++とかでも普通に日本語識別子使えるだろ…

852デフォルトの名無しさん2019/04/25(木) 23:39:11.26ID:D6NtakiX
>>851
あ、そうなの?
知らなかった。

853デフォルトの名無しさん2019/04/26(金) 18:55:29.49ID:YRtkzMZR
>>831
Kotlin
https://paiza.io/projects/RCbBPGrxaB1uoB-tj_1hJg
入力は1行目に 0, 1, 2 の何れかのオプションを指定する。
意味は 0=中央、1=左寄せ、2=右寄せ になっている。
2行目からは | 区切りで文字列を入れる。
空行またはファイルの終わりで表を出力する。
空行だった場合はまた次の表の最初のオプションから入れられる。

854デフォルトの名無しさん2019/04/26(金) 19:49:06.87ID:RVSBatxL
>>853
ほとぼりが冷めたと思ってんのか屑?
お前が>>839だろ
ID変わったからっていい気になんなよ

ゴミみたいな出力のまさにゴミだ
全然綺麗じゃない

8558532019/04/27(土) 04:31:22.65ID:dVFnhFQW
>>854
違うよ。俺はもっと上の方であみだくじのお題を出したやつだよ。
自分でもプログラム作るには作ったけど表示するところまでだな。
しかしブラウザの実行環境で表示すると罫線の幅の問題でずれるので画像で出力しようかと思っている。
これな。
https://paiza.io/projects/2mINZHiEB6ciPWHEpkCJig

856デフォルトの名無しさん2019/04/27(土) 15:02:49.57ID:TtYrpMGa
お題:ジョブショップスケジューリングの問題です。
int job_param[JOBNUM][STP][2] = {

{{4, 342}, {1, 244}, {2, 351}, {3, 293}, {0, 342}}, // 1572

{{2, 306}, {4, 342}, {3, 386}, {1, 386}, {0, 413}}, // 1833

{{3, 168}, {0, 266}, {2, 182}, {1, 106}, {4, 368}}, // 1090

{{3, 368}, {2, 151}, {4, 284}, {0, 84}, {1, 164}}, // 1051

{{4, 240}, {1, 191}, {0, 351}, {3, 408}, {2, 275}}, // 1465

{{2, 342}, {3, 351}, {4, 191}, {0, 333}, {1, 426}}, // 1643

{{0, 93}, {1, 235}, {2, 422}, {3, 244}, {4, 151}}, // 1145

{{0, 75}, {4, 217}, {1, 111}, {3, 195}, {2, 435}}, // 1033

{{2, 173}, {4, 435}, {3, 186}, {1, 137}, {0, 53}}, // 984

{{1, 93}, {2, 231}, {4, 71}, {3, 115}, {0, 315}}}; // 825

857デフォルトの名無しさん2019/04/27(土) 16:10:46.35ID:nhVWQaIp
宿題は自分でやれ

858デフォルトの名無しさん2019/04/27(土) 16:24:49.19ID:VMurKVDA
まずジョブスケジューリングが何か説明してもらおう

859デフォルトの名無しさん2019/04/27(土) 17:28:59.65ID:PUfIYz8D
適当に詰めて行くプログラムで2928まではなった

h0 0-75 g0 75-168 c1 168-434 e2 434-785 j4 1002-1317 d3 1505-1589 f3 1696-2029 b4 2029-2442 a4 2442-2784 i4 2875-2928
j0 0-93 e1 240-431 h2 457-568 a1 799-1043 g1 1043-1278 c3 1385-1491 b3 1607-1993 d4 1993-2157 f4 2157-2583 i3 2738-2875
f0 0-342 j1 342-573 b0 573-879 i0 879-1052 d1 1052-1203 c2 1203-1385 a2 1385-1736 g2 1736-2158 e4 2158-2433 h4 2433-2868
c0 0-168 d0 168-536 f1 536-887 j3 887-1002 h3 1002-1197 b2 1221-1607 e3 1607-2015 a3 2015-2308 g3 2308-2552 i2 2552-2738
e0 0-240 h1 240-457 a0 457-799 j2 799-870 b1 879-1221 d2 1221-1505 f2 1505-1696 c4 1696-2064 i1 2064-2499 g4 2552-2703

860デフォルトの名無しさん2019/04/27(土) 17:44:35.53ID:PUfIYz8D
今2889になってたけどSegmentation faultで落ちてた
前回のやつでJOBNUMとかSTPとかをわざわざ直接5 5とか書いてて
今回どんなコードかもう忘れて片方を適当に10に直したからか元からバグがあったのか分からないけど
結果自体は間違ってなそうだと思うけど

8618182019/04/27(土) 18:03:52.53ID:63A0HxGX
>>818の(最適化していない)コード Java
https://ideone.com/72sNsk

>>822
出したで

862デフォルトの名無しさん2019/04/28(日) 08:12:15.68ID:3xnz0I0C
>>856
COST_TIME: 2932
0 : ( 4, 457, 799), ( 1, 800, 1044), ( 2, 1275, 1626), ( 3, 2017, 2310), ( 0, 2417, 2759)
1 : ( 2, 573, 879), ( 4, 880, 1222), ( 3, 1223, 1609), ( 1, 1610, 1996), ( 0, 2004, 2417)
2 : ( 3, 0, 168), ( 0, 784, 1050), ( 2, 1093, 1275), ( 1, 1279, 1385), ( 4, 2389, 2757)
3 : ( 3, 168, 536), ( 2, 942, 1093), ( 4, 1586, 1870), ( 0, 1920, 2004), ( 1, 2473, 2637)
4 : ( 4, 0, 240), ( 1, 241, 432), ( 0, 433, 784), ( 3, 1609, 2017), ( 2, 2221, 2496)
5 : ( 2, 0, 342), ( 3, 536, 887), ( 4, 1395, 1586), ( 0, 1587, 1920), ( 1, 2047, 2473)
6 : ( 0, 75, 168), ( 1, 1044, 1279), ( 2, 1799, 2221), ( 3, 2310, 2554), ( 4, 2757, 2908)
7 : ( 0, 0, 75), ( 4, 240, 457), ( 1, 458, 569), ( 3, 892, 1087), ( 2, 2496, 2931)
8 : ( 2, 1626, 1799), ( 4, 1954, 2389), ( 3, 2554, 2740), ( 1, 2741, 2878), ( 0, 2879, 2932)
9 : ( 1, 0, 93), ( 2, 342, 573), ( 4, 799, 870), ( 3, 1087, 1202), ( 0, 1203, 1518)

MACHINE Schedule
0 : ( 7, 0, 75), ( 6, 75, 168), ( 4, 433, 784), ( 2, 784, 1050), ( 9, 1203, 1518), ( 5, 1587, 1920), ( 3, 1920, 2004), ( 1, 2004, 2417), ( 0, 2417, 2759), ( 8, 2879, 2932)
1 : ( 9, 0, 93), ( 4, 241, 432), ( 7, 458, 569), ( 0, 800, 1044), ( 6, 1044, 1279), ( 2, 1279, 1385), ( 1, 1610, 1996), ( 5, 2047, 2473), ( 3, 2473, 2637), ( 8, 2741, 2878)
2 : ( 5, 0, 342), ( 9, 342, 573), ( 1, 573, 879), ( 3, 942, 1093), ( 2, 1093, 1275), ( 0, 1275, 1626), ( 8, 1626, 1799), ( 6, 1799, 2221), ( 4, 2221, 2496), ( 7, 2496, 2931)
3 : ( 2, 0, 168), ( 3, 168, 536), ( 5, 536, 887), ( 7, 892, 1087), ( 9, 1087, 1202), ( 1, 1223, 1609), ( 4, 1609, 2017), ( 0, 2017, 2310), ( 6, 2310, 2554), ( 8, 2554, 2740)
4 : ( 4, 0, 240), ( 7, 240, 457), ( 0, 457, 799), ( 9, 799, 870), ( 1, 880, 1222), ( 5, 1395, 1586), ( 3, 1586, 1870), ( 8, 1954, 2389), ( 2, 2389, 2757), ( 6, 2757, 2908)

863デフォルトの名無しさん2019/04/28(日) 19:46:09.95ID:4L316qYF
COST_TIME: 2868
0 : ( 4, 457, 799), ( 1, 800, 1044), ( 2, 1212, 1563), ( 3, 2017, 2310), ( 0, 2410, 2752)
1 : ( 2, 573, 879), ( 4, 880, 1222), ( 3, 1223, 1609), ( 1, 1610, 1996), ( 0, 1997, 2410)
2 : ( 3, 0, 168), ( 0, 169, 435), ( 2, 1030, 1212), ( 1, 1213, 1319), ( 4, 2326, 2694)
3 : ( 3, 168, 536), ( 2, 879, 1030), ( 4, 1523, 1807), ( 0, 1857, 1941), ( 1, 2703, 2867)
4 : ( 4, 0, 240), ( 1, 241, 432), ( 0, 435, 786), ( 3, 1609, 2017), ( 2, 2158, 2433)
5 : ( 2, 0, 342), ( 3, 536, 887), ( 4, 1332, 1523), ( 0, 1524, 1857), ( 1, 1996, 2422)
6 : ( 0, 75, 168), ( 1, 1319, 1554), ( 2, 1736, 2158), ( 3, 2310, 2554), ( 4, 2694, 2845)
7 : ( 0, 0, 75), ( 4, 240, 457), ( 1, 458, 569), ( 3, 887, 1082), ( 2, 2433, 2868)
8 : ( 2, 1563, 1736), ( 4, 1891, 2326), ( 3, 2379, 2565), ( 1, 2566, 2703), ( 0, 2752, 2805)
9 : ( 1, 0, 93), ( 2, 342, 573), ( 4, 799, 870), ( 3, 1082, 1197), ( 0, 1198, 1513)

MACHINE Schedule
0 : ( 7, 0, 75), ( 6, 75, 168), ( 2, 169, 435), ( 4, 435, 786), ( 9, 1198, 1513), ( 5, 1524, 1857), ( 3, 1857, 1941), ( 1, 1997, 2410), ( 0, 2410, 2752), ( 8, 2752, 2805)
1 : ( 9, 0, 93), ( 4, 241, 432), ( 7, 458, 569), ( 0, 800, 1044), ( 2, 1213, 1319), ( 6, 1319, 1554), ( 1, 1610, 1996), ( 5, 1996, 2422), ( 8, 2566, 2703), ( 3, 2703, 2867)
2 : ( 5, 0, 342), ( 9, 342, 573), ( 1, 573, 879), ( 3, 879, 1030), ( 2, 1030, 1212), ( 0, 1212, 1563), ( 8, 1563, 1736), ( 6, 1736, 2158), ( 4, 2158, 2433), ( 7, 2433, 2868)
3 : ( 2, 0, 168), ( 3, 168, 536), ( 5, 536, 887), ( 7, 887, 1082), ( 9, 1082, 1197), ( 1, 1223, 1609), ( 4, 1609, 2017), ( 0, 2017, 2310), ( 6, 2310, 2554), ( 8, 2379, 2565)
4 : ( 4, 0, 240), ( 7, 240, 457), ( 0, 457, 799), ( 9, 799, 870), ( 1, 880, 1222), ( 5, 1332, 1523), ( 3, 1523, 1807), ( 8, 1891, 2326), ( 2, 2326, 2694), ( 6, 2694, 2845)

864デフォルトの名無しさん2019/04/28(日) 23:28:25.99ID:l2GeSHcv
>>863
3 : ( 2, 0, 168), ( 3, 168, 536), ( 5, 536, 887), ( 7, 887, 1082), ( 9, 1082, 1197), ( 1, 1223, 1609), ( 4, 1609, 2017), ( 0, 2017 , 2310), ( 6, 2310, 2554), ( 8, 2379, 2565)

( 6, 2310, 2554), ( 8, 2379, 2565)
ここが重複してるから間違ってる

865デフォルトの名無しさん2019/04/29(月) 05:34:40.52ID:8r4CfxJG
>>864
ご指摘ありがとうございます。

866デフォルトの名無しさん2019/05/02(木) 08:14:38.07ID:y6AdJjmd
お題:ジョブショップスケジューリングの問題です。
int job_param[JOBNUM][STP][2] = {
{{4, 100}, {1, 100}, {2, 100}, {3, 100}, {0, 100}}, // 500
{{2, 100}, {4, 100}, {3, 100}, {1, 100}, {0, 100}}, // 500
{{3, 100}, {0, 100}, {2, 100}, {1, 100}, {4, 100}}, // 500
{{3, 100}, {2, 100}, {4, 100}, {0, 100}, {1, 100}}, // 500
{{4, 100}, {1, 100}, {0, 100}, {3, 100}, {2, 100}}, // 500
{{2, 100}, {3, 100}, {4, 100}, {0, 100}, {1, 100}}, // 500
{{0, 100}, {1, 100}, {2, 100}, {3, 100}, {4, 100}}, // 500
{{0, 100}, {4, 100}, {1, 100}, {3, 100}, {2, 100}}, // 500
{{2, 100}, {4, 100}, {3, 100}, {1, 100}, {0, 100}}, // 500
{{1, 100}, {2, 100}, {4, 100}, {3, 100}, {0, 100}}}; // 500

867デフォルトの名無しさん2019/05/02(木) 10:15:40.84ID:uedhNxa1
死ね

868デフォルトの名無しさん2019/05/02(木) 10:36:17.75ID:aiQlF5oy
>>866
時間全部同じなら1にしちゃってえーんちゃう?

869デフォルトの名無しさん2019/05/02(木) 12:40:19.89ID:6TxNQP9X
死んで良し。こんな長たらしいのを貼るなんて迷惑。
どこかに貼ってリンクだけにしろ。

870デフォルトの名無しさん2019/05/03(金) 00:09:09.98ID:zqE/J/GT
>>831
C https://ideone.com/UPx6IS
もうどうでもいいかもしれんが、各列で幅調整ができるようにした

871デフォルトの名無しさん2019/05/07(火) 18:32:57.10ID:dWjIX09N
COST_TIME: 2903
0 : ( 4, 799, 1141), ( 1, 1141, 1385), ( 2, 1385, 1736), ( 3, 2023, 2316), ( 0, 2477, 2819)
1 : ( 2, 0, 306), ( 4, 457, 799), ( 3, 1114, 1500), ( 1, 1500, 1886), ( 0, 1980, 2393)
2 : ( 3, 368, 536), ( 0, 913, 1179), ( 2, 1203, 1385), ( 1, 1385, 1491), ( 4, 2122, 2490)
3 : ( 3, 0, 368), ( 2, 1052, 1203), ( 4, 1838, 2122), ( 0, 2393, 2477), ( 1, 2639, 2803)
4 : ( 4, 0, 240), ( 1, 240, 431), ( 0, 562, 913), ( 3, 1615, 2023), ( 2, 2593, 2868)
5 : ( 2, 306, 648), ( 3, 763, 1114), ( 4, 1141, 1332), ( 0, 1332, 1665), ( 1, 1886, 2312)
6 : ( 0, 75, 168), ( 1, 568, 803), ( 2, 1736, 2158), ( 3, 2508, 2752), ( 4, 2752, 2903)
7 : ( 0, 0, 75), ( 4, 240, 457), ( 1, 457, 568), ( 3, 568, 763), ( 2, 2158, 2593)
8 : ( 2, 879, 1052), ( 4, 1403, 1838), ( 3, 2316, 2502), ( 1, 2502, 2639), ( 0, 2819, 2872)
9 : ( 1, 0, 93), ( 2, 648, 879), ( 4, 1332, 1403), ( 3, 1500, 1615), ( 0, 1665, 1980)

MACHINE Schedule
0 : ( 7, 0, 75), ( 6, 75, 168), ( 4, 562, 913), ( 2, 913, 1179), ( 5, 1332, 1665), ( 9, 1665, 1980), ( 1, 1980, 2393), ( 3, 2393, 2477), ( 0, 2477, 2819), ( 8, 2819, 2872)
1 : ( 9, 0, 93), ( 4, 240, 431), ( 7, 457, 568), ( 6, 568, 803), ( 0, 1141, 1385), ( 2, 1385, 1491), ( 1, 1500, 1886), ( 5, 1886, 2312), ( 8, 2502, 2639), ( 3, 2639, 2803)
2 : ( 1, 0, 306), ( 5, 306, 648), ( 9, 648, 879), ( 8, 879, 1052), ( 3, 1052, 1203), ( 2, 1203, 1385), ( 0, 1385, 1736), ( 6, 1736, 2158), ( 7, 2158, 2593), ( 4, 2593, 2868)
3 : ( 3, 0, 368), ( 2, 368, 536), ( 7, 568, 763), ( 5, 763, 1114), ( 1, 1114, 1500), ( 9, 1500, 1615), ( 4, 1615, 2023), ( 0, 2023, 2316), ( 8, 2316, 2502), ( 6, 2508, 2752)
4 : ( 4, 0, 240), ( 7, 240, 457), ( 1, 457, 799), ( 0, 799, 1141), ( 5, 1141, 1332), ( 9, 1332, 1403), ( 8, 1403, 1838), ( 3, 1838, 2122), ( 2, 2122, 2490), ( 6, 2752, 2903)

872デフォルトの名無しさん2019/05/07(火) 19:09:14.64ID:T//WWibe
死ねやマジで

873デフォルトの名無しさん2019/05/09(木) 08:23:28.37ID:iHKmUIWi
COST_TIME: 2868
0 : ( 4, 970, 1312), ( 1, 1312, 1556), ( 2, 1807, 2158), ( 3, 2177, 2470), ( 0, 2470, 2812)
1 : ( 2, 0, 306), ( 4, 557, 899), ( 3, 1197, 1583), ( 1, 1583, 1969), ( 0, 1969, 2382)
2 : ( 3, 0, 168), ( 0, 394, 660), ( 2, 1474, 1656), ( 1, 1969, 2075), ( 4, 2222, 2590)
3 : ( 3, 168, 536), ( 2, 1656, 1807), ( 4, 1938, 2222), ( 0, 2382, 2466), ( 1, 2696, 2860)
4 : ( 4, 292, 532), ( 1, 532, 723), ( 0, 723, 1074), ( 3, 1583, 1991), ( 2, 2158, 2433)
5 : ( 2, 306, 648), ( 3, 731, 1082), ( 4, 1312, 1503), ( 0, 1512, 1845), ( 1, 2133, 2559)
6 : ( 0, 75, 168), ( 1, 723, 958), ( 2, 1052, 1474), ( 3, 2470, 2714), ( 4, 2714, 2865)
7 : ( 0, 0, 75), ( 4, 75, 292), ( 1, 292, 403), ( 3, 536, 731), ( 2, 2433, 2868)
8 : ( 2, 879, 1052), ( 4, 1503, 1938), ( 3, 1991, 2177), ( 1, 2559, 2696), ( 0, 2812, 2865)
9 : ( 1, 0, 93), ( 2, 648, 879), ( 4, 899, 970), ( 3, 1082, 1197), ( 0, 1197, 1512)

MACHINE Schedule
0 : ( 7, 0, 75), ( 6, 75, 168), ( 2, 394, 660), ( 4, 723, 1074), ( 9, 1197, 1512), ( 5, 1512, 1845), ( 1, 1969, 2382), ( 3, 2382, 2466), ( 0, 2470, 2812), ( 8, 2812, 2865)
1 : ( 9, 0, 93), ( 7, 292, 403), ( 4, 532, 723), ( 6, 723, 958), ( 0, 1312, 1556), ( 1, 1583, 1969), ( 2, 1969, 2075), ( 5, 2133, 2559), ( 8, 2559, 2696), ( 3, 2696, 2860)
2 : ( 1, 0, 306), ( 5, 306, 648), ( 9, 648, 879), ( 8, 879, 1052), ( 6, 1052, 1474), ( 2, 1474, 1656), ( 3, 1656, 1807), ( 0, 1807, 2158), ( 4, 2158, 2433), ( 7, 2433, 2868)
3 : ( 2, 0, 168), ( 3, 168, 536), ( 7, 536, 731), ( 5, 731, 1082), ( 9, 1082, 1197), ( 1, 1197, 1583), ( 4, 1583, 1991), ( 8, 1991, 2177), ( 0, 2177, 2470), ( 6, 2470, 2714)
4 : ( 7, 75, 292), ( 4, 292, 532), ( 1, 557, 899), ( 9, 899, 970), ( 0, 970, 1312), ( 5, 1312, 1503), ( 8, 1503, 1938), ( 3, 1938, 2222), ( 2, 2222, 2590), ( 6, 2714, 2865)

874デフォルトの名無しさん2019/05/09(木) 09:37:18.89ID:pu1Iu6no
ここはプログラミングのお題スレであって結果と思われる出力を書き込むスレではない。

875デフォルトの名無しさん2019/05/09(木) 19:00:51.34ID:n0QdGvKz
コラッツ数列を作る関数chainを書け

コラッツ数列の定義

任意の自然数から開始する
数が 1ならば 、終了
数が偶数なら 、 2で割る
数が奇数なら 、 3倍して 1を足す
新しい値でこのアルゴリズムを繰り返す

使用例

>chain 10
[ 1 0 , 5 , 1 6 , 8 , 4 , 2 , 1 ]

>chain 1
[ 1 ]

>chain 30
[ 3 0 , 1 5 , 4 6 , 2 3 , 7 0 , 3 5 , 1 0 6 , 5 3 , 1 6 0 , 8 0 , 4 0 , 2 0 , 1 0 , 5 , 1 6 , 8 , 4 , 2 , 1 ]

876デフォルトの名無しさん2019/05/09(木) 21:28:06.85ID:V3giiBFx

877さまよえる蟻人間 ◆T6xkBnTXz7B0 2019/05/09(木) 22:20:55.24ID:sZO2t0w0
お題: 改行とスペースを含むASCII文字列が与えられる。
改行とスペース以外の各印字可能文字の位置を以下のように順番に出力せよ。

(入力)
a b c

d
(出力)
[a, 0, 0]
[b, 2, 0]
[c, 5, 0]
[d, 0, 2]

878デフォルトの名無しさん2019/05/10(金) 08:21:41.55ID:Z1uC1A15
>>875
python

def chain(n):
lst = []
if n < 1: raise ValueError("Please n > 0 number")
while n != 1:
lst.append(n)
if n % 2 == 0: n //= 2
else: n = n * 3 + 1
lst.append(1)
return lst

for i in [10,1,30,0]: print(chain(i))

879デフォルトの名無しさん2019/05/10(金) 08:24:53.49ID:Z1uC1A15
>>875
Haskell

main = mapM_ (print.chain) [10,1,30,0]

chain 1 = [1]
chain n | n < 1 = error "Please n > 0 number"
chain n | even n = n:chain (n `div` 2)
chain n = n:chain (n * 3 + 1)

880デフォルトの名無しさん2019/05/10(金) 11:11:44.01ID:VtNtFyvg
>>875

C
https://ideone.com/mBt0yE

1未満の値の判定はchain関数に実装すべきなのかどうなのか……

881デフォルトの名無しさん2019/05/10(金) 11:56:36.34ID:sggjdX/2
>>877
[c, 5, 0]?
[c, 4, 0]じゃなくて?

882さすらいの蟻人間 ◆T6xkBnTXz7B0 2019/05/10(金) 12:18:04.49ID:8LSsTFj9
>>877 >>881
4の間違いでした。訂正。

883デフォルトの名無しさん2019/05/10(金) 12:30:05.58ID:k7gY5pMP
>>877
出力は、行列番号が0から始まるとして
文字,列番号、行番号 だと思うから c の列番号は間違ってるんじゃないの?
(入力)
a b c

d
(出力)
[a, 0, 0]
[b, 2, 0]
[c, 4, 0] << 5じゃなくて4だろ。
[d, 0, 2]

884デフォルトの名無しさん2019/05/10(金) 12:47:01.79ID:6xQjM2XG
>>876,880
この問題、入門書から抜粋したけど次に1ー100の間に長さ15以上は何個あるかとか出てるから、
Cだとリストから作らないといけないのは分かるが、リスト返す様にした方が仕様変更に強いと思う。

885デフォルトの名無しさん2019/05/10(金) 12:53:54.51ID:KAkBQh2y
宿題誘導か
最近のアホは小賢しいな

886デフォルトの名無しさん2019/05/10(金) 13:27:19.10ID:k7gY5pMP
>>877 python

st = '''a b c

d
'''
line = 0 ; col = 0
for c in st :
__if c == '\n' :
____line += 1
____col = 0
____continue
__if c != ' ' :
____print ('['+c, col,str(line)+']', sep=',')
__col += 1

887デフォルトの名無しさん2019/05/10(金) 13:40:11.78ID:k7gY5pMP
>>886 出力フォーマットが
['a', 0, 0]
['b', 2, 0]
['c', 4, 0]
['d', 0, 2]
でもよければ print文は簡単になる
print ([c, col,line])

888さすらいの蟻人間 ◆T6xkBnTXz7B0 2019/05/10(金) 14:51:58.21ID:CF7UUf9v
お題: >>877 の入出力を逆転。

889デフォルトの名無しさん2019/05/10(金) 15:12:02.76ID:bODSyEKx
>>888 手抜きすんな面白くない

890デフォルトの名無しさん2019/05/10(金) 15:43:29.85ID:aTy0NCJ4
>>875
与えられた数の3倍以上の個数を持つ系列を
を3個示せ。

891デフォルトの名無しさん2019/05/10(金) 17:50:33.37ID:58PV3kUA
>>875,884 Squeak Smalltalk

| chain |

chain := [:n |
Array streamContents: [:ss |
ss nextPut: n.
[n > 1] whileTrue: [ss nextPut: (n := n even ifTrue: [n / 2] ifFalse: [n * 3 + 1])]
]
].

chain value: 10. "=> #(10 5 16 8 4 2 1) "

(1 to: 100) count: [:n | (chain value: n) size >= 15] "=> 71 "

892デフォルトの名無しさん2019/05/10(金) 20:05:13.80ID:0Zlxa6bH
>>875
Perl のワンライナー。

perl -ne '$n=$_;chomp($n);@d=($n);while($n!=1){$n=$n&1?($n*3+1):($n/2);push(@d,$n)}print "[".join(", ", @d)."]\n"'

実行する場合はbash等のシェルから行う(シングルクォートの中がそのままperlに引き渡されさえすれば他のシェルでも良い)。

標準入力から1行1データで入力して結果を出力するようにした。

893デフォルトの名無しさん2019/05/10(金) 20:29:31.76ID:/+/am3CQ
>>890
27のとき112個
31のとき107個
10億くらいまで回したけど、これら以外なくね?

数列の初期値と長さは、初期値が小さいうちは同じくらいだが、初期値を大きくしても数列の長さはさほど伸びない。
http://imgur.com/wm0kCEQ
グラフはxが大きくなるほど飛ばす間隔も大きくしてあるからあまり正確ではない。

894デフォルトの名無しさん2019/05/10(金) 21:48:47.85ID:LM2YqzO0
お題



このようなルートの数を数え上げるプログラムを作る
N=5位まででよい

895デフォルトの名無しさん2019/05/10(金) 22:09:58.71ID:KAkBQh2y
ZDDやるなら出来合いのもの使って終わりじゃねえの?

https://github.com/junkawahara/frontier-basic
https://hs-nazuna.github.io/tdzdd-manual/intro.html

896デフォルトの名無しさん2019/05/11(土) 11:54:01.37ID:Ze1v8w/9
>>875 Perl5

sub chain {
 my $i = shift;
 $i == 1 ? $i : ($i, ($i & 1 ? chain(3*$i + 1) : chain($i / 2)))
}

for (qw{10 1 30}) {
 @a = chain $_;
 print "[@a]\n";
}


実行
~ $ perl 13_875_collatz.pl
[10 5 16 8 4 2 1]
[1]
[30 15 46 23 70 35 106 53 160 80 40 20 10 5 16 8 4 2 1]

897デフォルトの名無しさん2019/05/11(土) 12:16:05.54ID:Ze1v8w/9
>>877 Perl5

@in = map{[split'']} map{split '\n'} <<EOF;
a b c

d
EOF
for $j (0..$#in) {
 for $i (0..$#{$in[$j]}) {
  $c = $in[$j][$i];
  print "[$c,$i,$j]\n" if $c =~ /\w/;
 }
}


実行
~ $ perl 13_877.pl
[a,0,0]
[b,2,0]
[c,4,0]
[d,0,2]

898デフォルトの名無しさん2019/05/11(土) 13:06:48.39ID:bKjSBhWB
>>875
Ruby で

module Collatz
def self.next_number( num )
if num.even? # 偶数
num / 2
else # 奇数
num * 3 + 1
end
end

def self.chain( num )
@@results = [ ]
tmp = num

while true
@@results.push tmp
break if tmp == 1

tmp = next_number( tmp )
end
@@results
end
end

[ 1, 27 ].each do | num |
p Collatz.chain( num )
end

899デフォルトの名無しさん2019/05/11(土) 18:55:11.91ID:fAbbaveG

900デフォルトの名無しさん2019/05/11(土) 20:54:08.94ID:wddfxsLz
ideone.comはMATLABに対応してないのね。
書いてみた後で気がついた。

901デフォルトの名無しさん2019/05/11(土) 23:44:29.57ID:fAbbaveG

902デフォルトの名無しさん2019/05/12(日) 02:01:10.46ID:FbICTnq7
>>875
Java
https://paiza.io/projects/VSqA-UZgWeXB-YzVTnrQRg

takeUntilが欲しいなー

903デフォルトの名無しさん2019/05/12(日) 06:46:28.87ID:R9TUiFuu
>>875
コラッツ樹で作れば出力を減らせる。

904デフォルトの名無しさん2019/05/14(火) 02:59:08.35ID:3xJ0OqNt
>>877
Kotlin
https://paiza.io/projects/Aab0mA1WSwXHnHL2049hCA

for や while ループ使わずに forEachIndexed で入れ子にしてみました。

905デフォルトの名無しさん2019/05/14(火) 09:26:15.81ID:zeev4Evh
>>877
Ruby で

text = <<"EOT"
a b c

d
EOT

re = /[^ ]+/ # 空白以外

text.each_line.with_index do | line, idx | # 1行ずつ処理する
line.strip! # trim
# $~.begin は、マッチした先頭文字の位置
line.scan( re ) { puts "[" + [ $~.to_s, $~.begin(0), idx ].join( ", " ) + "]" }
end

906デフォルトの名無しさん2019/05/14(火) 10:07:03.30ID:rKVVoOG1
>>886 をスッキリ修正してみた
改行コード指定をやめ、for loop のカウンタを利用

>>877 の解

st = '''a b c

d
'''
for line,l in enumerate(st.splitlines()) :
 for col,c in enumerate(l):
  if c != ' ' : print('['+c, col,str(line)+']',sep=',')

907デフォルトの名無しさん2019/05/14(火) 14:12:15.49ID:8QdSJZ63
>>905
空白以外は\Sでマッチするぞ

908デフォルトの名無しさん2019/05/14(火) 23:52:44.04ID:AtHJrRxM
>>877 Squeak Smalltalk

| fn |

fn := [:str |
((str lines collectWithIndex: [:line :lIdx |
(line reject: #isSeparator) asArray
collect: [:chr | {chr. (line indexOf: chr) - 1. lIdx - 1}]]
) concatenation select: #notEmpty) asStringWithCr
].

fn value: 'a b c

d'

"=>
'#($a 0 0)
#($b 2 0)
#($c 4 0)
#($d 0 2)' "

909デフォルトの名無しさん2019/05/15(水) 01:06:44.65ID:tCUIeJeC
>>908 smalltalk って全く知らないけど、最後が出力のつもり?
だったらお題の出力フォーマットと似ても似つかないじゃん。

910デフォルトの名無しさん2019/05/15(水) 03:57:52.07ID:i8y0s24p
いや似てる

911デフォルトの名無しさん2019/05/15(水) 04:50:48.17ID:TsVBVaTo
>>877 Squeak/Pharo Smalltalk
出力はともかく同行に同文字があるとダメだった^^;ので>>908 差し替え

| fn |

fn := [:str |
((str lines collectWithIndex: [:line :lIdx |
(line asArray collectWithIndex: [:chr :cIdx | {chr. cIdx - 1. lIdx - 1}]
) reject: [:each | each first isSeparator]]
) concatenation
select: #notEmpty thenCollect: [:each | '[{1}, {2}, {3}]' format: each]) asStringWithCr
].

fn value: 'a b c

d'

"=>
[a, 0, 0]
[b, 2, 0]
[c, 4, 0]
[d, 0, 2] "

9129052019/05/15(水) 09:57:59.71ID:AfKgri37
>>907
re = /[^ ]+/
空白以外だから、上のようにしたけど、空白"類"以外なら、\S+ でよい

問題の意図がどちらなのか、よく分からない

913デフォルトの名無しさん2019/05/15(水) 23:43:58.92ID:jmndeABE

914デフォルトの名無しさん2019/05/16(木) 01:50:16.53ID:4fy8zsNP
>>913
C以外は助長だな

915デフォルトの名無しさん2019/05/16(木) 03:57:55.40ID:6BLr95cC
>>914
具体的にはどの処理のどの部分を冗長に感じられたのでしょうか?
たとえばRubyの回答がどう冗長か(あるいはどう書けば良いか)教えてください!

916デフォルトの名無しさん2019/05/16(木) 08:25:20.49ID:MujhV/Cm
>>913 故意にpython 外しはずるい。
>>877 python
https://ideone.com/yvFuOl

printフォーマットは、コメントにしたpython3.6のf文字列の方がシンプルだが、ideone は3.5しかないのでformat文にした。

917デフォルトの名無しさん2019/05/16(木) 10:18:52.91ID:YVMjr/q8
>>877
Go
https://ideone.com/mJOisR

コンパクトにならんね

918デフォルトの名無しさん2019/05/16(木) 14:34:08.16ID:YVMjr/q8

919デフォルトの名無しさん2019/05/16(木) 19:26:40.27ID:ktv4pd0R

920デフォルトの名無しさん2019/05/16(木) 20:28:13.91ID:3sIrlJF4
お題
整数の数列が与えられるので、各値の大小関係を変えないように値をなるべく小さくせよ
ただし1番小さい要素は1にすること
入力
-6 3 9 5 3 -7
出力
2 3 5 4 3 1

921デフォルトの名無しさん2019/05/16(木) 21:00:21.83ID:/dAesd8e

922 ◆QZaw55cn4c 2019/05/16(木) 21:47:12.78ID:m1RdOLwU
>>920
>値をなるべく小さくせよ
絶対値を小さく、という意味ですか?

923デフォルトの名無しさん2019/05/16(木) 22:59:47.34ID:0eZXbfha
>>920 Pharo/Squeak Smalltalk

| fn |

fn := [:arr |
| sorted |
sorted := arr asSet sorted.
arr collect: [:x | sorted indexOf: x]
].

fn value: #(-6 3 9 5 3 -7). "=> #(2 3 5 4 3 1) "

9249132019/05/16(木) 23:00:52.84ID:02wuysYU
>>877 ocaml
https://ideone.com/waZZh7
・自分に正直になってrefとforループで書いた

>>914
じょ、助長…

>>916
外しと言うより、たんに不勉強
python書けないんよね(´・ω・`)

925デフォルトの名無しさん2019/05/16(木) 23:34:17.56ID:YXKZQo24
>>923 Perl5

@a = qw{-6 3 9 5 3 -7};
$h{$_}=1 for @a;
%o = map{$_=>++$i} sort{$a<=>$b} keys %h;
@b = map{$o{$_}} @a;
print "@a => @b\n";

実行
~ $ perl 13_920.pl
-6 3 9 5 3 -7 => 2 3 5 4 3 1

926デフォルトの名無しさん2019/05/16(木) 23:42:11.94ID:YXKZQo24
>>925
アンカーしくった、>>920 宛だった…orz

927デフォルトの名無しさん2019/05/16(木) 23:44:54.09ID:02wuysYU

928デフォルトの名無しさん2019/05/17(金) 00:26:31.35ID:SI3/qEwo
>>888 Pharo/Squeak Smalltalk

| fn |

fn := [:arr |
String streamContents: [:ss |
| cIdx lIdx |
cIdx := lIdx := 0.
arr do: [:spec |
spec third > lIdx ifTrue: [
ss nextPutAll: (String new: spec third - lIdx withAll: Character cr).
lIdx := spec third.
cIdx := 0
].
ss nextPutAll: (String new: spec second - cIdx withAll: Character space).
ss nextPutAll: spec first.
cIdx := spec second + 1.
]
]
].

fn value: #(
(a 0 0)
(b 2 0)
(c 4 0)
(d 0 2)).

"=>
a b c


d "

929デフォルトの名無しさん2019/05/17(金) 00:35:47.85ID:HrEfbPs9
>>927
重複除去でソート後のインデックスを返す関数?
チート過ぎてわろたw

930デフォルトの名無しさん2019/05/17(金) 00:55:59.72ID:TuAgku6e
最近jニキ来ないな

931デフォルトの名無しさん2019/05/17(金) 01:23:24.98ID:UHIjSpei

932デフォルトの名無しさん2019/05/17(金) 07:54:47.22ID:9a+COZnd
>>888
s = '''\
[a, 0, 0]
[b, 2, 0]
[c, 4, 0]
[d, 0, 2]
'''

from parse import * #pip install

col2 = 0 ; line2 = 0
for l in s.splitlines():
 col = col2 ; line = line2
 r=parse('[{},{},{}]',l)
 c= r[0]
 col2 = int(r[1]) ; line2 = int(r[2])
 {print() for _ in range(line2-line) }
 {print(' ',end='') for _ in range(col2-col)}
 print(c, end='')
 col2 += 1
print()

'''#出力
a b c

d
'''

933デフォルトの名無しさん2019/05/17(金) 08:32:11.25ID:9a+COZnd
>>932 parse に型指定追加
>>888 Python
s = '''\
[a, 0, 0]
[b, 2, 0]
[c, 4, 0]
[d, 0, 2]
'''

from parse import * #pip install

col2 = 0 ; line2 = 0
for l in s.splitlines():
 col = col2 ; line = line2
 (c,col2,line2) = parse('[{},{:d},{:d}]',l)
 {print() for _ in range(line2-line) }
 {print(' ',end='') for _ in range(col2-col)}
 print(c, end='')
 col2 += 1
print()

'''#出力
a b c

d
'''

934デフォルトの名無しさん2019/05/17(金) 12:14:50.20ID:8VLhbVxR
>>920
は、ランク付けの問題だろ

入力データ
-6 3 9 5 3 -7
出力・ランク
2 3 5 4 3 1

入力データの最も小さい数字を、ランク1 にして、
数字が大きくなるほど、ランクも大きくしていく

同値の場合は、同じランクにして、次のランクも間隔を空けない。
ランク3 が2つあっても、次は、ランク4

つまり、ランクが欠けることはない!

935デフォルトの名無しさん2019/05/17(金) 12:23:14.18ID:99nnd/tf
>>934
うるせぇ死ね

936デフォルトの名無しさん2019/05/17(金) 12:39:09.53ID:L8EHraRu
難しく書いてたけど結局これだけなのか
問題文をわざと複雑に見せかける現代文読解と同じ仕組みじゃないか

937デフォルトの名無しさん2019/05/17(金) 12:49:18.63ID:ut9H1r3U
プログラム作る前に気づいたので>>931のリンク先のブログラムのタイトルは密かに「順位」にしといたw

938デフォルトの名無しさん2019/05/17(金) 12:50:56.11ID:l82uGMBO
>>936
わざと難しく見せかけているというより、たんに説明が下手なだけだと思う

939デフォルトの名無しさん2019/05/17(金) 13:23:46.56ID:gFFtTihX
別に難しくない件

940デフォルトの名無しさん2019/05/17(金) 13:29:01.98ID:L8EHraRu
そうですね
難易度は主観ですね
なら短さ長さを比べるとこうなります

・各値の大小関係を変えないように値をなるべく小さくせよ
・ランク付けせよ

もしかしたらこれが要するにただのランク付けだと分かるまで何人が挑戦するかを試してみる社会調査だったのかもしれません

941デフォルトの名無しさん2019/05/17(金) 13:36:08.80ID:/5AjAxyT
>ランク付けだと分かるまで何人が挑戦するかを試してみる

まさにそうじゃないの?

942デフォルトの名無しさん2019/05/17(金) 13:44:50.72ID:mxL0YWmq
>>920 J
f =: >: @ (i.~ /:~ @ ~.)

f _6 3 9 5 3 _7
2 3 5 4 3 1

943デフォルトの名無しさん2019/05/17(金) 14:08:19.69ID:gFFtTihX
>>940
アスペ

944デフォルトの名無しさん2019/05/17(金) 14:08:53.72ID:gFFtTihX
問題文を添削しちゃう皆さん

945デフォルトの名無しさん2019/05/17(金) 14:20:43.10ID:gFFtTihX

946デフォルトの名無しさん2019/05/17(金) 15:06:17.59ID:Jb6joIEA
さすがにいちゃもん付け過ぎだろ
元の問題文読めば普通はわかるだろ

947デフォルトの名無しさん2019/05/17(金) 15:51:11.97ID:99nnd/tf
問題: おっぱいをなるべく小さくせよ。

948デフォルトの名無しさん2019/05/17(金) 16:00:34.70ID:ut9H1r3U
>>947
(・)(・)

(・)(・)

949デフォルトの名無しさん2019/05/17(金) 16:18:22.99ID:X2USxdO3
お題:自然数を隙間なく自分自身以外の数に対応させよ。

950デフォルトの名無しさん2019/05/17(金) 16:46:21.83ID:9GdSR9hc
>>949 先生、対応させると言う日本語がわかりません。
日本人には難しいです。

951デフォルトの名無しさん2019/05/17(金) 17:04:52.99ID:ut9H1r3U
>>949
君が何を言っているのかわからない。

952デフォルトの名無しさん2019/05/17(金) 17:24:51.97ID:L8EHraRu
>>949
パッ見で分からん

953デフォルトの名無しさん2019/05/17(金) 18:07:07.73ID:nEasvejW
偶数なら1引く
奇数なら1足すとかでいいんじゃないの

954デフォルトの名無しさん2019/05/17(金) 18:39:31.46ID:9GdSR9hc
>>953 良いんじゃないのじゃなくて、他の人が理解できる言葉に翻訳してよ。
これじゃ小学校の国語で平均点以下だろ。

日本語が不自由ならプログラム例を示せば良い。変な言語はダメだけど、C系の素直な言語なら万国共通

955デフォルトの名無しさん2019/05/17(金) 19:30:38.86ID:Jb6joIEA
要はf: N -> N の∀n∈N f(n) ≠ n かつ全単射な写像を求めろってことでしょ

956デフォルトの名無しさん2019/05/17(金) 19:35:23.29ID:Jb6joIEA
あ、単射じゃなくてもいいか

957デフォルトの名無しさん2019/05/17(金) 19:40:06.71ID:9GdSR9hc
>>955 あのさ、それで人に通じると思ってるの?
そんな仕様書を書いて誰がコーディングするんだよ。

日本語に翻訳して明後日出直してこい。

言語能力にかけてるやつは、自分の頭の中が周りの人からスケスケに見えてると言う妄想を持ってる。
狭い世界で通用しても社会では通用しない。

958デフォルトの名無しさん2019/05/17(金) 19:47:34.60ID:9GdSR9hc
ここまで何人もの人がわからんと言ってるのは、その仕様を出した人間の素質が失格という事だろ。

それを何で庇うんだ? 庇う理由を説明してみろよ。 ここがバカばかりと思うならバカに解るように説明しろよな。

バカにわからせなければ、PLは務まらないよ。
と言うか、仕事は一般人としてるのに何をトチ狂ってるんだ? かなり精神を疑うな。

959デフォルトの名無しさん2019/05/17(金) 19:50:16.70ID:Jb6joIEA
教養のないやつに限ってブチ切れる

960デフォルトの名無しさん2019/05/17(金) 20:11:05.80ID:KIX3RA0i
>>947
桃白白改めミスターポポ改めピラフ改めピッコロさん、くだらない出題はやめてください

961デフォルトの名無しさん2019/05/17(金) 20:11:56.63ID:9a+COZnd
>>959 で、どんな問題なんだ? プログラミングできる仕様として出してくれよ。

962 ◆QZaw55cn4c 2019/05/17(金) 20:21:17.94ID:e+Q6zZPk
>>956
単射でないとなると、n に対して n % 10 を対応付けるとかもありになりますね…

>>957
全射、単射、全単射とかは普通に使う単語ですよ、知らないのなら、これらの術語を含む数学の本…代数ですかね?解析ですかね?よくわからないや、を一冊読んでみるのがいいですね

963デフォルトの名無しさん2019/05/17(金) 20:46:06.10ID:Jb6joIEA
>>961
出題者に言えよ

>>962
%じゃ全射にも単射にもならんぞ
上で誰かが言ってた遇奇を入れ替えたりだとか
f(n) = n - 1, f(0) = 0以外の任意の値
とかなんでもありだね。つまらんけど

964デフォルトの名無しさん2019/05/17(金) 20:48:13.95ID:99nnd/tf
顔射は普通に使う単語ですか?

965 ◆QZaw55cn4c 2019/05/17(金) 20:51:49.11ID:e+Q6zZPk
>>963
>%じゃ全射にも単射にもならんぞ
そうですね、じゃ、割り算の商の整数部分「/」とかはどうでしょう

966デフォルトの名無しさん2019/05/17(金) 21:06:32.38ID:ut9H1r3U
>>964
はい。

967デフォルトの名無しさん2019/05/17(金) 21:09:38.99ID:Jb6joIEA
>>965
そりゃなんでもありよ
その場合は0の時だけ別の値を定義すれば良し

968デフォルトの名無しさん2019/05/17(金) 21:30:53.57ID:0M7uQZeH
920だが、ランク付けだと解が236531と解釈される可能性が有ったので避けた
もっと簡単な書き方があるはそう思う、座圧+1とかでも伝わるだろうし……

969デフォルトの名無しさん2019/05/17(金) 22:36:31.21ID:gcMK/Ofn
数値のリストを入力し、値の小さい順に1から順位を付けて、
順位のリストを出力する。同じ値は同じ順位とする

970デフォルトの名無しさん2019/05/17(金) 22:47:54.41ID:TGYryIO4
ほんとそれ
ピラフ改めピッコロはさっさと自害しろ

971デフォルトの名無しさん2019/05/17(金) 23:20:58.53ID:L8EHraRu
>>949
やっぱりどういう入出力の具体例になるのか分からない
どういうことなんだよ

972デフォルトの名無しさん2019/05/17(金) 23:47:24.37ID:xYITnAAv
>>971
あくまで俺の推測だが
一例として、自分自身の数が3のとき自然数から3を除去して
(1) 1, 2, 3, 4, 5, 6, ...

(2) 1, 2, NULL, 4, 5, 6, ...
NULLになった部分をなくすために4以降を左へシフトする
(3) 1, 2, 4, 5, 6, 7, ...
こんな感じで(1)の入力を(3)のような出力にする関数じゃないか?

ただお題の条件としてはもっとゆるくて、入力はオーバーフローしない範囲の自然数、出力は「自分自身の数」を含まない自然数になれば何でもよくて、
定数関数でもハッシュ関数でもいいはず。
ただし、ある入力に対して必ず決まった値にならなければならず、同じ入力で呼び出すたびに出力が違うのはダメ。

973デフォルトの名無しさん2019/05/18(土) 00:15:42.42ID:w6U4ewGf
>>972 何をアホな事を言ってるんだ? そんなの小学生に数を数えなさいと言ってるのと等しいぞ。

それのどこがプログラミングのお題なんだ?
バカじゃないのか?

974デフォルトの名無しさん2019/05/18(土) 01:03:14.81ID:bbC9YGRR
>>942
乙、見事。

975デフォルトの名無しさん2019/05/18(土) 01:57:48.06ID:jjK+y75q

976デフォルトの名無しさん2019/05/18(土) 02:15:29.87ID:jjK+y75q

977デフォルトの名無しさん2019/05/18(土) 07:46:37.95ID:w6U4ewGf
>>920 Python

ol = [-6, 3, 9, 5, 3, -7]
print([ sorted(set(ol)).index(x)+1 for x in ol ] )

# [2, 3, 5, 4, 3, 1]

978デフォルトの名無しさん2019/05/18(土) 10:52:55.70ID:0WkfcTHM
>>971
1. すべての自然数nに対してf(n)≠n
2. 自然数m,nがm≠nを満たすときf(m)≠f(n)
を満たすような関数f(n)を作れってこと

例えば
1. 入力が1のとき出力は1以外
2. 入力が1のときと2のときで出力が同じになってはダメ

979デフォルトの名無しさん2019/05/18(土) 11:06:29.35ID:spo9+l+a
>>978
2はいらんやろ
適当なコト抜かすなごかすぞぼけ

980デフォルトの名無しさん2019/05/18(土) 11:10:21.66ID:vBrA8iCH
単射である必要はない。全射でさえあればよい

981デフォルトの名無しさん2019/05/18(土) 12:08:52.78ID:R97vL30T
難しすぎて全くわからん…
ハローワールド始めて間もない男にも分かる問題を出してくれぬか
優しく教えて欲しい

982デフォルトの名無しさん2019/05/18(土) 12:10:33.89ID:HBaY+7WM
>>949
これがあれば1Mbyteのファイルが2byteになっちゃうのか?

983デフォルトの名無しさん2019/05/18(土) 12:48:31.15ID:PrlqGkYa
>>978 これのどこがプログラムの問題なのかさっぱりわからん。 小学生の練習問題か?

例えば自然数が 1から4までとした場合、f(n) の出力配列は
f(1) 2,3,4
f(2) 1,3,4
f(3) 1,2,4
f(4) 1,2,3
と言う事だろ? どうしてこんな問題を出したかさっぱり分からん、何か勘違いしてる?

984デフォルトの名無しさん2019/05/18(土) 14:29:45.05ID:5ij/PJHb

985デフォルトの名無しさん2019/05/18(土) 14:46:59.19ID:0WkfcTHM
>>979
「隙間なく」を満たすには全射である必要があるけど、今回は定義域と終域が等しいから単射なら自動的に全射になる
全射の条件より単射の条件のほうが説明が楽だから許してくれ

>>983
出題者じゃないから意図は分からんが、自然数を自身以外の自然数に変換するのが題意だからその例は間違っている
f(n)が返すのは自然数であってベクトル(配列)ではない

986 ◆QZaw55cn4c 2019/05/18(土) 14:50:54.64ID:To+6m73X
>>980
>単射である必要はない。全射でさえあればよい

???

>>978
2. 自然数m,nがm≠nを満たすときf(m)≠f(n)

これって単射の定義そのものなのでは?
だから単射である必要があるのでは?

f が単射でない場合 f:a->z, f:b->z だった場合に a != b にもかかわらず f(a)=f(b) で 2 を満たさない

987デフォルトの名無しさん2019/05/18(土) 14:57:54.95ID:jXb4UL4k
def f(n)
n + 1
end
一応>>978は満たしてる

988デフォルトの名無しさん2019/05/18(土) 15:16:22.17ID:0WkfcTHM
>>985
追記
単射なら全射になるのは有限集合の場合だったわ

お詫びにお題
入力n(2≤n≤2^31-1)を素因数分解してそれを表示せよ
入力例)
28
2002
216653
出力例)
2^2*7
2*7*11*13
216653

989デフォルトの名無しさん2019/05/18(土) 15:45:24.30ID:kdcwh9zo
>>888 Perl5

@a=([a, 0, 0],
   [b, 2, 0],
   [c, 4, 0],
   [d, 0, 2]);
sub {$t[$_[2]][$_[1]] = $_[0]}->(@$_) for @a;
@b = map{[map{$_ // ' '} @$_]} map{[@$_]} @t;
undef $";
$s = join'', map{"@$_\n"} @b;
print $s;


実行
~ $ perl 13_888.pl
a b c

d

990デフォルトの名無しさん2019/05/18(土) 15:57:05.04ID:0itJzGag
ハローワールドなら任せて欲しい

991デフォルトの名無しさん2019/05/18(土) 16:05:30.57ID:5ij/PJHb

992デフォルトの名無しさん2019/05/18(土) 16:32:58.07ID:BaKYgAyw
>>990
任せた。

993デフォルトの名無しさん2019/05/18(土) 17:19:27.10ID:4C+see96
>>990
はよ次スレをハローワールドしろや

994デフォルトの名無しさん2019/05/18(土) 17:34:28.08ID:BWmpW4IF

995デフォルトの名無しさん2019/05/18(土) 17:35:58.58ID:BWmpW4IF

996デフォルトの名無しさん2019/05/18(土) 17:56:26.22ID:4C+see96
>>995
乙。

997デフォルトの名無しさん2019/05/18(土) 21:05:17.15ID:sChpoVCN
>>988 Pharo/Squeak Smalltalk

| fn |

fn := [:n |
| m bag |
m := n.
bag := Bag new.
Integer primesUpTo: n sqrt + 1 do: [:prime |
[m isDivisibleBy: prime] whileTrue: [m := m / (bag add: prime)]
].
m > 1 ifTrue: [bag add: m].
String streamContents: [:ss |
bag valuesAndCounts associations sort do: [:assoc |
ss nextPutAll: assoc key asString.
assoc value > 1 ifTrue: [ss nextPutAll: '^', assoc value asString]
] separatedBy: [ss nextPut: $*]
]
].

fn value: 28. "=> '2^2*7' "
fn value: 2002. "=> '2*7*11*13' "
fn value: 216653. "=> '216653' "

998デフォルトの名無しさん2019/05/18(土) 21:18:36.25ID:PrlqGkYa
>>987 何か落とし穴があるとしたら、巨大数かなと思い、自然数を増やしてみると、python( iOSのpythonista , ideon )では配列数は 10**7 までだった。

大きな連続数の配列なんて作るバカはいないだろうし、ますます問題の意図がわからん。

一応書いてみたが、lambda 1行のみ ,(def でも何でも良いが)
f978 = lambda x,n:[i for i in range(1,n+1) if i != x]
xが自分の数字、n は自然数の数

https://ideone.com/iMUZ96

呼び出しは、f978(3,10**6) の様に
出力の配列数が大きくなると全ての数のPrint はアホらしいので、
10以上は配列数だけを出してる( これも n-1 だからアホらしいのだが )

out(1,4)
out(2,4)
out(4,4)

out(10**2,10**7)

stdout
個数 n= 4 自数 x= 1 自数以外の数= 3
[2, 3, 4]
個数 n= 4 自数 x= 2 自数以外の数= 3
[1, 3, 4]
個数 n= 4 自数 x= 4 自数以外の数= 3
[1, 2, 3]
個数 n= 10000000 自数 x= 100 自数以外の数= 9999999

999デフォルトの名無しさん2019/05/18(土) 21:29:48.34ID:PrlqGkYa
問題をひねって、不連続のランダムの整数としてもほとんど変わらないだろ。

1000デフォルトの名無しさん2019/05/18(土) 21:31:36.43ID:gB6Wr8nG
(´・_・`)


lud20201213015759ca
このスレへの固定リンク: http://5chb.net/r/tech/1549160513/
ヒント:5chスレのurlに http://xxxx.5chb.net/xxxx のようにbを入れるだけでここでスレ保存、閲覧できます。

TOPへ TOPへ  

このエントリをはてなブックマークに追加現在登録者数177 ブックマークへ


全掲示板一覧 この掲示板へ 人気スレ | Youtube 動画 >50 >100 >200 >300 >500 >1000枚 新着画像

 ↓「プログラミングのお題スレ Part13 YouTube動画>1本 ->画像>15枚 」を見た人も見ています:
プログラミングのお題スレ Part10
プログラミングのお題スレ Part15
プログラミングのお題スレ Part14
プログラミングのお題スレ Part16
プログラミングのお題スレ Part11
プログラミングのお題スレ Part12
プログラミングのお題スレ Part19
プログラミングのお題スレ Part18
プログラミングのお題スレ Part17
プログラミングのお題スレ Part9
プログラミングのお題スレ Part8
プログラミングのお題スレ Part20
プログラミングのお題スレ Part7
プログラミングのお題スレ Part21
プログラミングのお題スレ Part22
プログラミングのお題スレ
WPF(.NET4.x, .NET Core) GUIプログラミング Part23
UNIXプログラミング質問すれ Part10
プログラミング言語 Kuin Part 16#01
関数型プログラミング言語Haskell Part30
WPF(XAML, XBAP, .NET4.0)GUIプログラミング Part19
WPF(.NET4.x, .NET Core) GUIプログラミング Part24
WPF(XAML, XBAP, .NET4.0)GUIプログラミング Part22
プログラミング詐欺?情報商材屋マナブ(ねずみ男・アル中)ってどうよ? Part2
安価でプログラミングの教科書を作るスレ
関数型プログラミング言語Haskell Part32
関数型プログラミング言語Haskell Part33
関数型プログラミング言語Haskell Part31
WPF(.NET, WinUI) GUIプログラミング Part33
サーバー使ったプログラミングの勉強したいからお題だしてください
七行プログラミング part6
UNIXプログラミング質問すれ Part8
最も美しいプログラミング言語は? Part6
関数型プログラミング言語Haskell Part26
関数型プログラミング言語Haskell Part34
PlayStation Mobileプログラミング part 7
Androidプログラミング質問スレ revision53
競技プログラミングにハマるプログラマのスレ 13
WPF(.NET, WinUI) GUIプログラミング Part30
WPF(.NET4.x, .NET Core) GUIプログラミング Part25
【プログラミング商材12万】情報商材屋マナブってどうよ? Part5【ブログ商材2万】
休みだから初心者が1日中プログラミングの勉強するスレ [無断転載禁止]
今日のプログラミングスレ
ヒッキーの競技プログラミングするスレ 3完
Androidプログラミング質問スレ revision55
ヒッキーのまったりプログラミングするスレ 2
Androidプログラミング質問スレ revision54
ヒッキーの競技プログラミングするスレ 2完
プログラミング義務教育の全容について考えるスレ
ゲ制作に使うプログラミング言語について語るスレ
競技プログラミングにハマるプログラマのスレ 15
プログラミング言語Swift Part4 [無断転載禁止]
競技プログラミングにハマるプログラマのスレ 21
競技プログラミングにハマるプログラマのスレ 14
競技プログラミングにハマるプログラマのスレ 16
競技プログラミングにハマるプログラマのスレ 19
競技プログラミングにハマるプログラマのスレ 22
競技プログラミングにハマるプログラマのスレ 20
競技プログラミングにハマるプログラマのスレ 17
競技プログラミングにハマるプログラマのスレ 18
09:44:29 up 10 days, 10:48, 2 users, load average: 9.69, 9.50, 9.40

in 0.037564992904663 sec @0.037564992904663@0b7 on 012323