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

■ このスレッドは過去ログ倉庫に格納されています
2018/09/28(金) 10:09:07.13ID:phwOkayR
プログラミングのお題スレです。

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

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

前スレ
プログラミングのお題スレ Part10
https://mevius.5ch.net/test/read.cgi/tech/1514772904/

プログラミングのお題スレ Part11
https://mevius.5ch.net/test/read.cgi/tech/1524570314/
2018/10/12(金) 10:49:03.90ID:6UbBSJp3
first(10)が10までってセンスは普通におかしいだろ
つーかrubyも最初の10個返すんだが…?
2018/10/12(金) 13:22:40.26ID:+EEi3z6C
誰も動作を疑わずに書かれたものを脳死で信じるいい例だな、 >>99 のは17にはならん
2018/10/12(金) 13:50:43.62ID:oIm8hJ6E
ruby/ruby: The Ruby Programming Language
ttps://github.com/ruby/ruby

そりゃそうだろ
スクリプト言語のソースコードは公開されてて誰でも読めるが
大抵のユーザーは書かれたものを脳死で信じるしかないだろ

それともお前は使うスクリプト言語のソースコードは全部精査してるのか?
コンパイラのソースコードまで熟読してるのか?

ンなモン、脳死で信じるしかねーだろ
2018/10/12(金) 13:54:46.58ID:VST6PShP
最近JavaとかC++とか少ないな
Javaは例の騒動があるから仕方ないとしてCとかC++はないんか
106デフォルトの名無しさん
垢版 |
2018/10/12(金) 16:36:53.91ID:OhxorjMK
>>105
>>79はC++だね。
2018/10/12(金) 18:59:19.35ID:eR+rcBR9
>>95 ruby
require 'prime'
p Prime.take_while {|i| i < 10}.inject(:+)
2018/10/12(金) 20:05:50.75ID:oyAlSwuR
>>105
例の騒動って何
2018/10/12(金) 20:13:31.37ID:jorGy8Se
>>79
gcc8.1だと

char
(!(n > d && is_usual_num(n))) 0
(!(n > d && is_usual_num(n))) 0
(!(n > d && is_usual_num(n))) 0
(!(n > d && is_usual_num(n))) 0
(!(n > d && is_usual_num(n))) 0
(!(n > d && is_usual_num(n))) 0
(!(n > d && is_usual_num(n))) 1
(!(n > d && is_usual_num(n))) 0
break
calculated = -128
numeric_limits = 127
128
127

となるね
2018/10/12(金) 21:22:44.25ID:+EEi3z6C
ORACLEがお金取りますよってやつじゃない?
2018/10/12(金) 21:27:58.87ID:+EEi3z6C
なぜか言語自体のコード読む読まないの話になってるけど、これくらいのコードなら動かせばすぐにfirstが何してるか分かるじゃん、って思っただけだわ
2018/10/13(土) 10:05:11.14ID:m4emGyLz
お題
方程式 1/n = 1/x + 1/y (ただし、n,x,yは正整数でx≦y)について考える
例えばn=4のとき、1/4 = 1/5 + 1/20 = 1/6 + 1/12 = 1/8 + 1/8 より解の個数は3である
上限Mが与えられたとき、上の方程式の解の個数がMを超える最小のnの値を求めよ

2 -> 4
5 -> 12
10 -> 24
100 -> 1260
1000 -> 180180
10000 -> 116396280
250000000000 -> ?
2018/10/13(土) 11:29:08.44ID:4qDoRB+X
つまんない
2018/10/13(土) 11:32:11.63ID:QkDteBzw
>>112
n = 2の時
1/4 + 1/4 = 1/2
1/3 + 1/6 = 1/2
だけだから結果は2だよ
n=4の時より大きくなることはあり得ないし
2018/10/13(土) 11:52:27.26ID:QkDteBzw
ごめん。>>114は勘違い無視して
2018/10/13(土) 17:46:23.51ID:QtssFnIu
>>112 Java
https://ideone.com/Y57fPl
2018/10/15(月) 17:32:39.82ID:lmCCx0VP
回答一人で出題者からの返事がないとあってるかどうかわからないから困る
118デフォルトの名無しさん
垢版 |
2018/10/17(水) 11:31:35.00ID:UkGf74ne
お題
[0,1]の一様乱数をN個発生させ、小さい順に並べてa(1), ..., a(N)とする
同様にもうN個作って小さい順にb(1), ..., b(N)とする

同じ順位同士で(a(1), b(1)), ..., (a(N), b(N)) とペアを作った時、a>bとなるペアの個数は0〜N個になるが、その分布は?
またa, bを一様分布以外の分布から取ってくるとどうなる?
2018/10/17(水) 12:32:44.20ID:DKH+Jm9W
>>118
それはプログラミングで解くお題なのか?
120デフォルトの名無しさん
垢版 |
2018/10/17(水) 13:07:54.93ID:OYXuI76a
>>119
シミュレーションしてみるのも面白いかなと
121デフォルトの名無しさん
垢版 |
2018/10/17(水) 13:50:50.88ID:8efdFbKL
趣味で
2018/10/17(水) 14:07:56.22ID:4awkQadJ
これはひどい
2018/10/17(水) 15:35:45.15ID:5mPHIqhK
プログラミングで解くということに挑戦することから逃げるプログラマー
124デフォルトの名無しさん
垢版 |
2018/10/17(水) 15:55:41.32ID:mC+TJhph
数学に逃げちゃ駄目だ。
2018/10/17(水) 17:12:22.62ID:DXXGfTNm
乱数全部同じパターンを引いてもその結果のみから分布を論じてかまわないというならそれでもいいがな
2018/10/17(水) 17:34:51.31ID:slnS35LM
ちょっとやってみた
J で

NB. monadic sort operator
sort=: /:~

NB. monadic operator returns count of a_n > b_n
NB. where a and b is sorted y-length array of rand(1000)
do1=: verb define
a =. sort ?y$1000
b =. sort ?y$1000
+/ (a>b)
)

NB. dyad operator returns count of number x in array y
count=: dyad define
+/ (x = y)
)

続く
2018/10/17(水) 17:35:05.08ID:IG2KKzqQ
>>118 Squeak/Pharo Smalltalkでシミュレーションのみ
擬似乱数発生器は Squeak の場合 Mersenne Twister(Pharo なら Park-Miller)

| N M random bag |
N := 10.
M := 1e6.
random := Random new.
bag := Bag new.
M timesRepeat: [
| pairs count |
pairs := (random next: N) with: (random next: N) collect: [:a :b | {a. b}].
count := pairs count: [:pair | [:a :b | a > b] valueWithArguments: pair].
bag add: count
].
bag sortedElements

"Squeak =>{
0->981.
1->9873.
2->44008.
3->117136.
4->205258.
5->246203.
6->204286.
7->117345.
8->44247.
9->9702.
10->961} "
2018/10/17(水) 17:38:20.84ID:cKcilnbV
>>118 Squeak/Pharo Smalltalkでシミュレーションのみ
擬似乱数発生器は Squeak の場合 Mersenne Twister(Pharo なら Park-Miller)

| N M random bag |
N := 10.
M := 1e6.
random := Random new.
bag := Bag new.
M timesRepeat: [
| pairs count |
pairs := (random next: N) with: (random next: N) collect: [:a :b | {a. b}].
count := pairs count: [:pair | [:a :b | a > b] valueWithArguments: pair].
bag add: count
].
bag sortedElements

"Squeak =>{
0->981.
1->9873.
2->44008.
3->117136.
4->205258.
5->246203.
6->204286.
7->117345.
8->44247.
9->9702.
10->961} "
2018/10/17(水) 17:40:58.97ID:wdgUzBYj
あ、誤連投&Jのにきスマン
2018/10/17(水) 17:41:12.83ID:slnS35LM
続き
NB. 長さ100の配列で100000回試行
r =: (do1 "0) 100000$100

NB. r を表示
r
=> 43 77 58 31 23 36 59 26 85 15 73 72 4 34 0 26 22 26 85 70 95 2 64 46 22 84 22 86 78 39 51 34 92 94 68 98 47 38 68 92 48 43 19 97 80 18 13 65 76 79 17 88 19 39 72 74 16 54 32 11 99 3 80 32 94 25 87 91 ...

NB. 0...100 の各数値の出現数
(i. 101) (count "0 1) r
=> 109 107 118 94 104 93 98 100 76 87 97 102 93 98 101 94 94 90 112 107 92 103 109 97 112 89 113 118 97 108 96 81 86 103 87 102 107 101 95 90 96 102 96 87 100 88 108 115 97 119 129 104 94 100 104 101 114...

NB. グラフ化
plot (i. 101) (count "0 1) r
https://i.imgur.com/QSKqVC6.jpg

一様分布っぽい
2018/10/17(水) 17:43:54.06ID:slnS35LM
だいぶ結果が違っててわろすw
>>127ソート忘れてないか?
2018/10/17(水) 17:47:40.41ID:slnS35LM
理屈で考えると乱数がどんな分布でも a、b の分布が同じならコレの結果は常に同じ分布か
2018/10/17(水) 19:01:16.05ID:wdgUzBYj
なんか書き込めん…

>>131

たしかに^^;

pairs := (random next: N) sort with: (random next: N) sort collect: [:a :b | {a. b}].

で同じ分布になった
134デフォルトの名無しさん
垢版 |
2018/10/17(水) 22:28:10.42ID:9jVKFKz5
ハローワールドの次にやる問題ってなんだろう
135デフォルトの名無しさん
垢版 |
2018/10/17(水) 22:28:34.01ID:Ny9Q/0jK
ハローワークへ行きなさい
2018/10/17(水) 22:47:23.45ID:ysrRFDeq
>>134
echoかfizz buzzでもやれば
2018/10/17(水) 23:45:01.56ID:DyWl92+N
>>136
>echo
138デフォルトの名無しさん
垢版 |
2018/10/18(木) 09:27:49.01ID:xtVP5nmJ
>>137
echoコマンドの実装ってことじゃない?
\0xxx や \n も解釈するようなの作ると初心者には結構勉強になるかも。
2018/10/18(木) 19:47:17.70ID:3zhbamE0
136本人が出てきて答えなさい
2018/10/18(木) 22:31:25.80ID:qi6SRLg2
ハローワールドの次ぐらいだとすごろくとかじゃない
141デフォルトの名無しさん
垢版 |
2018/10/19(金) 16:49:17.22ID:F1UCQFsO
お題
標準入力から入力したデータをそのまま標準出力人出力する
142デフォルトの名無しさん
垢版 |
2018/10/19(金) 17:05:33.84ID:veK9KPY5
http://3dnchu.com/archives/tree-it/
このようなソフトはvisual studioで作るんですか?
なんの言語がいいか教えてください
143デフォルトの名無しさん
垢版 |
2018/10/19(金) 17:15:05.14ID:gPrGaWTX
>>141
cat
2018/10/19(金) 18:18:43.95ID:rCjk/mnI
>>143 Brainfuck
,[.,]
2018/10/19(金) 18:19:25.68ID:rCjk/mnI
安価ミス >>143 -> >>141
2018/10/19(金) 20:16:34.44ID:qai0UNii
お題
マルチバイト文字だけ文字化けさせて出力
147デフォルトの名無しさん
垢版 |
2018/10/19(金) 20:39:51.48ID:5dseSh/K
>>146 Python
https://ideone.com/sT2p2O
2018/10/20(土) 03:08:59.15ID:gD7ZVb6v
iso-8859-2を入力したら文字化けしたりUTF-7を入力したら文字化けしなかったりするのは美しくないから文字コードを指定させないといかん
149デフォルトの名無しさん
垢版 |
2018/10/20(土) 05:27:36.15ID:qwv4GmvH
>>146
Kotlin
https://paiza.io/projects/jg9Pa-PO2UCwSLFPL3draw

入力はデフォルトのエンコーディングで Java のライブラリ内部で Unicode に自動変換させ、出力は UTF-8 になると想定して作られている。
つまり元の Unicode で \x0080 以上は UTF-8 だと全てマルチバイトになるので化けるようにしてある。
化け方は2通りでサロゲートペアの文字は % になりその他は * になる。
150デフォルトの名無しさん
垢版 |
2018/10/20(土) 17:10:58.56ID:hxCjYBWY
>>141 Io
File standardInput contents print
2018/10/20(土) 17:46:57.83ID:cv2X893a
お題: 超簡単なステートマシン
以下の3つのデータがランダムに入力される。
1: hi
2: wake up
3: sleep
1が入力された場合、状態がwake upであれば「hello」、状態がsleepであれば「zzz...」と出力せよ。
2が入力されたら状態をwake upに、3が入力されたら状態をsleepに移行せよ。
152デフォルトの名無しさん
垢版 |
2018/10/20(土) 18:05:02.67ID:Nttc2RvP
>>151
つまり、hi以外で2、3に該当しない奴も無視で良いの?(hiは無視で良いんだよね)

データは勝手に標準入力にするけど。
(リダイレクトでファイルからに出来るし)
153デフォルトの名無しさん
垢版 |
2018/10/20(土) 18:08:05.20ID:Nttc2RvP
あれ、違うぞ?
hiが入力された時、「かつ」wake upだったら”hello”出力か。
んでsleepなら”zzz...”ね。
それ以外無視と。
了解。
154デフォルトの名無しさん
垢版 |
2018/10/20(土) 18:12:34.08ID:Nttc2RvP
てか、1ー3の数字だけで良いわ。
状態の意味はわかったけど、状態の文字は要らんね。
2018/10/20(土) 18:16:14.29ID:xvv7H8Vz
それ以外をどう考慮すべきかは書かれてないから、
ここは「3つのデータがランダムに入力される」を信じたフリをして手抜きをするのが吉

そんなことよりステートマシンなら初期状態は与えろよw
156デフォルトの名無しさん
垢版 |
2018/10/20(土) 18:28:45.80ID:AUqXYm6F
>>151
python3


state = "sleep"

while True:
x = input("> ")
if x == "hi":
print("zzz..." if state == "sleep" else "hello")
elif x == "wake up":
state = "wake up"
elif x == "sleep":
state = "sleep"
else:
print("invalid input.")
157デフォルトの名無しさん
垢版 |
2018/10/20(土) 18:42:18.95ID:Nttc2RvP
#include <stdio.h>
#include <conio.h>

int main(void)
{
char c,state = 0;

while(1)
{
c = getchar();
switch(c)
{
case '1':
if(state == '2')
{
printf("hello");
}
else if(state == '3')
{
printf("zzz...");
}
break;
158デフォルトの名無しさん
垢版 |
2018/10/20(土) 18:43:23.41ID:Nttc2RvP
case '2':
state = '2';
break;
case '3':
state = '3';
break;
default:
break;
159デフォルトの名無しさん
垢版 |
2018/10/20(土) 18:43:31.11ID:Nttc2RvP
}
}
return 0;
}

バッファ 無い方がいいのかと思ってバッファ無し版。(押したら即時入力)
conio.hは環境依存だけど、どうせWinだろ。
stdio.hのgetcだったら、バッファがあるからEnter押さないとだけど最初の1文字が入る。

面倒臭かったからステータスは数字に直さず文字そのまま使った。
2018/10/20(土) 20:20:44.01ID:WvTfEY4N
お題
2つの区間の共通部分を出力せよ

[1,3] [2,4] => [2,3]
(1,2) [1,2] => (1,2)
[0,100) (5,+inf) => (5,100)
(-inf,2] [1,+inf) => [1,2]
[1,2) [2,3) => {}
2018/10/20(土) 21:46:37.40ID:O4sbTglp
>>151
ruby -nle"$_!=?1?($t=-$_.to_i):(puts %w[zzz... hello _][$t])"
162デフォルトの名無しさん
垢版 |
2018/10/21(日) 04:42:48.87ID:sz/a4USN
>>151
Kotlin
https://paiza.io/projects/RpML2-t6V1kplmMq_f0usw

初期状態は sleep にした。
wake up と sleep 以外の入力に対しては ERROR を出力して状態は変化させないようにした。
入力が何だったか分かるようにするために行頭に >> を付けて入力文字列を出すようにした。
163デフォルトの名無しさん
垢版 |
2018/10/21(日) 04:53:27.38ID:sz/a4USN
>>151
Perl の1行プログラム

perl -ne 'BEGIN{$s=0;%x=("sleep"=>0,"wake up"=>1);%r=(0=>"zzz...",1=>"hello")}print ">> $_";chomp;\
if(defined($x{$_})){$s=$x{$_}}elsif($_ eq "hi"){print"$r{$s}\n"}else{print "ERROR\n"}'

仕様は>>162と同じ。
1行が長くなったので1行目の行末に \ を入れて2行に分けて書いてある。
2018/10/21(日) 09:26:11.61ID:3Rh2KUxU
>>151 java
https://ideone.com/fpKVdM
2018/10/21(日) 09:40:05.59ID:UVDgsDD7
>>151 GNU Smalltalk
入力は、数値ではなくメッセージで
状態推移は、クラスチェンジで(つまりインスタンス変数なし&条件分岐なし)
…な感じで、他言語では思いつきにくい実装で遊んでみました

Object subclass: Machine [
wakeUp [ ^self ]
sleep [ ^self ]
hi [ self subclassResponsibility ]
state [ ^self class displayNl ]
Other := nil.
]
Machine class extend [ new [ ^WakeUp basicNew ] ]
Machine subclass: WakeUp [ hi [ 'hello' displayNl ] ]
Machine subclass: Sleep [ hi [ 'zzz...' displayNl ] ]
Machine extend [ Other := Sleep basicNew ]
WakeUp extend [ sleep [ ^self become: Other ] ]
Sleep extend [ wakeUp [ ^self become: Other ] ]

| machine |
machine := Machine new.
machine state. "=> WakeUp "
machine hi. "=> hello "
machine sleep; state. "=> Sleep "
machine hi. "=> zzz... "
machine wakeUp; state. "=> WakeUp "
machine wakeUp; state. "=> WakeUp "
machine sleep; state. "=> Sleep "
machine sleep; state. "=> Sleep "

https://ideone.com/vyCRfq
2018/10/21(日) 11:09:36.22ID:S2kctYlU
>>151
PowerShell、初期状態は 'Sleep'

function StateMachine {
 param([parameter(ValueFromPipeline=$true)][string]$Event)
 begin { $InSleep = $true }
 process {
  switch($Event){
  'hi'{ Write-Host "$(if($InSleep){'zzz...'}else{'hellow'})"}
  'wake up'{$InSleep=$false}
  'sleep'{$InSleep=$true}
  }
 }
}
'hi','sleep','hi','wake up','hi' | StateMachine
167デフォルトの名無しさん
垢版 |
2018/10/21(日) 18:51:44.61ID:7SU77e8C
>>160
Python3
https://ideone.com/BBteSk
infは対応してないので1億とか適当な大きい値で代用
168デフォルトの名無しさん
垢版 |
2018/10/21(日) 22:29:32.21ID:4ZLg1Jin
>>141 Lua
io.write(io.read("*a"))
169デフォルトの名無しさん
垢版 |
2018/10/22(月) 01:45:31.26ID:mc31Kn/b
>>2
これおかしくね?
2018/10/23(火) 19:00:32.44ID:eWhef4/P
>>116-117
返答遅れてすみません
数値はあってるようです
私の稚拙なコードでよければ参考までに

Haskell
https://www.ideone.com/9Z0xOX
2018/10/23(火) 21:37:05.53ID:HCMpmlk6
お題
Excel列番号の数字表記とアルファベット表記を相互変換せよ

A => 1
AA => 27
ABC => ?
26 => Z
266379 => ?
2018/10/23(火) 22:19:55.60ID:kr01ah20
>>171
Part6の754ですでに通った道だった
https://peace.5ch.net/test/read.cgi/tech/1418278634/754

そしてその時の俺の回答はこれだ
http://ideone.com/SM0HXt
2018/10/23(火) 22:19:56.82ID:UJUp/CV/
>>171 Ruby
f=->n{n.to_s(26).tr('0-9a-p',r='@-Y').sub(/(.)@/){$1.tr('A-Z',r)+?Z}.delete ?@}
g=->s{s.tr('A-Z','0-9a-p').to_i(26)+(26**s.length-1)/25}
puts '%s => %s'%[$_.chop!,~/\d/?f[$_.to_i]:g[$_]]while gets
# =>
A => 1
AA => 27
ABC => 731
26 => Z
266379 => ODAI
2018/10/23(火) 22:31:11.04ID:fVBjYNqz
iか何かが無かったような?
175デフォルトの名無しさん
垢版 |
2018/10/23(火) 23:51:06.93ID:H259Ae8g
var trans = alpha => parseInt((parseInt(alpha, 36) - parseInt('9'.repeat(alpha.length), 36)).toString(36), 26)

trans('A')
//=> 1
trans('AA')
//=> 27
trans('ABC')
//=> 731

順変換だけやってみたけどすごい不安…
Aがゼロ的な物なのか1的な物なのかこんがらがる…
2018/10/24(水) 00:17:51.17ID:n2SwZ/Io
>>175
Aは0扱いでよい。
与えられた文字列を str にとして x = str[A-Zの26進数] に対して
求める数 f(x) f N\{0} -> N\{0} は
f(x) = x + (26**g(x) - 1)/25
(g(x) := x == 0 ? 1 : [log_26(x)] + 1).
f は全単射なので逆写像f^(-1)が存在するので
f と f^(-1) が答え.
2018/10/24(水) 00:19:21.73ID:kOQJNkO6
マジカルインクリメント!マジカルインクリメントじゃないか!!
2018/10/25(木) 11:51:35.92ID:3ObU9lli
>>171 Pharo/Squeak Smalltalk

| fromExcelColm toExcelColm |

fromExcelColm := [:str | str asByteArray reversed - 64 polynomialEval: 26].

toExcelColm := [:n |
| nn digits |
nn := n.
digits := OrderedCollection new.
[(nn := nn - 1) >= 0] whileTrue: [digits addFirst: nn \\ 26. nn := nn // 26].
(digits asByteArray + 65) asString
].

fromExcelColm value: 'A'. "=> 1 "
fromExcelColm value: 'AA'. "=> 27 "
fromExcelColm value: 'ABC'. "=> 731 "
toExcelColm value: 26. "=> 'Z' "
toExcelColm value: 266379. "=> 'ODAI' "
fromExcelColm value: 'EXCEL'. "=> 2708874 "
toExcelColm value: 2788185942068. "=> 'MICROSOFT' "
179デフォルトの名無しさん
垢版 |
2018/10/25(木) 12:50:39.12ID:hw/Q19JU
>>175
それ Z の時に失敗しない?

他の言語でやってみて失敗したので足したり引いたりする数を色々ひねったらうまく行ったけどね。
2018/10/25(木) 16:24:37.58ID:aKbYC4uC
>>171 python3
https://ideone.com/zOajDg
ここにソースを書いたらブロックされたからideoneで
2018/10/25(木) 16:39:59.02ID:wLNEFoo1
>>176
>Aは0扱いでよい。
>与えられた文字列を str にとして x = str[A-Zの26進数] に対して

それだと "A" も "AAAAAA" も x = 0 になるから g がダメだな
182デフォルトの名無しさん
垢版 |
2018/10/25(木) 16:46:00.18ID:9VVQwm/j
やっぱり36進数[0-9a-z]使った横着は出来ないのか…
2018/10/25(木) 17:18:04.60ID:BFrEhhQu
perlのbasecalcだとマジカルなことができる
2018/10/25(木) 17:29:09.19ID:/ssDOiD4
>>181
文字列にするときは適当な10*n[26進数]を足してやればよいからやはり基本は26進数でよい
2018/10/25(木) 17:46:06.11ID:wLNEFoo1
デコードは A-Z を 1 から 26 とする 0 を持たない変則 26 進数として数値化すりゃあいいんだよ
以下J

26 #. _64 + a. i. 'ABC'
==> 731

26 #. _64 + a. i. 'ODAI'
==> 266379

エンコードはちょっと1行では説明しにくい
2018/10/25(木) 17:52:55.69ID:Toapoewp
27進だろ…
187デフォルトの名無しさん
垢版 |
2018/10/25(木) 17:53:10.85ID:hw/Q19JU
>>182
もう一捻り必要なんだよ。
考えてくと何れわかる。
2018/10/25(木) 18:17:57.30ID:wLNEFoo1
>>186
下からn桁目の重み付けが 26^n で(1番下を0桁とする)、
各桁の数字が1〜26なんだよ
これで0以外の数は表記できる

AAA は 1*26*26 + 1 *26 + 1
ABC は 1*26*26 + 2 *26 + 3
YAZ は 25*26*26 + 1*26 + 26
189デフォルトの名無しさん
垢版 |
2018/10/25(木) 19:37:38.82ID:gO/HWAcm
>>171
この問題を思い出した
http://riverplus.net/codeiq/DigitalTaboo.pdf
2018/10/25(木) 20:05:21.59ID:na0fZQbz
全くの素人質問で申し訳ありませんが、お知恵拝借したくお願いします。

http://www.cjh.com.cn/
の画面左まんなか辺りの

三峡水? 25日 19?00分 174.64 -(入) 15200(出)

を自動で毎日夜21時に取得して

https://egg.5ch.net/test/read.cgi/river/1507607675/

に自動で書き込む方法はありますでしょうか?
長年誰かが手写しでしたが、死屍累々でございます、、、、なのです、、
2018/10/25(木) 20:16:07.42ID:na0fZQbz
>>190

http://www.cjh.com.cn/



http://nweb.cjh.com.cn/sssqold.html

からでもOKです。
2018/10/25(木) 20:33:47.72ID:TSZxWHJ/
sssqold.htmlのソース見たが読むほうは簡単そうだな
書き込む方はしらん
2018/10/25(木) 20:33:50.34ID:BSekExc/
スレタイ
2018/10/25(木) 23:54:56.07ID:Hzy8+5Se
あらしのおもちゃになるソースを公開するのはさすがにちょっとなあ
2018/10/25(木) 23:59:06.56ID:9OC64j5F
>>190
2chのcgiは仕様変更ちょいちょいあって追いかけるの面倒だから書き込みは自動保守ツールとか任せるとして、
powershellのスクリプトをタスクスケジューラで動かして出力をテキストファイルにリダイレクトして自動保守ツールに食わせりゃいいんじゃね
スクリプトはこんな感じかね

$html= Invoke-WebRequest -UseBasicParsing http://nweb.cjh.com.cn/sssqold.html
$pattern = "`"oq`":`"(\d*)`",`"q`":`"(\d*)`"[^}]+`"三峡水库`",`"tm`":(\d+),[^}]+`"z`":`"([0-9\.]+)`""
if ($html.RawContent -match $pattern) {
$time = (Get-Date "1970/1/1 0:0:0 GMT").AddMilliseconds($Matches[3])
"三峡水库 {2:dd}日 {3}m {1}(入) {0}(出)"-f $Matches[1],$Matches[2],$time,$Matches[4]
}
2018/10/26(金) 01:56:21.09ID:zqmCYDLg
無駄に一行だな
2018/10/26(金) 03:39:31.47ID:c84xrxY5
>>171
(fold + 0 (map-with-index (lambda (i c) (* (- (char->integer c) #x40) (expt 26 i))) (reverse (string->list "ABC"))))
2018/10/26(金) 19:50:36.71ID:/kG4owY9
お題
ぷよぷよの連鎖数を求めよ。0-9がぷよ、.が空きマスを表す。

0013
0123
122.
013.
0123
=> 4

9.9.9.9.9.9
.9.9.9.9.9.
=> 1

0123
3012
2301
1230
=> 0
2018/10/26(金) 20:45:47.09ID:yqPKU+uE
>>195
おお、素晴らしいアドレスありがとうございます。後は何とか頑張ってみます!!
200デフォルトの名無しさん
垢版 |
2018/10/26(金) 20:51:49.05ID:8JGFizba
>>198
2番目のパターンは実際のゲームではあり得ないものだとは思うが、とにかく何もない所があれば落ちてそれから何連鎖するかを求めればいいのかな?
201デフォルトの名無しさん
垢版 |
2018/10/29(月) 19:22:44.11ID:PHNS982/
>>171
Kotlin
https://paiza.io/projects/1ZkMBpYcAWRTjh1ic8RIIQ

入力が A-Z なら数値に変換(小文字も可)、数字だけの文字列はいわゆるA1の形式に変換。それ以外は入力異常でエラー。
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。