プログラミングのお題スレ Part15at TECH
プログラミングのお題スレ Part15 - 暇つぶし2ch200:デフォルトの名無しさん
19/08/28 14:09:15.46 iZEqAFR9.net
>>195
お題と余談が書いてあるだけだぞ。
とりあえず、刮目して自動プログラミングプログラムを作ってください。
作れなさそうなら、概要を日本語で説明してください。

201:デフォルトの名無しさん
19/08/28 14:20:49.15 iHRPACN2.net
まず自動プログラミングプログラムってなんだよ
お前の造語なんか知らんわ

202:デフォルトの名無しさん
19/08/28 14:40:15.76 9ymulh1y.net
ドメイン特化言語作れってことか?

203:デフォルトの名無しさん
19/08/28 14:40:49.41 gV1iThk/.net
>>189
Kotlin
URLリンク(paiza.io)
こんなので良いのかな?
厳密に言ったら最後の出力文字列を作る時の map で値が取り出されて新たなリスト作るからコピーされちゃってんだけどね。

204:デフォルトの名無しさん
19/08/28 14:47:42.49 iZEqAFR9.net
「自動プログラミング」「プログラム」ですが何か。
DSLじゃないわ。

205:デフォルトの名無しさん
19/08/28 14:52:51.27 CKrqMRiB.net
1文字ごとにカンマが入って空白or改行を使わないプログラミング言語ってなんだろう…?
4kb(この表記だとビットかバイトかわからん)が数年で行けるってどういう計算だろう…?

206:デフォルトの名無しさん
19/08/28 14:59:27.89 iZEqAFR9.net
>>199
暗黙変数があるとオレ、フリーズしちゃうなぁ。
やったことない言語だけど、結果はあってると思う。

207:デフォルトの名無しさん
19/08/28 15:03:25.48 iZEqAFR9.net
>>201
文字の列挙のリストには抜けがあるかもしれない。
C++は改行しなくても空白さえあればかける気がするけど。
なお、字数が増えれば増えるほど遅くなる。
とりあえず、実行してみればわかるけど、検索文字を総当たりしてるだけだからね。
んで、コンパイラに投げて通るかどうかのチェック入れないといけないんだ。

208:デフォルトの名無しさん
19/08/28 15:06:25.36 iZEqAFR9.net
>>201
あぁ、指摘には感謝しておく。
4kbは大体4千字くらいか。

209:デフォルトの名無しさん
19/08/28 15:59:11.53 CKrqMRiB.net
字数が増えれば増えるほど遅くなる、の遅くなり具合がわかってない気がする
使用する文字の種類を60とした場合、総当たりで毎秒10億個生成できても19年で10文字くらいだよ

210:デフォルトの名無しさん
19/08/28 16:09:46.11 DKDzG5Os.net
ただの無限の猿定理では?

211:デフォルトの名無しさん
19/08/28 16:18:28.21 iZEqAFR9.net
>>205
うほ!そんな遅いんかいな。
オーダーよりパッションで作ったのでそこまで考えてない。
それが・・・現実・・・!!!
>>206
そんなかんじだねぇ。

212:デフォルトの名無しさん
19/08/28 16:19:08.51 DKDzG5Os.net
設問が悪い。
自動プログラミングプログラムの出力が不正でなければ良い→コンパイルエラーないしはランタイムエラーを出さない、で良いの?
phpのソースを書き出せば問題ない。
ランダムな文字列を出力し続けても、文字空間が64文字であれば、5文字目以降、毎回1/1073741824で失敗するがそれ以外のケースで自分自身を表示する正しいプログラムになる。

213:デフォルトの名無しさん
19/08/28 16:42:26.29 e0ao7N2r.net
>>200 自動プログラミングが何で数字の羅列なんだよ。
何処がプログラミングだよ。 こんな物どんなコンパイラを通したら意味を持ったプログラムになるんだよ。

214:デフォルトの名無しさん
19/08/28 16:43:40.35 e0ao7N2r.net
>>200 自分が日本語で説明してみろよ。

215:デフォルトの名無しさん
19/08/28 17:16:03.37 iZEqAFR9.net
>>209
エーっと、C/C++はポインタがあるので実行したマシン破壊する確率は高いな。
わざと文書的に正しければと書いてあるんだが、気づいてないな。
>>208
そうですなぁ。チェッカーがエラーを吐かないでよかった気がする。

216:デフォルトの名無しさん
19/08/28 17:16:54.34 iZEqAFR9.net
とりあえず、絶不評なので>>191は終了します。
お付き合いいただきありがとうございました。

217:デフォルトの名無しさん
19/08/28 17:33:20.06 DKDzG5Os.net
ガチでやるなら遺伝的アルゴリズムで遊んだほうが面白そうな話題ではある。
総当たりは分が悪い。

218:デフォルトの名無しさん
19/08/28 18:50:08.98 sIwi/wTh.net
みんなまじめに小学生の相手して偉いなぁ

219:デフォルトの名無しさん
19/08/28 19:02:24.38 31wF8+fr.net
ネットでプログラムとかコードとかの記事検索して予約語が含まれるセンテンスをコピペするプログラムとかどう?(゚∀゚)<これを自動プログラミングと呼べるかどうか知らんけど

220:デフォルトの名無しさん
19/08/28 19:28:19.63 gV1iThk/.net
>>212
最後まで何をやらせたいのかわからなかった。

221:デフォルトの名無しさん
19/08/28 20:50:01.23 f9cLfftu.net
>>214
そいつは小学生じゃなくて
わりと高齢の池沼だと思う

222:デフォルトの名無しさん
19/08/29 00:02:26.73 gFHz9oC8.net
まあ例のコテロートルだろうな

223:さまよえる蟻人間
19/08/29 00:48:42.64 5IzqEHY7.net
お題: 入力として任意の長さのバイト列(半角アルファベット)が与えられる。入力を左から読み取っていくとき、
読み込まれるバイトの状態遷移を表すデータまたは画像を出力せよ。ただし、初期状態は'^'、終了状態は'$'で
表すものとし、状態遷移図のノードには重複がないものとする。
例)
"AKDAK"

^: A.
A: K.
K: D$.
D: A.
$: .

224:デフォルトの名無しさん
19/08/29 01:15:35.61 goo8Bnc2.net
mousukosikangaetekarasyutudasisiroyokusokotega

225:さまよえる蟻人間
19/08/29 03:44:38.74 +saAg95g.net
>>220
kantansugitakana?

226:デフォルトの名無しさん
19/08/29 11:53:46.40 DcYjq8Qg.net
nande2do$ga deterunda?

227:デフォルトの名無しさん
19/08/29 13:28:32.46 gjTy67rx.net
>>219
> 読み込まれるバイトの状態遷移を表すデータまたは画像
とは何か?

228:さまよえる蟻人間
19/08/29 20:14:38.43 +saAg95g.net
>>223
状態遷移図。

229:デフォルトの名無しさん
19/08/29 20:21:57.74 1SU6nQHs.net
ループまで検出シロっていってるのかいな?

230:デフォルトの名無しさん
19/08/30 00:51:59.58 0mnJOhtL.net
>>222
D$は、Dに遷移するか、または、$に遷移するって意味じゃないかな

231:デフォルトの名無しさん
19/08/30 01:22:20.46 Knt08H1L.net
ちゃうやろJK
edgeの終端が二股は有効グラフではNGやで

232:デフォルトの名無しさん
19/08/30 06:09:58.43 N+Bub+CM.net
お題
1億以下の同じ数字でできている数(1,22,777など)をすべて表示する

233:デフォルトの名無しさん
19/08/30 06:52:02.20 BnHn7wdj.net
>>228
perl5
URLリンク(ideone.com)

234:デフォルトの名無しさん
19/08/30 06:53:07.28 BnHn7wdj.net
0抜けてた悔しい

235:デフォルトの名無しさん
19/08/30 07:10:25.46 N+Bub+CM.net
>>228
自然数を対象とします。なので0は対象外。

236:デフォルトの名無しさん
19/08/30 10:00:13.13 /ZgOmfmJ.net
>>228 Ruby
p (1...9).flat_map{|i| (1..9).map{|j| j * (10**i - 1) / 9}}
# => [1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 22, 33, 44, 55, 66, 77, 88, 99,
111, 222, 333, 444, 555, 666, 777, 888, 999, 1111, 2222, 3333,
4444, 5555, 6666, 7777, 8888, 9999, 11111, 22222, 33333, 44444,
55555, 66666, 77777, 88888, 99999, 111111, 222222, 333333,
444444, 555555, 666666, 777777, 888888, 999999, 1111111,
2222222, 3333333, 4444444, 5555555, 6666666, 7777777, 8888888,
9999999, 11111111, 22222222, 33333333, 44444444, 55555555,
66666666, 77777777, 88888888, 99999999]

237:デフォルトの名無しさん
19/08/30 10:54:33.08 TOyFnU58.net
>>228 Google Sheets
=ARRAYFORMULA(REPT(ROW(1:9), COLUMN(A:H)))
URLリンク(i.imgur.com)

238:デフォルトの名無しさん
19/08/30 11:37:28.31 Kz4M8rdT.net
>>233
評価。

239:デフォルトの名無しさん
19/08/30 12:26:06.17 VkI78Ia/.net
>>228
同じ数字でできている数って?どういう意味?

240:デフォルトの名無しさん
19/08/30 12:27:00.95 VkI78Ia/.net
あ、わかった。ごめん。

241:デフォルトの名無しさん
19/08/30 13:32:59.48 Tn7+4gKU.net
>>228 Pharo/Squeak Smalltalk
(1 to: 8) gather: [:n | (1 to: 9) collect: [:m | (Array new: n withAll: m) polynomialEval: 10]]
#(1 2 3 4 5 6 7 8 9 11 22 33 44 55 66 77 88 99 111 222 333 444 555 666 777 888 999
1111 2222 3333 4444 5555 6666 7777 8888 9999 11111 22222 33333 44444 55555 66666
77777 88888 99999 111111 222222 333333 444444 555555 666666 777777 888888 999999
1111111 2222222 3333333 4444444 5555555 6666666 7777777 8888888 9999999 11111111
22222222 33333333 44444444 55555555 66666666 77777777 88888888 99999999)

242:デフォルトの名無しさん
19/08/30 16:39:32.33 BnHn7wdj.net
遅いけど perl5
for (1..100_000_000) { print if s{\A (.) \1* \z}{$& }x }
1 2 3 4 5 6 7 8 9 11 22 33 44 55 66 77 88 99 111 222 333 444 555 666 777 888 999
1111 2222 3333 4444 5555 6666 7777 8888 9999 11111 22222 33333 44444 55555 66666
77777 88888 99999 111111 222222 333333 444444 555555 666666 777777 888888 999999
1111111 2222222 3333333 4444444 5555555 6666666 7777777 8888888 9999999 11111111
22222222 33333333 44444444 55555555 66666666 77777777 88888888 99999999

243:デフォルトの名無しさん
19/08/30 18:36:49.98 9N6Bd3Tw.net
>>91
Haskell
main = mapM_ (print.only)
[
[1,1,1,1,2,2,2,3,3,4],
[1,2,3,4,5,5,4,3,2,1],
[3,1,4,1,5,9,2,6,5,3,5]
]
only ns = f [xs | xs <- (group.sort) ns, length xs == 1]
where
f [] = -1
f ([x]:_) = x

ワンライナーも出来るけど、何やってるか読み取り辛い。
only ns = if lst == [] then -1 else (head.head) lst where lst = [xs | xs <- (group.sort) ns, length xs == 1]

244:デフォルトの名無しさん
19/08/30 19:34:06.70 9dkB4daP.net
>>228
あほ

245:デフォルトの名無しさん
19/08/30 23:12:37.99 aECV+bPz.net
>>228 Perl5
@s = map{$a=$_; map{$_ x $a} 1..9} 1..8;
print "@s";
実行;
~ $ perl 15_228.pl
1 2 3 4 5 6 7 8 9 11 22 33 44 55 66 77 88 99 111 222 333
444 555 666 777 888 999 1111 2222 3333 4444 5555 6666
7777 8888 9999 11111 22222 33333 44444 55555 66666 77777
88888 99999 111111 222222 333333 444444 555555 666666 777777
888888 999999 1111111 2222222 3333333 4444444 5555555 6666666
7777777 8888888 9999999 11111111 22222222 33333333 44444444
55555555 66666666 77777777 88888888 99999999

246:デフォルトの名無しさん
19/08/30 23:55:50.54 olp7cGEF.net
>>228
Kotlin
URLリンク(paiza.io)

247:デフォルトの名無しさん
19/08/31 05:23:58.92 aUqRNM/Y.net
a = 0
for i = 1, 8 do
  a = a * 10 + 1
  for j = a, a * 9, a do
    print(j)
  end
end
>>228 Lua

248:デフォルトの名無しさん
19/08/31 08:18:15.37 rAMLyuja.net
>>228
Haskell
import Data.List
main = (print.sort.concat) [[(sum.take a) [x * 10 ^ y | y <- [0..9]] | x <- [1..9]]| a <- [1..8]]

249:デフォルトの名無しさん
19/08/31 08:45:29.92 h26kuCJS.net
お題
>>228 を求めることができる
特に最適化を施さないナイーブな実装(例えば>>238 )を書いて
その実行にかかる時間(ミリ秒、秒等)を計測し出力してください
なお遅い言語処理系で1億以下が無理な場合は1千万以下でも構いません

250:デフォルトの名無しさん
19/08/31 10:03:16.75 4OmVCRqb.net
time perl -e 'for (1..100_000_000) { print if s{\A (.) \1* \z}{$& }x }'
1 2 3 4 5 6 7 8 9 11 22 33 44 55 66 77 88 99 111 222 333 444 555 666 777 888 999
1111 2222 3333 4444 5555 6666 7777 8888 9999 11111 22222 33333 44444 55555 66666
77777 88888 99999 111111 222222 333333 444444 555555 666666 777777 888888 999999
1111111 2222222 3333333 4444444 5555555 6666666 7777777 8888888 9999999 11111111
22222222 33333333 44444444 55555555 66666666 77777777 88888888 99999999
real 1m30.031s
user 1m29.046s
sys 0m0.093s

251:デフォルトの名無しさん
19/08/31 10:56:28.19 Z8IDlpBx.net
>>245 Pharo/Squeak Smalltalk
| time ans |
time := [ans := (1 to: 100000000) select: [:n | n asString asSet size = 1]] timeToRun.
^{time. ans}
"Core m3-8100Y => an Array(0:00:02:55.58 #(1 2 3 4 5 6 7 8 9 11 22 33 44 55 66 77 88 99 111
222 333 444 555 666 777 888 999 1111 2222 3333 4444 5555 6666 7777 8888 9999 11111
22222 33333 44444 55555 66666 77777 88888 99999 111111 222222 333333 444444 555555
666666 777777 888888 999999 1111111 2222222 3333333 4444444 5555555 6666666 7777777
8888888 9999999 11111111 22222222 33333333 44444444 55555555 66666666 77777777
88888888 99999999)) "

252:デフォルトの名無しさん
19/08/31 10:58:35.47 8/I1hpDH.net
>>245 Perl5、1千万以下、CPU: Core i5 M520@2.4GHz
use Time::HiRes qw(gettimeofday tv_interval);
$t0 = [gettimeofday];
for (1..1e8) {
 push @s, $_ if /^(.)\1*$/;
}
$elapse = tv_interval($t0, [gettimeofday]);
printf "@s\n%.3f[s]\n", $elapse;
実行結果
~ $ perl 15_245.pl
1 2 3 4 5 6 7 8 9 11 22 33 44 55 66 77 88 99 111 222 333 444 555 666 777 888 999
1111 2222 3333 4444 5555 6666 7777 8888 9999 11111 22222 33333 44444 55555 66666
77777 88888 99999 111111 222222 333333 444444 555555 666666 777777 888888 999999
1111111 2222222 3333333 4444444 5555555 6666666 7777777 8888888 9999999
49.732[s]

253:デフォルトの名無しさん
19/08/31 11:35:18.32 weQXwxl4.net
>>245 Java
URLリンク(ideone.com)
Pentium G6950@2.8GHz
整数演算: 1,073ms
正規表現: 46,450ms
Ideone
整数演算: 495ms
正規表現: 2,592ms (これだけ1千万以下で計測)

254:デフォルトの名無しさん
19/08/31 12:36:03.19 E0AleLqQ.net
>>120
Haskell
main = map (\n -> f n 0) [15,93,77,123]
f n a | n < 10 = (n,a)
f n a = f (product [read [x] | x <- show n]) (a + 1)

255:デフォルトの名無しさん
19/08/31 12:47:22.94 8/I1hpDH.net
>>245 c99、 Core i5 M520@2.4GHz
#include <time.h>
#include <math.h>
#include <stdio.h>
int main() {
 int b = 1, n = 1;
 clock_t s = clock();
 for (int e = 1; e <= 9; e++) {
  int j = pow(10, e) - pow(10, e - 1);
  for (int i = 1; i <= j; i


256:++) {    if (n == (n / b) * b)     printf("%d ", n);    n++;   }   b *= 10; b += 1;  }  clock_t e = clock();  printf("\n%.3f[s]\n", (double)(e - s)/1e6); } 実行結果 $ cc -std=c99 -O2 15_245.c -lm $ time ./a.out 1 2 3 4 5 6 7 8 9 11 22 33 44 55 66 77 88 99 111 222 333 444 555 666 777 888 999 1111 2222 3333 4444 5555 6666 7777 8888 9999 11111 22222 33333 44444 55555 66666 77777 88888 99999 111111 222222 333333 444444 555555 666666 777777 888888 999999 1111111 2222222 3333333 4444444 5555555 6666666 7777777 8888888 9999999 11111111 22222222 33333333 44444444 55555555 66666666 77777777 88888888 99999999 111111111 222222222 333333333 444444444 555555555 666666666 777777777 888888888 999999999 3.890[s]



257:デフォルトの名無しさん
19/08/31 13:39:39.88 u8Io5isX.net
>>228
URLリンク(ideone.com)
C++。いつもなら数え上げで書くところだが、今回は趣向を変えてみた。

258:デフォルトの名無しさん
19/08/31 13:43:00.43 weQXwxl4.net
>>252
>>231
> 自然数を対象とします。なので0は対象外。
すぺしゃらいずいらねw

259:デフォルトの名無しさん
19/08/31 13:44:48.13 u8Io5isX.net
ぶー!!!
・・・これが・・・!!!・・・これこそが・・・!!!
・・・だ・・・!!!・・・だそく・・・!!!!

260:デフォルトの名無しさん
19/08/31 13:45:31.08 u8Io5isX.net
間に合った。 >>253 サンキュー。

261:デフォルトの名無しさん
19/08/31 15:12:57.30 RMcMP/J8.net
>>245
Haskell ナイーブな方
Atomコア(Celeron N3050@1.6GHz)
1億以下で約31秒
main = print [x | x <- [1..100000000], let (s:ss) = show x, all (== s) ss]
time ./zorome
real 0m31.426s
user 0m31.123s
sys 0m0.248s
ナイーブな方は探すアルゴリズムで、最適化の方(>>244)は数列を作るアルゴリズム。
(1から99999999までの(1桁から8桁までの)ゾロ目を作る)
[
[[1],[1,10],[1,10,100]...],
[[2],[2,20],[2,20,200]...],
...,
[[9],[9,90],[9,90,900]...]]
]
って言う数列を生成して、合計出してフラットにしてソートしてるだけだよ。
(他の言語のも多少の手順の違い(フラット化とソートしないで「合計出した時点で表示」を縦方向に繰り返したり)はあるけど、基本のアルゴリズムとしては同じ)

262:デフォルトの名無しさん
19/09/01 18:40:58.06 lGQcNl0x.net
お題: nバイトのデータxをビット列にして出力しなさい

263:デフォルトの名無しさん
19/09/01 19:01:25.42 KcbCTlPY.net
>>257 Java
URLリンク(ideone.com)

264:デフォルトの名無しさん
19/09/01 19:32:51.46 VqTK6sxa.net
>>257 Perl5
$n = 24;
@a = map{int rand 255} 1..$n;;
print "@a\n";
@b = map{sprintf'%08b', $_} @a;
$" = '';
print "@b\n
実行例
~ $ perl 15_257.pl
155 105 94 58 85 82 124 6 242 94 119 175 69 205 95 25 79 154 237 248 169 254 46 93
100110110110100101011110001110100101010101010010011111000000011011110010010111100111011110101111010001011100110101011111000110010100111110011010111011011111100010101001111111100010111001011101

265:デフォルトの名無しさん
19/09/01 19:42:33.97 931SdLmv.net
>>257 Common Lisp
URLリンク(ideone.com)

266:デフォルトの名無しさん
19/09/01 20:53:53.13 kwhZ+eUh.net
>>259
rand 255 ⇒ 256 の方がヨカタ

267:デフォルトの名無しさん
19/09/01 21:45:06.97 CELgatxy.net
>>259 コピペミス
print "@b\n

print "@b\n";

268:デフォルトの名無しさん
19/09/02 02:56:48.97 oioFkvSQ.net
>>120
>>125 みたいに、1桁になるまでの変化の様子もリストで渡すようにした。
Haskell
main = mapM put [4,15,93,77,123,277777788888899]
put x = (putStrLn.concat) [show x," -> ",show a,
" loop and value is ",show n,". list = ",show l]
where (l,a,n) = f [] 0 x
f l a n| n < 10 = (reverse l,a,n)
f l a n = f (m:l) (a + 1) m
where m = product [read [x] | x <- show n]

269:デフォルトの名無しさん
19/09/02 02:57:17.93 oioFkvSQ.net
out:
4 -> 0 loop and value is 4. list = []
15 -> 1 loop and value is 5. list = [5]
93 -> 3 loop and value is 4. list = [27,14,4]
77 -> 4 loop and value is 8. list = [49,36,18,8]
123 -> 1 loop and value is 6. list = [6]
277777788888899 -> 11 loop and value is 0. list = [4996238671872,438939648,4478976,338688,27648,2688,768,336,54,20,0]

270:デフォルトの名無しさん
19/09/02 06:37:20.55 6t6D41pn.net
>>257 Ruby
n = 16
x = Array.new(n){rand(0x100)}
b = n.times.reduce(0){|s, i| x[~i] * 0x100**i + s}
puts "%p => %0#{n}b" % [x, b]
# => [31, 95, 43, 108, 105, 54, 1, 122, 100, 48, 137, 121, 131, 188, 105, 244] =>
11111010111110010101101101100011010010011011000000001011110100110010000110000100010010111100110000011101111000110100111110100

271:デフォルトの名無しさん
19/09/02 06:39:28.02 6t6D41pn.net
typo
puts "%p => %0#{n * 8}b" % [x, b]
# => [31, 95, 43, 108, 105, 54, 1, 122, 100, 48, 137, 121, 131, 188, 105, 244] =>
00011111010111110010101101101100011010010011011000000001011110100110010000110000100010010111100110000011101111000110100111110
100

272:デフォルトの名無しさん
19/09/02 12:10:04.08 rT9Zixkt.net
>>233
勉強になりましたw

273:デフォルトの名無しさん
19/09/02 12:49:28.87 YYsNPCXj.net
>>257
URLリンク(ideone.com)
C++。気が向いたのでstd::byte動かしてみたけど、ideonが対応してなくてグレードダウンした・・・。

274:デフォルトの名無しさん
19/09/02 15:10:33.79 rT9Zixkt.net
全滅エンドか!?

275:デフォルトの名無しさん
19/09/02 21:31:28.92 qij/0ceW.net
>>247
VB
URLリンク(paiza.io)

276:デフォルトの名無しさん
19/09/03 02:08:35.68 FeqFVaAA.net
>>228
aa=$(echo ^{1..9}\\\{1,\\\}\$\\\| |sed -e "s/ //g; s/\\\|$//;"); seq 1 $((10**8)) |grep -e "$aa"

277:デフォルトの名無しさん
19/09/03 03:13:14.41 4SpqHsfM.net
数学的な解き方わからず
このx>=3の自然数解を見つける
a>b、 (a^2 - b^2)^x + (2ab)^y = (a^2 + b^2)^z

278:272
19/09/03 05:28:10.06 VYSmTHvF.net
a=2 b=1で 3^x + 4^y = 5^z
は解無し

279:デフォルトの名無しさん
19/09/03 08:27:27.03 Sk67xQLY.net
a b は実数? 正の整数?

280:デフォルトの名無しさん
19/09/03 08:38:58.69 VYSmTHvF.net
出てくる文字、a b x y z はすべて自然数、正の整数です

281:デフォルトの名無しさん
19/09/03 08:39:49.44 03sYx3ae.net
a > b > 0 なの?
0 > a なら意味ないんだけど
出題者が問題をそもそも理解してなさそう

282:デフォルトの名無しさん
19/09/03 08:44:26.60 VYSmTHvF.net
すべて1以上の整数として、
x>=3、  a>b、  (a^2 - b^2)^x + (2ab)^y = (a^2 + b^2)^z
を満たすものを見つける
そこでa=2 b=1の場合は解無しがわかっていて
任意のa,bに対して、(a^2 - b^2)^2 + (2ab)^2 = (a^2 + b^2)^2 が成り立つことも判っています

283:デフォルトの名無しさん
19/09/03 08:57:07.87 VYSmTHvF.net
指数2だと必ず成立するのはこれだからです
指数3以上で解けるのはどれか、あるかです

ピタゴラス数は無数にある
中学校の数学で習う定理に、「三平方の定理」或いは「ピタゴラスの定理」と呼ばれるものがある。
a^2 + b^2 = c^2 を満たす正の整数の組 (a, b, c) のことを、ピタゴラス数と呼ぶ。
例えば、(3, 4, 5) や (5, 12, 13) などは有名なピタゴラス数である。
ピタゴラス数が無限個存在する
任意の原始的ピタゴラス数 が (|m^2 ? n^2|, 2mn, m^2 + n^2) の形で表せることを示す。
URLリンク(nue2004.info)

284:デフォルトの名無しさん
19/09/03 09:27:31.81 fMS/rXUz.net
\   / .::::::::::::::::::::::::;;:;;::,ッ、:::::::::   )  く   数  す
  \ l  ,ッィrj,rf'"'"'"    lミ::::::: く   れ  学  ま
     Y           ,!ミ::::::: ヽ  な  野  な
`ヽ、  |           くミ:::::::: ノ   い  郎  い
     |、__  ャー--_ニゞ `i::::,rく   か  は
``''ー- ゝ、'l   ゙̄´彑,ヾ   }::;! ,ヘ.)  !  帰
      ゙ソ   """"´`     〉 L_      っ
      /          i  ,  /|    て    r
≡=- 〈´ ,,.._        i  't-'゙ | ,へ     ,r┘
,、yx=''" `ー{゙ _, -、    ;  l   レ'  ヽr、⌒ヽ'
        ゙、`--─゙      /!         `、
  _,,、-     ゙、 ー''    / ;           `、
-''"_,,、-''"    ゙、    /;;' ,'  /         、\
-''"    /   `ー─''ぐ;;;;' ,'  ノ      
   //    /     ヾ_、=ニ゙

285:デフォルトの名無しさん
19/09/03 13:20:54.78 SA/JpX4x.net
どう考えてもスレチだよなぁ
必要なのはプログラムじゃなく紙と鉛筆っぽいし

286:デフォルトの名無しさん
19/09/03 13:43:33.95 WMTa8Qij.net
このスレは数学嫌いな奴多いなぁ
べつにちょっとぐらいいいじゃないか

287:デフォルトの名無しさん
19/09/03 13:52:03.24 /IQ7x87c.net
むしろこのスレは本当にコンピューター使わないと解けないような
パズル問題とかの方が解答つかないことが多い

288:デフォルトの名無しさん
19/09/03 14:53:42.89 R1k47NOJ.net
掛け算があるので加速的に左の解が増えるので追い付かなくなる予感。

289:デフォルトの名無しさん
19/09/03 15:14:05.99 R1k47NOJ.net
>>272
URLリンク(ideone.com)
C++。コードが正しければ解ナシ。

290:デフォルトの名無しさん
19/09/03 15:15:29.58 R1k47NOJ.net
(a^2 - b^2)^x + (2ab)^y=0
(a^2 + b^2)^z=0
の連立方程式解くとよさそうに見えるが。
解くのむずくて俺は無理。

291:デフォルトの名無しさん
19/09/03 15:28:15.62 03sYx3ae.net
>>285
何かの冗談? それじゃ明らかに解無しなんですが

292:デフォルトの名無しさん
19/09/03 15:31:15.82 FbgAnO5f.net
>>257 Ruby
N = 10
X = Random.new.bytes(N)
puts X.unpack('C*').map{|c| '%02X' % c}.join(' '), X.unpack('B*')
結果
82 30 D4 E1 07 32 27 3E A2 E5
10000010001100001101010011100001000001110011001000100111001111101010001011100101

293:デフォルトの名無しさん
19/09/03 15:38:54.45 R1k47NOJ.net
自分で移項して解こうと思ったがキャパ超えててギブアップ。
>>286
解があることは証明されているのですか?数学ダメなんだよ。

294:デフォルトの名無しさん
19/09/03 15:40:16.69 03sYx3ae.net
>>288
(a^2 + b^2)^z=0 <=> a = 0 and b = 0
a > b はどこ行ったの?
てか勝手に両辺=0にしちゃその時点で必要性満たしてないよね

295:デフォルトの名無しさん
19/09/03 15:45:42.09 R1k47NOJ.net
数学ダメなのでセオリー知らないんだけど。マジ解らん。
正直すまんかった。

296:デフォルトの名無しさん
19/09/03 15:47:50.03 R1k47NOJ.net
あと、ちょっとだけ。
>>289
俺はaとbをゼロには規定してないよ。

297:デフォルトの名無しさん
19/09/03 15:50:06.71 gHL/qcPl.net
>>284
18行目の不等号逆じゃない?
x=y=z=2の時に出力出るはずだけど。
(元のお題ではxは3以上)

298:デフォルトの名無しさん
19/09/03 15:52:04.84 R1k47NOJ.net
>>292
URLリンク(ideone.com)
弄ってみた。

299:デフォルトの名無しさん
19/09/03 15:56:44.07 gHL/qcPl.net
doubleの演算誤差出てるなwwww

300:デフォルトの名無しさん
19/09/03 15:57:29.86 R1k47NOJ.net
>>293 直しました。
大きな数で発見できているかな?

301:デフォルトの名無しさん
19/09/03 16:00:10.37 R1k47NOJ.net
いや、精度飛んでて、うまく測れてないな。

302:デフォルトの名無しさん
19/09/03 16:01:59.48 gHL/qcPl.net
演算誤差ではないか 誤差で=になるレベルじゃない
AとB出力してみ?

303:デフォルトの名無しさん
19/09/03 16:02:55.16 R1k47NOJ.net
多倍長無いと証明には至らないな。
というわけで今回は抜けるわ。
乱文申し訳ない。

304:デフォルトの名無しさん
19/09/03 16:03:35.69 gHL/qcPl.net
あ、doubleからstd::size_tになってたw

305:デフォルトの名無しさん
19/09/03 16:10:08.37 R1k47NOJ.net
色々弄ってみたけど、これで凍結しておくわ。
すまんかった。

306:デフォルトの名無しさん
19/09/03 16:42:54.68 03sYx3ae.net
>>291
規程してないよって言ってるけど
貴方が提示した条件は a=0 and b=0 と同値ですよって指摘してるんですけど難しいですか私が言ってる事

307:デフォルトの名無しさん
19/09/03 16:46:54.03 R1k47NOJ.net
>>301
正直言えば難しいね。手を出さなければよかったとちょっと思ってる。
すまんな。

308:デフォルトの名無しさん
19/09/03 21:38:14.04 MpIMqTuu.net
>>277
なんでxだけ3以上なの?
yとzは本当に1以上の整数として解いていいの?
aとbは定数として扱うの?
なんなの?

309:デフォルトの名無しさん
19/09/03 22:12:17.83 VYSmTHvF.net
x=y=z=2以外の解があるか?
すべて自然数、変数 a>b、 (a^2 - b^2)^x + (2ab)^y = (a^2 + b^2)^z の解
答えしらず。 a=2 b=1だけはいまのところ他にないを証明可能

310:デフォルトの名無しさん
19/09/03 22:33:37.84 dCTs9gWx.net
>>257
VB
URLリンク(paiza.io)

311:デフォルトの名無しさん
19/09/03 22:40:59.77 MpIMqTuu.net
>>304
だからxだけ3以上でyとzは1以上の整数として計算していいか聞いてんだけど?
で、もしそうだったとしてなんでxだけ3以上に仮定してんのかも合わせて聞いてんだけど答えろよ

312:デフォルトの名無しさん
19/09/04 00:41:31.51 5HyNYB53.net
304は3以上を仮定してない、すべて自然数

313:デフォルトの名無しさん
19/09/04 02:57:47.93 5U+WeLbN.net
あーこりゃ致命的に頭悪い奴か
数学も日本語も通じないとは

314:デフォルトの名無しさん
19/09/04 07:57:08.75 FC7xGJ7s.net
定理を発見したら著作権で保護されるのかな。

315:デフォルトの名無しさん
19/09/04 08:46:01.17 HTJbgiFI.net
日本数学会に提出する前に
大学の教授にみてもらわないと

316:デフォルトの名無しさん
19/09/04 09:59:12.24 bj6rvw0v.net
次スレは数学禁止ってスレタイに入れないとな

317:デフォルトの名無しさん
19/09/04 10:54:57.98 wUnebE5/.net
>>310
そして手柄を横取りされる定期

318:デフォルトの名無しさん
19/09/04 11:24:41.75 P7o6e2y0.net
お題: 平面上にいくつかの円 (内部も含む円) がある
それが重なったり重ならなかったりしていて、最も重なっている箇所ではN個の円が重なっているとする
このとき、各円の座標と半径が与えられた場合にNを返すプログラムを書け

319:デフォルトの名無しさん
19/09/04 13:52:37.01 aB3hMBX/.net
半年くらい前にそのお題あったが思いつかなかったんだよなー…モンテカルロなら作れるがw
スレリンク(tech板:405番)

320:デフォルトの名無しさん
19/09/04 14:06:48.93 HTJbgiFI.net
それ円周率パイとネイピア数のe の積が
N個の円の重なる唯一の x座標とy座標の円達を与えられて返すの辛くないか?

321:デフォルトの名無しさん
19/09/04 14:13:24.75 yXyTPmQk.net
>>315
辛くねえよ
どうやったら方程式解いて超越数が出てくんだよ
ちょっとは考えてからレスしろ

322:デフォルトの名無しさん
19/09/04 14:29:48.47 HTJbgiFI.net
例として313が N=4 で、それを与える円4つが
(x-ePi-1)^2+(y-ePi)^2=1
(x-ePi+1)^2+(y-ePi)^2=1
(x-ePi )^2+(y-ePi-1)^2=1
(x-ePi )^2+(y-ePi+1)^2=1
だったら大変かもしれない?

323:デフォルトの名無しさん
19/09/04 17:19:01.11 reYoOADS.net
>>273
これ解無しって言ってるけど自明じゃないよね
ホントにあってんのか?

324:デフォルトの名無しさん
19/09/04 18:34:12.43 6EOP5CCF.net
>>306
横レスだが
騒ぐ前に元の>>272の問題文を良く見なさい
それで自分で判断できなければ数学的な問題に取り組むのは止めておいたほうが良い

325:デフォルトの名無しさん
19/09/04 18:42:19.25 8qjE+V3b.net
>>319
一連のやり取り見て出題者がそこら辺理解してなさそうだったから改めて確認しただけなんですけど
>>272を見ただけでは>>306の全ての質問に答えられないことは明白なのに何いってんの?
数学の論理もわからねえくせに見当違いのお説教してんじゃねえよ

326:デフォルトの名無しさん
19/09/04 18:49:05.83 A7beDSD/.net
5chはペアプレイではなくマルチプレイということをお忘れなく。

327:デフォルトの名無しさん
19/09/04 19:10:06.78 5HyNYB53.net
>>318
省いててわかりずらいかもしれないがアウトライン。一般化はできないだろう解き方。

3^x + 4^y = 5^z の自然数解は(2,2,2)唯一つ
mod 3で1 ≡ (-1)^z、 z偶数が必要
z=2wとおくと 3^x = (5^w + 2^y) (5^w - 2^y)
簡単な考察で右辺の後項が3の倍数ならば前項は3の倍数になりえないので後項=1、前項=3^xが必要
w偶数とすると結果2式をmod 3で比較して不成立、w奇数が必要
y>=3ならばmod 8で5 ≡ 3^x、任意のxで不成立
y=1ならば解なし

328:デフォルトの名無しさん
19/09/04 19:23:20.13 5HyNYB53.net
かいてから考えたら間違ってるところがでてきた
ここまではいいとして、これあってないな

> y>=3ならばmod 8で5 ≡ 3^x、任意のxで不成立

329:デフォルトの名無しさん
19/09/04 19:26:32.69 5HyNYB53.net
いやあってた
5^2 ≡ 1 (mod 8)になってしまうとおもったら
w奇数だから、5^3 ≡ 5 (mod 8)だった
5しかでない

330:デフォルトの名無しさん
19/09/04 20:01:35.58 P7o6e2y0.net
>>314
あら既出だったのか
Twitterで見つけてきたんだけど、その人もこのスレ見てたのかな
それとも問題自体が有名な問題なのかな?

331:デフォルトの名無しさん
19/09/04 22:19:56.37 bGWgoiea.net
少なくとも自分はAOJで見た記憶がある
たしか高校生向けのコンテストの問題だったはず…

332:デフォルトの名無しさん
19/09/04 22:31:18.96 A7beDSD/.net
>>313
座標と半径が与えられたら、ひたすらHypotするんだ!!
これ、ゲーム技術だから覚えておくとよいよ。(偉そう

333:デフォルトの名無しさん
19/09/04 22:47:39.03 5HyNYB53.net
自作かとおもってたがWikipediaにほぼおなじのあった。解は指数2に限るという。
のってて解けてないとすると難問か

ピタゴラスの定理 - Wikipedia
Jesmanowicz 予想
1956年に Jesmanowicz が以下の予想を提出した。
(a, b, c) を原始ピタゴラス数、n を自然数とする。x, y, z が
(an)^x + (bn)^y = (cn)^z
で自然数解を持つには、x=y=z=2 であることが必要である。

334:デフォルトの名無しさん
19/09/04 22:56:59.22 5HyNYB53.net
Jesmanowicz予想で検索

KAKEN 研究期間 2011 ? 2012 不定方程式におけるTerai予想とJesmanowicz予想
まず始めに、Terai予想のケース(1)のP=q=r=2の場合(Jesmanowicz予想)について考察した。
藤田育嗣氏(日本大学)との共同研究で、Jesmanowicz予想を三つ組みa,b,cがある合同条件を満たす場合に証明した。
Pingzhi Yuan氏(華南師範大学)との共同研究では、申請者の以前の研究結果を大幅に拡張することが出来た。
次に、Terai予想のケース(1)の一般的な場合について考察した。
最近、Florian Luca氏(メキシコ自治国立大学モレリア数学研究所)が、以前の研究の多くを(本質的に)一般化する結果を与えた。
その手法は、Baker理論とそのp進版の理論が有効に用いられていた。しかし、その結果は、不完全な点があり、申請者はその部分を補う計算を行なった。
さらに、申請者はTerai予想の類似問題を提起した。それは、
2以上の自然数p,q,rに対して、a^p+b^q=c^rを満たすa,b,cに対して、
指数型ディオファントス方程式c^x+b^y=a^zは、q=r=2かつc=b+1のときに限り自然数解x,y,zを持ち、
そのときにただ一つの自然数解(x,y,z)=(1,1,p)を持つである。
申請者は、Terai予想で扱われている三つ組みa,b,cについて考察を行い、
Baker理論とそのp進版の理論を用いて、いくつかの場合に予想は成立することを証明した。
特に、後半の主張である"解の一意性"を証明した。
最後に、Terai予想では扱われない三つ組みについても研究結果を得た。
まず、Alain Togbe氏(Purdue大学)との共同研究を行い、氏の以前の連続整数に関する研究を広く拡張することが出来た。
また、申請者は、三つ組みがある線形回帰数列の項として与えられる場合に方程式の解を決定した。
それによって寺井伸浩氏(足利工業大学)によって提起されたフィボナッチ数列に関する予想を解決した。
URLリンク(kaken.nii.ac.jp)

335:デフォルトの名無しさん
19/09/04 23:07:59.22 5HyNYB53.net
完全解決してないが、結構解けてるらしい

早稲田大学整数論セミナーの予定 (2014年度 第5回)
タイトル: 原始ピタゴラス数に関する Jesmanowicz 予想について
アブストラクト: 1956 年, Jesmanowiczはピタゴラス数に関する指数型不定方程式
(m^2 - n^2)^x + (2mn)^y = (m^2 + n^2)^z  は, ただ一つの正の整数解 (x; y; z) = (2; 2; 2) を持つことを予想した.
ただし, m > n, gcd(m; n) = 1, m ≠ n mod 2 を満たす正の整数とする.
Journal of Number Theory の論文 (2014 年) において, n = 2 とき Jesmanowicz 予想が成り立つことを証明した.
これは, 与えられた n > 1 に対し m について何も仮定せず Jesmanowicz 予想が成り立つ最初の結果である.
最先端の楕円曲線や modular formの理論から導かれる一般化された Fermat 方程式に関する結果を用いて, m に何も条件を付けずに Jesmanowicz 予想が成り立つことを証明することができた.
本講演では, これをさらに拡張して, n=2 が奇素数の冪でかつ m > 72n のときJesmanowicz予想が成り立つことを証明できたので紹介する.
これらの結果の系として, n=2 が 50 未満の奇数のとき Jesmanowicz 予想が成り立つことが容易に得られる.
URLリンク(www.waseda.jp)

336:デフォルトの名無しさん
19/09/04 23:25:42.22 4CPx11+J.net
>>313
VB
URLリンク(paiza.io)

337:デフォルトの名無しさん
19/09/05 00:10:35.11 ymsvBiyv.net
>>313
URLリンク(ideone.com)
C++。暇だったので解いてみた。が、あってるかわからない。

338:デフォルトの名無しさん
19/09/05 10:41:35.98 jPhMORz8.net
置く場所の最大サイズ2000*2000くらいまでだとprocessingとかで半透明の円を重ね合わせれば一番濃


339:いところが正解だから合ってるかどうかだいたい見て分かる rが小数で半径が0.0001から1億くらいまでまちまちだと面倒



340:デフォルトの名無しさん
19/09/05 10:53:13.59 Wm4c6P24.net
>>327,331-332
俺とは問題の解釈が違うようだ?

341:デフォルトの名無しさん
19/09/05 11:32:41.41 JTGocygG.net
>>334
そいつらはいつものアホやからスルーしなはれ

342:デフォルトの名無しさん
19/09/05 13:09:10.29 n5jm1pTY.net
>>326
高校生レベル高いな
まぁアルゴリズムとか高校生でもすごい子いるもんなー
競プロとかすごいもんなー

343:314
19/09/05 21:33:33.48 Wm4c6P24.net
>>313 Java
URLリンク(paiza.io)
なんか思いつけたので書いた
いつもはideoneやけど、画像出力もしたくなったのでpaiza
入力データは スレリンク(tech板:405番)

344:デフォルトの名無しさん
19/09/06 18:11:06.63 O7F8x+Ks.net
>>337
お前いつもスマートだよな

345:デフォルトの名無しさん
19/09/06 21:58:05.28 h6IBFFVJ.net
材料グループAと材料グループBがあるとする。
それぞれには、ランダムな固有値を持っており、
固有値の差が、ある数値以下の組み合わせのみ使用可能とする。
ただし、材料グループA、B内の材料は一度使うとなくなるため一度しか組み合わせれない。
それぞれのグループの材料が100ずつあったとして適切に組み合わせれば
全てがマッチングできる。ただ人組でもペアを間違えるとマッチングできない。
こういったことを実現するためには、どういった考え方でプログラミングすればいいでしょうか。

346:デフォルトの名無しさん
19/09/06 22:02:46.96 adnLBrFU.net
動的計画法でいいのかな?
オレできねーけど。

347:デフォルトの名無しさん
19/09/06 22:06:24.07 IlHiLkpw.net
>>339
各グループの材料を固有値の昇順にソートして小さい方からペア作ってくのではダメなのか?

348:デフォルトの名無しさん
19/09/06 22:10:20.13 adnLBrFU.net
A:大<->小
B:小<->大
のペアがましといえばまし。
真ん中がマッチしない可能性はある。

349:339
19/09/06 22:10:34.94 h6IBFFVJ.net
なるほど、とても簡単な問いだったのですね。
なんか難しい事ばかり考えていました。

350:デフォルトの名無しさん
19/09/06 22:11:12.30 5B1pyUbX.net
diff のアルゴリズムがもうちょっと複雑なのにも対応できるやつじゃなかったか?

351:デフォルトの名無しさん
19/09/06 22:14:00.34 adnLBrFU.net
あー、差が以下か。
A:小<->大
B:小<->大
でいいわ。。。
俺もなんか難しいこと考えてた。そーりー。

352:339
19/09/06 22:14:53.61 h6IBFFVJ.net
必ずマッチングできない100ずつあったとした場合でも昇順ソートして同じ順位にいるもので、比較してマッチングできれば実施、できなければ上位を参照してマッチングできたら抜けて、できなければさらに上位とマッチングみたいなことをすれば良いのか。

353:339
19/09/06 22:23:16.91 h6IBFFVJ.net
あっ違う違う。
昇順にソートして組み合わせるとマッチングできないもの出てきます。
というのも差が最小の組み合わせではなくて、
差がある一定以下である事なので、昇順にソートして隣り合うものではダメです。
少し考えたのですが、全ての組み合わせを実施して、その計算結果、今回は差がある数値以下である数が多い組み合わせを採用するみたいなことになるんですかね

354:デフォルトの名無しさん
19/09/06 22:44:43.03 IlHiLkpw.net
>>347
適切な解が存在するケースで、小さい順の付き合わせでダメになる具体例を示せる?

355:339
19/09/06 23:00:40.30 h6IBFFVJ.net
ないですね。
ということは、やはり最小のマッチング以外はありえないということになるのですね。
材料在庫が変動していたとしても、その瞬間の最小の差のペアを作ることが
一番効率の良いマッチング方法になる�


356:ニいうことか、、、。



357:デフォルトの名無しさん
19/09/06 23:08:33.74 adnLBrFU.net
>>339
URLリンク(ideone.com)
C++。ちょっと思いついたのでコード書いてみたよ。
ちょっとグリードに組み合わせ作るようにしてみた。

358:デフォルトの名無しさん
19/09/06 23:19:00.83 Sfa1dP8m.net
全てマッチングできるとは限らず最も多くマッチングできる組み合わせ
を求める ならちょっと工夫必要そう

359:デフォルトの名無しさん
19/09/06 23:24:40.52 h6IBFFVJ.net
皆さんありがとう。
最も多くマッチングさせるときは、閾値に一番近い選択を行うことがシンプルということかな?
>>350
コードありがとうございます。
プログラムを生業にしている者ではないのでC++の開発環境から構築になりますが、試してみます。

360:デフォルトの名無しさん
19/09/06 23:31:32.53 adnLBrFU.net
fix it.

361:デフォルトの名無しさん
19/09/06 23:32:51.82 adnLBrFU.net
大したコードではないが、そこまで威力があるとは思わなかった。
動機なんてそんなもんか。

362:蟻人間
19/09/06 23:43:04.03 sc/CXZHY.net
お題: ある会社の営業曜日(複数可)と営業時間が与えられる。今月1ヶ月の営業時間の合計を求め、今月のカレンダーの下に表示せよ。ただし、その会社は祝日・祭日を特別扱いしないものとする。

363:399
19/09/07 00:15:01.96 meGL1HdM.net
>>354
おぉ見るたびマッチング精度上がってる
ありがとうございます!
参考にさせてもらいます

364:デフォルトの名無しさん
19/09/07 09:58:38.85 kl0P3WfA.net
>>350
>>339は固有値の差と言ってるのに>>350は固有値の和でコード書いてるように見える

365:デフォルトの名無しさん
19/09/07 10:01:09.66 15iR+LCW.net
そもそもeigenvalueじゃないのに固有値と言うのに違和感を覚える

366:デフォルトの名無しさん
19/09/07 10:40:38.85 K3PTI0jA.net
わからんな
結晶や薄膜やらだと本当に固有値がある
ヤツは「材料」って言っていて、その先に何を想定してるかこちらには伏せられたまま
もしかすると高分子の製薬かもしれない
使うと無くなるんだろ?

367:デフォルトの名無しさん
19/09/07 13:46:49.28 VQVarZXt.net
>>357
あ・・・。そうだね、そうだね。
すっかり勘違いしていた。

368:デフォルトの名無しさん
19/09/07 14:08:25.27 VQVarZXt.net
URLリンク(ideone.com)
C++。引き算する場合、奇策練るとよくない感じだなぁ・・・。
しかし、うっかりしてたわ。

369:デフォルトの名無しさん
19/09/07 14:45:59.42 VQVarZXt.net
URLリンク(ideone.com)
C++。暇だったから、いじってみた。
自分の方法だと、スコア高い?けどたまに100ペアにならないことがある。
これで今回はこれがオチとしておく。

370:399
19/09/07 20:55:02.76 aT864lGO.net
>>362
やっぱり、最小のペアを選んでいくことがベストなのかな?
できれば差は出来るだけ小さい方が良くて、結果みてると後者の方が良好な結果が出てる気がする

371:デフォルトの名無しさん
19/09/08 00:49:49.01 YBN7WO0H.net
排便を
壁に塗りつけ
したり顔

372:デフォルトの名無しさん
19/09/08 02:51:14.16 bEtb/TpC.net
>>257
Kotlin
URLリンク(paiza.io)

373:デフォルトの名無しさん
19/09/08 08:38:41.51 GRxK0QRw.net
>>313
正方形だと3倍速い

374:デフォルトの名無しさん
19/09/08 09:39:44.56 46Wp6heU.net
3倍早いだけだったらオーダーが変わらねーじゃん
円が一万個一億個一兆個だったらどうなんの

375:デフォルトの名無しさん
19/09/08 09:58:44.95 GRxK0QRw.net
3日の仕事が1日で済むとも言う。

376:デフォルトの名無しさん
19/09/08 13:16:12.58 rbzdrKrZ.net
>>363
ランダム生成している数字が割と一様なのでそういう結果になるけど、
まばらに片寄っていたらどうすればいいかはその時しかわからんなぁ。

377:蟻人間
19/09/08 23:16:36.64 YT+ZQkc/.net
何か初心者にも解ける面白い問題ないかな?

378:蟻人間
19/09/08 23:23:17.86 YT+ZQkc/.net
お題: 質問文とn個の項目からなるメニューを実装せよ。
質問文とn個の文字列が入力として与えられる。質問文とn個の項目をかっこよく表示し、ユーザーが一つ項目を選ぶまで待つ。選んだら、選んだ項目を出力する。

379:蟻人間
19/09/08 23:47:28.87 YT+ZQkc/.net
お題: マイ ドキュメントのフォルダ階層構造を表示せよ。

380:デフォルトの名無しさん
19/09/08 23:48:15.93 gIfFAHmp.net
お題
与えられた数列の、隣り合う2要素の差のリストを作る関数等を作ってください。
入力数列例
3 1 4 1 5 9 2 6 5
出力数列例
-2 3 -3 4 4 -7 4 -1
余力があれば、ファイルなどから非常に長い数列を与えられても対処できる実装を試みてください
URLリンク(gushwell.ldblog.jp) を一部改変)

381:デフォルトの名無しさん
19/09/08 23:48:22.91 7lW0qzzX.net
お題:北のミサイルをなんとかせよ

382:デフォルトの名無しさん
19/09/08 23:51:10.96 ZRQn+E7p.net
どっかの国ハックして打ち込むしか

383:デフォルトの名無しさん
19/09/09 00:57:49.46 G8Ger3PB.net
>>373 Perl5
sub f {
 map{$_[$_ + 1] - $_[$_]} 0..$#_-1;
}
@a = qw{3 1 4 1 5 9 2 6 5};
@b = f @a;
print "@b\n";
実行結果
~ $ perl 15_373.pl
-2 3 -3 4 4 -7 4 -1

384:デフォルトの名無しさん
19/09/09 07:20:37.09 F7fW2XyB.net
>>373 Pharo/Squeak Smalltalk
| fn |
fn := [:xs | xs allButFirst - xs allButLast].
fn value: #(3 1 4 1 5 9 2 6 5). "=> #(-2 3 -3 4 4 -7 4 -1) "

385:デフォルトの名無しさん
19/09/09 13:13:33.41 4K8wNjEy.net
>>373 Ruby
p [3, 1, 4, 1, 5, 9, 2, 6, 5].each_cons(2).map{|e| -e.reduce(:-)}
# => [-2, 3, -3, 4, 4, -7, 4, -1]

386:デフォルトの名無しさん
19/09/09 15:22:46.46 pyLk+Xbb.net
>>373 Pharo/Squeak Smalltalk
#(3 1 4 1 5 9 2 6 5) overlappingPairsCollect: [:x :y | y - x]
"=> #(-2 3 -3 4 4 -7 4 -1) "

387:デフォルトの名無しさん
19/09/09 15:35:48.47 pmQvKTaB.net
>>373
URLリンク(ideone.com)
C++。あってるかな?

388:デフォルトの名無しさん
19/09/09 15:55:42.79 8EKyQA8Q.net
>>373
perl5
"3 1 4 1 5 9 2 6 5" =~ m/(\d) (?= \s? (\d) ) (?{push @diff, $2 -$1}) /xg;
print "@diff";
-2 3 -3 4 4 -7 4 -1

389:デフォルトの名無しさん
19/09/09 17:47:36.36 Uwb0lHsl.net
>>373
Kotlin
URLリンク(paiza.io)
ファイルというか標準入力から入力する事しかできない。

390:デフォルトの名無しさん
19/09/09 18:55:29.45 nBEHXDpg.net
>>373
ファイルからの読み込み派が居ない件。。。
Haskell
main = readFile "count.txt" >>= return.read >>= \lst -> print $ zipWith (-) (tail lst) lst
― ファイルから読まない場合は
― main = print $ zipWith (-) (tail lst) lst where lst = [3,1,4,1,5,9,2,6,5]
test.txt
[3,1,4,1,5,9,2,6,5]
out:
[-2,3,-3,4,4,-7,4,-1]

391:デフォルトの名無しさん
19/09/09 21:23:29.01 pmSRY1k7.net
>>373 octave
URLリンク(ideone.com)
>>373 ruby
URLリンク(ideone.com)
>>373 ocaml
URLリンク(ideone.com)

392:デフォルトの名無しさん
19/09/10 00:22:25.45 2zzGvcE4.net
>>219 Perl5
$s = 'AKDAK';
@a = ('^', split


393:'', $s); $o{$_} //= ++$i for @a; %e = map{$a[$_] => $a[$_+1]} 0..$#a-1; @p = sort{$o{$a} <=> $o{$b}} keys %o; $d{$p[-1]} = $p[-1].'$'; push @p, '$'; $e{'$'} = ''; print "'$s'\n→\n"; for (@p) {  $v = $e{$_};  $r = $d{$v} // $v;  print "$_: $r.\n"; } 実行結果 ~ $ perl 15_219.pl 'AKDAK' → ^: A. A: K. K: D$. D: A. $: .



394:蟻人間
19/09/10 01:16:31.32 /hHoc5h9.net
状態遷移図ってどんなときに役立つかな?

395:デフォルトの名無しさん
19/09/10 01:20:32.52 2zzGvcE4.net
ほらまぁ
状態遷移を表形式で定型的に定義した方が
言葉の羅列やグラフもどきポンチ絵などで表現するより明確な場面
さまざまなとき

396:デフォルトの名無しさん
19/09/10 01:22:32.02 2zzGvcE4.net
あいや、表じゃなくて図か。
そしたら、なんとなく依存関係などをややこしいグラフで表現して
ひもつけたとか賜って解釈したような気にさせるとき
自分で考えなよ

397:デフォルトの名無しさん
19/09/10 02:40:29.88 Ik1iUNRF.net
>>373 javascript
[3,1,4,1,5,9,2,6,5]
.reduce((acc, n, i, arr) => [...acc, arr[i + 1] - n], [])
.slice(0, -1)

398:デフォルトの名無しさん
19/09/10 08:11:29.51 lIijspdS.net
>>373
>>379 のブロック内で処理するのが分かりやすかったので、Haskellもprint以外の処理をリスト内包表記で完結するようにした。
main = print [y - x | let lst@(_:ls) = [3,1,4,1,5,9,2,6,5], (x,y) <- zip lst ls]
文字数としては >>383 より増えるが、読みやすさ優先。

399:デフォルトの名無しさん
19/09/10 17:53:27.20 cZVhsOAf.net
Smalltalkはやりたいことだけ書けばいいのがいい

400:デフォルトの名無しさん
19/09/10 18:46:19.95 CNsNp03m.net
分かったよじゃあoverlappingPairsCollect実装するよ…
const overlappingPairsCollect = (arr, cb) => {
let head = arr.shift();
const overlappingPairs = [];
for (const value of arr) {
overlappingPairs.push([head, value]);
head = value;
}
return overlappingPairs.map(([a, b]) => cb(a, b));
}
overlappingPairsCollect([3,1,4,1,5,9,2,6,5], (a, b) => b - a);
//=> [-2,3,-3,4,4,-7,4,-1]

401:デフォルトの名無しさん
19/09/10 19:17:03.68 CNsNp03m.net
ああ… forの前にif (!head) return overlappingPairs; のearly return入れ忘れた…

402:デフォルトの名無しさん
19/09/10 19:18:47.68 ER41jhKS.net
何言語?

403:デフォルトの名無しさん
19/09/10 19:51:01.24 4IK1yyiH.net
女子小学生のメスガキビッチ言語

404:デフォルトの名無しさん
19/09/10 20:05:04.03 9QXTHM58.net
なるほどjavascriptね!

405:デフォルトの名無しさん
19/09/10 20:19:20.42 ER41jhKS.net
URLリンク(ideone.com)
C++。なんか面白そうだったので、 >>392 をパクって移植してみた。
結構ジェネリックにかけたが、考える負荷高いね。

406:デフォルトの名無しさん
19/09/10 20:31:26.62 ER41jhKS.net
>>397
コード追加。MakeHogeで困ることあるかなぁ?
あんまりユースケース見えてないから、不具合あったら教えて。

407:デフォルトの名無しさん
19/09/10 21:25:03.39 OfzP/6E7.net
>>392
>>377 も頼む!

408:デフォルトの名無しさん
19/09/10 23:08:14.13 aMyCuNre.net
お題
スネークケースをアッパーキャメルケースに変換せよ
アンダースコアを単語の区切りとみなし、単語の先頭は大文字に、先頭以外は小文字に変換すること
また、単語を連結したときに数字が連続する場合はアンダースコアを残すこと
(例)
snake_case => SnakeCase
ODAI00_99_TEST => Odai00_99Test
x_0_x => X0X
UpperCamelCase => Uppercamelcase

409:デフォルトの名無しさん
19/09/10 23:20:02.02 Ik1iUNRF.net
>>399
allButFirstとallButLastは簡単だけどjsは生き残ってるスクリプト言語にしては珍しく演算子使ったリスト同士の演算が用意されてないのでfnは>>377みたいにキレイに書けない。
const allButFirst = arr => arr.slice(1);
const allButLast = arr => arr.slice(0, -1);
const fn = arr => allButLast(arr).reduce((acc, v, i) => (acc[i] -= v, acc), allButFirst(arr));
fn([3,1,4,1,5,9,2,6,5]);
//=> [-2,3,-3,4,4,-7,4,-1]

410:デフォルトの名無しさん
19/09/11 00:10:49.73 JxGfX2fh.net
>>400 Perl5
use feature say;
for (<DATA>) {
 say map{ucfirst lc} /((?:\d_\d|[^_\s])+)/g;
}
__DATA__
snake_case
ODAI00_99_TEST
x_0_x
UpperCamelCase

実行結果
~ $ perl 15_400.pl
SnakeCase
Odai00_99Test
X0X
Uppercamelcase

411:デフォルトの名無しさん
19/09/11 00:26:05.86 JxGfX2fh.net
>>402 その例ではいいけど
Odai00_9_9Test
↓になっちまうな…
Odai00_99test

412:デフォルトの名無しさん
19/09/11 00:31:52.77 TkJgDVYV.net
>>400
URLリンク(ideone.com)
C++。オレ、馬鹿になってる~。と苦しんでいた。

413:デフォルトの名無しさん
19/09/11 00:44:08.30 hWizELa3.net
>>397
C++むずかしすぎワロタwwwww

414:デフォルトの名無しさん
19/09/11 00:47:45.94 TkJgDVYV.net
C++とJSとの違いは大雑把に言って、使う型を先に決めるか後で決めるか。という程度だと思う。
オレ、自分の幸福度を上げるために、80行位で問題とくようにしている。
というか、手癖でそれくらいになる。

415:デフォルトの名無しさん
19/09/11 02:04:01.50 hWizELa3.net
>>400 JavaScript
const fn = s => s.split`_`
.map(([first, ...rest]) => [first.toUpperCase(), rest.join``.toLowerCase()].join``)
.reduce((acc, word) => acc + (/[0-9]{2}/.test(acc[acc.length - 1] + word[0]) ? '_' : '') + word);
fn('snake_case');
//=> "SnakeCase"
fn('ODAI00_99_TEST');
//=> "Odai00_99Test"
fn('x_0_x');
//=> "X0X"
fn('UpperCamelCase');
//=> "Uppercamelcase"

416:デフォルトの名無しさん
19/09/11 02:47:21.46 0/zUYWhl.net
>>400 Squeak Smalltalk
| fn |
fn := [:str |
| words |
words := str asLowercase subStrings: '_'.
words first capitalized , (words overlappingPairsCollect: [:x :y |
((x last isDigit and: [y first isDigit]) ifTrue: '_' ifFalse: '') , y capitalized
]) join
].
fn value: 'snake_case'. "=> 'SnakeCase' "
fn value: 'ODAI00_99_TEST'. "=> 'Odai00_99Test' "
fn value: 'x_0_x'. "=> 'X0X' "
fn value: 'UpperCamelCase'. "=> 'Uppercamelcase' "
fn value: 'Odai00_9_9Test'. "=> 'Odai00_9_9test' "

417:デフォルトの名無しさん
19/09/11 06:02:16.09 CEu0fvWD.net
>400 Ruby
f = -> s {s.split(/(?<=\D)_|_(?=\D)/).map(&:capitalize).join}
%w[
   snake_case ODAI00_99_TEST x_0_x UpperCamelCase
].each{|s| puts '%s => %s' % [s, f[s]]}
# =>
snake_case => SnakeCase
ODAI00_99_TEST => Odai00_99Test
x_0_x => X0X
UpperCamelCase => Uppercamelcase

418:デフォルトの名無しさん
19/09/11 06:06:45.97 CEu0fvWD.net
>>409 補足
puts f["Odai00_9_9Test'] # => Odai00_9_9test

419:デフォルトの名無しさん
19/09/11 12:54:52.45 Alp4BtBi.net
>>400
perl5
URLリンク(paiza.io)

420:デフォルトの名無しさん
19/09/11 21:23:01.78 RlhjBlE6.net
お題:リストの奇数位置にある要素のみを含むリストを作れ
ただし、先頭要素を1番目と数える
[1, 2, 3, 4, 5]

[1, 3, 5]
rust
URLリンク(ideone.com)
octave
URLリンク(ideone.com)

421:デフォルトの名無しさん
19/09/11 21:27:05.78 C94vqLvq.net
>>400
UpperCamelCaseはそのまま返すべきだろう。
(と言う事で、1文字目が大文字かつ全文に’_’が無い場合は、(恐らくUpperCamelCaseだろうと期待して)そのまま返すようにした)
Haskell
import Data.Char
main = mapM_ (print.f) ["snake_case","ODAI00_99_TEST","x_0_x","UpperCamelCase","notupperCamelCase"]
f [] = []
f lst@(x:_) | and [elem x ['A'..'Z'], (not.elem '_') lst] = lst
f (x:xs) = toUpper x:map toLower a ++ f (map toLower $ f' a b)
where
(a,b) = span (/= '_') xs
f' _ [] = []
f' [] (y:ys) = ys
f' xs lst@('_':y:ys) |and [(isDigit.last) xs, isDigit y] = lst
f' _ (_:ys) = ys

out:
"SnakeCase"
"Odai00_99Test"
"X0X"
"UpperCamelCase"
"Notuppercamelcase"

422:デフォルトの名無しさん
19/09/11 23:29:56.75 sKkTHzOH.net
>>400 Perl5、>>402-403 の修正、>>413 のように UpperCamelCase など_を含まない文字列はそのまま返す
use feature say;
for(<DATA>) {
@a = split/(?<!\d)_|_(?!\d)|\s/;
say 1 == @a ? @a : map{ucfirst lc} @a;
}
__DATA__
snake_case
ODAI00_99_TEST
x_0_x
UpperCamelCase
_local_vvar_
lavel_style_
OdAi00_9_9TeST

実行結果
~ $ perl 15_400_fix.pl
SnakeCase
Odai00_99Test
X0X
UpperCamelCase
LocalVvar
LavelStyle
Odai00_9_9Test

423:デフォルトの名無しさん
19/09/11 23:34:45.60 sKkTHzOH.net
>>414 ゴメン、実行結果貼り間違えた(下記のように最後のOdAi00_9_9TeSTはそのまま出る)
~ $ perl 15_400.pl
SnakeCase
Odai00_99Test
X0X
UpperCamelCase
LocalVvar
LavelStyle
OdAi00_9_9TeST

424:デフォルトの名無しさん
19/09/11 23:43:35.81 sKkTHzOH.net
>>412 Perl5
@a = a..z;
@x = map{$_-1} grep{$_&1} 1..@a;
@b = @a[@x];
print "[@b]\n";

実行結果
~ $ perl 15_412.pl
[a c e g i k m o q s u w y]

425:デフォルトの名無しさん
19/09/12 00:37:35.06 zD/2/X2z.net
>>412
common lisp
(loop for i in '(1 2 3 4 5) for j from 1 when (eql 1 (mod j 2)) collect i)
(1 3 5)

426:デフォルトの名無しさん
19/09/12 02:26:36.91 IEWaKNAx.net
>>400
Kotlin
URLリンク(paiza.io)

427:デフォルトの名無しさん
19/09/12 09:48:36.52 XoEd0LBY.net
>>412 Ruby
p [1, 2, 3, 4, 5].each_slice(2).map(&:first)
# => [1, 3, 5]

428:デフォルトの名無しさん
19/09/12 11:37:50.98 Cxpf63qu.net
>>412 JavaScript
[1, 2, 3, 4, 5].filter((val, idx) => (idx + 1) % 2)
//=> [1, 3, 5]

429:デフォルトの名無しさん
19/09/12 18:13:32.79 sKYe7PWn.net
>>412
Kotlin
URLリンク(paiza.io)

430:デフォルトの名無しさん
19/09/12 18:34:25.79 u0+zztnJ.net
>>412
URLリンク(ideone.com)
C++。こんな感じで。

431:デフォルトの名無しさん
19/09/12 21:30:23.66 +vUO8BYK.net
>>373 J
f =: 2 & (-~/\)
f 3 1 4 1 5 9 2 6 5
_2 3 _3 4 4 _7 4 _1

>>412 J
f =: _2 & ([/\)
f 1 2 3 4 5
1 3 5

432:デフォルトの名無しさん
19/09/12 21:33:45.75 cqw0/uFd.net
さすがJ
サッパリ分からん

433:デフォルトの名無しさん
19/09/13 00:40:21.67 6zSQdjjj.net
>>412
せめて、リストの中身は順番と関係無い内容の方が。。。
(例えば"abcde"とか)
Haskell
main = (print.oddlist) [1..5]
oddlist xs = [x | (x,y) <- zip xs [1..], odd y]

434:デフォルトの名無しさん
19/09/13 02:03:47.81 qdoB8RTo.net
お題:辞書型クリプタを実装せよ。
私の実装: URLリンク(ideone.com)
貴方はどう書く?

435:デフォルトの名無しさん
19/09/13 13:13:33.48 zfsxzWX8.net
>>412 Tcl
set x {1 2 3 4 5}
set r {}
foreach {a b} $x {set r [concat $r $a]}
puts $r
実行結果
1 3 5

436:デフォルトの名無しさん
19/09/13 21:31:55.35 5n7mddvT.net
>>427
> foreach {a b}
こんなオサレな書き方で二個処理できるのすごい

437:デフォルトの名無しさん
19/09/13 21:37:33.86 sQZEDK+j.net
tcl/tkで「tk部分ははいいがtclがクソ」みたいなのよく見た気がするんだけど、あれどういうとこが根拠なん?

438:デフォルトの名無しさん
19/09/14 04:14:12.84 x5aQTHnU.net
お題: すべての人民は和平のために火急的に速やかに自己の復元を実現しなければならない。

439:デフォルトの名無しさん
19/09/14 04:28:39.19 BS6VTuNp.net
>>412 Io
a := list(1, 2, 3, 4, 5)
a select(i, v, i isEven) println
実行結果
list(1, 3, 5)

440:デフォルトの名無しさん
19/09/14 07:49:29.90 /8qdS/t9.net
>>419
>>420
スレ違いだし、関数型言語だけが再利用性が高いとは言わないけど、
仮にoddlistがリストに対して良く使われる処理なら
[1,2,3,4,5].oddlist()
とか使いたいよね?
確かRubyはそう言う基本クラスにメソッド追加出来たと思うけど(うろ覚え)、
それをライブラリにして公開したいとする。
そうなると名前の競合とか起こり得るので
import mylib
[1,2,3,4,5].mylib.oddlist()
としたいとか、ならないだろうか。
変数と関数は別が良いって思った。
(議論の流れになるなら、別スレに誘導してね)

441:デフォルトの名無しさん
19/09/14 08:17:19.38 G26P45sA.net
>>412 Python
print([ i for i in range(1,6,2) ])
# [1, 3, 5]

442:デフォルトの名無しさん
19/09/14 08:24:26.09 Hd+E1riT.net
>>429
スレチだが教えてやる
数字が文字列として扱われて実行時にパースされるから馬鹿みたいに遅いことだ

443:デフォルトの名無しさん
19/09/14 08:30:44.01 G26P45sA.net
>>412 Python a~f
print( ['a','b','c','d','e'][::2] )
# ['a', 'c', 'e']

444:デフォルトの名無しさん
19/09/14 19:11:38.33 Rj/aIpzV.net
>>426
クリプタって何?

445:デフォルトの名無しさん
19/09/14 19:29:31.44 daGZRaa0.net
ザラキ唱える人じゃないか

446:デフォルトの名無しさん
19/09/14 19:57:54.64 oc39AgJX.net
>>436
Crypter.
Crypt + er.

447:デフォルトの名無しさん
19/09/14 20:22:44.80 x5aQTHnU.net
>>437
それはクリフト

448:デフォルトの名無しさん
19/09/14 21:03:45.14 KmV3vhTN.net
cryptoなんだからcryptorじゃないの?

449:蟻人間
19/09/14 21:19:35.56 0f+SL6BM.net
それをゆうなら、encrypterの方が自然じゃん。

450:デフォルトの名無しさん
19/09/14 22:06:47.02 31y0+jF3.net
でも、それをいうならの方が自然かも

451:デフォルトの名無しさん
19/09/14 22:21:17.26 oc39AgJX.net
EnCrypterか。了解。
忘れたらごめんなさい。

452:デフォルトの名無しさん
19/09/14 22:23:04.61 pQ8OW4Ak.net
EnCrypterはおかしい
Encryperでいい

453:デフォルトの名無しさん
19/09/14 22:23:28.79 pQ8OW4Ak.net
tが抜けた

454:デフォルトの名無しさん
19/09/14 22:26:10.43 hhxdRhHk.net
EmScriptEn

455:デフォルトの名無しさん
19/09/14 22:35:29.16 oc39AgJX.net
>>444
なんか癖になってるんだ。
小学校から英語やってるわけじゃないからなぁ・・・。

456:デフォルトの名無しさん
19/09/14 23:35:07.41 1m2PUwRG.net
>>432
釈迦に説法は空しいし恥ずかしいのでやめよう
どう考えてもおまいより>>419のほうが力量が上
議論の余地は無いので安心していい

457:デフォルトの名無しさん
19/09/15 10:23:47.74 4T3I9hnw.net
>>426 Perl 5.30
# -*- coding: utf-8 -*-
no warnings 'experimental::signatures';
use feature qw(say signatures); # lexical_subs);
sub ReversibleHash_Encode($S, $C) {
 @a = unpack 'C*


458:', $S;  $l = @c = split '', $C;  my $o; ++$o while $l**$o < 256; #my $o = 1 + log(256)/log $l;  use integer;  my sub _enc($i) { join '', reverse map{($i, $m) = ($i/$l, $i%$l); $c[$m]} 1..$o }  %e = map{$_ => '%'._enc $_} 0..255;  join '', map{$e{$_}} @a; } sub ReversibleHash_Decode($S, $C) {  @s = $S =~ /(%\w+)/g;  %d = map{$e{$_} => $_ } keys %e;  pack 'C*', map{$d{$_}} @s; } say $t = ReversibleHash_Encode 'ウィキペディア', '0123456789'; say $s = ReversibleHash_Decode $t, '0123456789'; $Ch = "abcdefghijklnmopqrstuvwxyz0123456789"; say $t = ReversibleHash_Encode $s, $Ch; say $s = ReversibleHash_Decode $t, $Ch; 実行結果 ~ $ perl 15_426.pl %227%130%166%227%130%163%227%130%173%227%131%154%227%131%135%227%130%163%227%130%162 ウィキペディア %gl%dw%ew%gl%dw%et%gl%dw%e3%gl%dx%ek%gl%dx%d1%gl%dw%et%gl%dw%es ウィキペディア



459:デフォルトの名無しさん
19/09/15 10:37:25.58 Pt8t6mL1.net
zipとunzip関数があるからそれで偶数と奇数に分ければいい

460:デフォルトの名無しさん
19/09/15 11:42:49.90 4T3I9hnw.net
>>412 Prl5 (≦5.28)、配列の添字を0始まり以外にする$[ (array_base feature)を使用
$[ = 1;
@a = a..z;
@x = grep{$_ & 1} 1..@a;
@b = @a[@x];
print "@b\n";

実行結果
~ $ perl 15_412_array_base.pl
a c e g i k m o q s u w y

※5.12~5.28では$[は非推奨になり、設定すると
Use of assignment to $[ is deprecated at 15_412_2.pl line 1.
というwarningが出ます、5.30からは$[の設定できなくなりました

461:デフォルトの名無しさん
19/09/15 15:11:01.79 G44yhCx+.net
>>412 R
要素が 奇数個だとワーニングが出ちゃうけど
a<-1:9
print(matrix(a,2)[1,])

462:デフォルトの名無しさん
19/09/15 15:41:23.29 5s85lzPu.net
鰐んぐ
魚にんぐ

463:デフォルトの名無しさん
19/09/15 16:31:54.72 vhYJbDpr.net
>>449
実行はしてないが、成果については「GJ!!」だ!

464:デフォルトの名無しさん
19/09/16 04:35:46.66 NOoJUh0d.net
お題: 文字列が渡されるので文字vの左隣の文字を小文字、右隣の文字を大文字に変換しなさい

465:デフォルトの名無しさん
19/09/16 06:10:07.69 VWND3fAL.net
>>455
"avbvc" の結果を教えてくれ

466:デフォルトの名無しさん
19/09/16 08:35:06.75 NOoJUh0d.net
>>456
その場合はvに挟まれた文字をxに変換してください

467:デフォルトの名無しさん
19/09/16 08:42:47.33 3bKCxc1X.net
>>457
"avvb" の結果を教えてくれ

468:デフォルトの名無しさん
19/09/16 11:06:17.48 uJI/7eR2.net
頭悪そうなお題はパスで

469:デフォルトの名無しさん
19/09/16 15:26:20.20 eLMc9ESO.net
お題:1から100までの自然数がある。ランダムに30個抜き出せ。

470:デフォルトの名無しさん
19/09/16 15:30:00.20 4Q9Ti1cA.net
>>460 Ruby
p [*1..100].sample(30)
# => [13, 29, 96, 79, 78, 17, 89, 88, 69, 51, 44, 16, 54, 62,
47, 19, 45, 26, 43, 40, 91, 32, 30, 86, 84, 85, 15, 6, 41, 95]

471:デフォルトの名無しさん
19/09/16 16:08:30.72 ShPpQTCq.net
>>460
Kotlin script
println((1..100).toMutableList().apply {shuffle()}.slice(0..29).joinToString())

472:デフォルトの名無しさん
19/09/16 16:53:32.17 P3J/MfSa.net
>>460 Perl5、※選択に重複がないようにした
@a = 1..100;
use List::Util shuffle;
@b = (shuffle @a)[0..29];
print "@b\n";

実行結果
~ $ perl 15_460.pl
64 90 99 41 46 11 25 23 2 12 43 42 24 96 59 44 19 7 92 47 15 86 84 68 13 100 76 34 87 9

473:デフォルトの名無しさん
19/09/16 16:59


474::32.09 ID:ZgnCsjLO.net



475:デフォルトの名無しさん
19/09/16 17:36:43.98 enU8we0d.net
>>464
なるほど全然わからん

476:デフォルトの名無しさん
19/09/16 20:23:01.84 LKlzCOg4.net
>>460 Pharo/Squeak Smalltalk
(1 to: 100) asArray shuffled first: 30

477:デフォルトの名無しさん
19/09/17 17:37:59.85 IoM9hprN.net
プログラム言語標準の文字列(e.g. java.lang.String) が与えられ、ランレングス圧縮した結果をプログラム言語標準の文字列で返す関数を作成してください。ただし、入力に数字が入っていた場合のケースは考慮しなくても構いません。
テストケース(関数名 = f)
f("あいうえお") -> "あいうえお"
f("ああいいうう") -> "あ2い2う2"
f("あいうあいう") -> "あいうあいう"

478:デフォルトの名無しさん
19/09/17 18:15:13.62 kyKgfAv0.net
あうあうあー -> あうあうあー
ああああ -> あ4

479:デフォルトの名無しさん
19/09/17 18:37:25.07 IoM9hprN.net
そゆこと

480:デフォルトの名無しさん
19/09/17 19:42:43.30 N7hzq5cx.net
python に あ2い2う2
のようにカウンティング結果を含んだリストを返すライブラリが
はいっていたな

481:デフォルトの名無しさん
19/09/17 21:40:53.07 nuFS/S7T.net
>>467
haskellだよー
join.map ((:).head <*> (bool "".show.length <*> (1 <).length)).group

482:デフォルトの名無しさん
19/09/17 21:47:22.78 s7WBnLNZ.net
>>467 JavaScript
const f = s => [...s]
.reduce((acc, ch) => {
const [lastCh, n = 1] = acc.pop() || [];
if (!lastCh) return [[ch]];
if (lastCh == ch) {
return [...acc, [lastCh, n + 1]];
} else {
return [...acc, [lastCh, n == 1 ? '' : n], [ch]];
}
}, [])
.flat(Infinity)
.join``;

483:デフォルトの名無しさん
19/09/17 23:32:50.16 htBCID9n.net
>>467 Perl5
use utf8;
binmode STDOUT, ':encoding(utf-8)';
for (qw{あいうえお ああいいうう あいうあいう あうあうあー ああああ}) {
 my $s;
 while (/((.)\g-1*)/g) {
  $s .= $2;
  $s .= $l if 1 < ($l = length $1);
 }
 print "$s\n";
}

実行結果
~ $ perl 15_467.pl
あいうえお
あ2い2う2
あいうあいう
あうあうあー
あ4

484:デフォルトの名無しさん
19/09/17 23:58:08.34 htBCID9n.net
>>467 Perl5、しくった、お題は「関数を作れ」だった…orz
use utf8;
binmode STDOUT, ':encoding(utf-8)';
sub f {
 my $s;
 while (/((.)\g-1*)/g) {
  $s .= $2;
  $s .= $l if 1 < ($l = length $1);
 }
 $s
}
for (qw{あいうえお ああいいうう あいうあいう あうあうあー ああああ}) {
 print f($_)."\n";
}

~ $ perl 15_467_f.pl
あいうえお
あ2い2う2
あいうあいう
あうあうあー
あ4

485:デフォルトの名無しさん
19/09/18 10:00:45.90 Qm7jF2Kv.net
>>467 Ruby
f = -> s {s.gsub(/(.)\1+/){[$1, $&.size].join}}
%w[あいうえお ああいいうう あいうあいう あうあうあー ああああ].each{|s| puts [s, f[s]].join(' => ')}
# =>
あいうえお => あいうえお
ああいいうう => あ2い2う2
あいうあいう => あいうあいう
あうあうあー => あうあうあー
ああああ => あ4

486:デフォルトの名無しさん
19/09/18 10:37:56.54 Qm7jF2Kv.net
>>432 Ruby
module Hoge
  refine Array do
    def oddlist
      select.with_index{|s, i| i.odd?}
    end
  end
end
class C1
  p [0, 1, 2, 3, 4].oddlist rescue p$!
  # => #<NoMethodError: undefined method `oddlist' for []:Array>
end
class C2
  using Hoge
  p [0, 1, 2, 3, 4].oddlist
  # => [1, 3]
end

487:デフォルトの名無しさん
19/09/18 15:45:23.52 GIOjMe2C.net
>>467
URLリンク(ideone.com)
C++。いい感じにかけた。

488:デフォルトの名無しさん
19/09/18 17:30:11.83 quy23QLp.net
むずかし過ぎワロタwww
俺にC++は絶対ムリwwwww

489:デフォルトの名無しさん
19/09/18 17:40:05.70 GIOjMe2C.net
>>478
自分の福祉のために圧迫しない程度に冗長に書いてるけど、ショートコーディングももちろんできるよ。
記憶力と直感と若干の経験で書いている。

490:デフォルトの名無しさん
19/09/18 19:34:59.80 Dukdxvvo.net
完成品はないけどなw

491:デフォルトの名無しさん
19/09/18 19:48:16.2


492:7 ID:GIOjMe2C.net



493:デフォルトの名無しさん
19/09/18 19:56:52.36 Dukdxvvo.net
はいはいいつもの


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